Recherche avancée

Médias (0)

Mot : - Tags -/utilisateurs

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (111)

  • Problèmes fréquents

    10 mars 2010, par

    PHP et safe_mode activé
    Une des principales sources de problèmes relève de la configuration de PHP et notamment de l’activation du safe_mode
    La solution consiterait à soit désactiver le safe_mode soit placer le script dans un répertoire accessible par apache pour le site

  • Prérequis à l’installation

    31 janvier 2010, par

    Préambule
    Cet article n’a pas pour but de détailler les installations de ces logiciels mais plutôt de donner des informations sur leur configuration spécifique.
    Avant toute chose SPIPMotion tout comme MediaSPIP est fait pour tourner sur des distributions Linux de type Debian ou dérivées (Ubuntu...). Les documentations de ce site se réfèrent donc à ces distributions. Il est également possible de l’utiliser sur d’autres distributions Linux mais aucune garantie de bon fonctionnement n’est possible.
    Il (...)

  • Déploiements possibles

    31 janvier 2010, par

    Deux types de déploiements sont envisageable dépendant de deux aspects : La méthode d’installation envisagée (en standalone ou en ferme) ; Le nombre d’encodages journaliers et la fréquentation envisagés ;
    L’encodage de vidéos est un processus lourd consommant énormément de ressources système (CPU et RAM), il est nécessaire de prendre tout cela en considération. Ce système n’est donc possible que sur un ou plusieurs serveurs dédiés.
    Version mono serveur
    La version mono serveur consiste à n’utiliser qu’une (...)

Sur d’autres sites (8209)

  • How to play videos that only contain P frames (no I frames) on iOS ?

    9 septembre 2016, par Clement Wang

    I am trying to play a raw .264 file on iOS that only contains P frames (no keyframes included), but it fails to play with multiple open source FFmpeg video players such as kxmovie or ijkplayer.

    The error log shows non-existing PPS 0 referenced, however the SPS and PPS information is already embedded in the frames. I am wondering if it is possible to play P-frame only videos with a modified version of FFmpeg or any other open source library/player.

  • how to play mp3 using ffmpeg

    5 novembre 2013, par Ari

    I'm trying to play audio mp3 file using ffmpeg in android
    but I'm facing a problem in the below mentioned code

    how to play mp3 using ffmpeg

    void JNICALL  Java_com_music_MainActivity_loadFile(JNIEnv* env, jobject obj,jstring file,jbyteArray array)
    {
       jboolean            isfilenameCopy;
       const char *        filename = (*env)->GetStringUTFChars(env, file, &isfilenameCopy);
       AVCodec *codec;
       AVCodecContext *c= NULL;
       int out_size, len;
       FILE *f, *outfile;
       uint8_t *outbuf;
       uint8_t inbuf[AUDIO_INBUF_SIZE + FF_INPUT_BUFFER_PADDING_SIZE];
       AVPacket avpkt;
       jclass              cls = (*env)->GetObjectClass(env, obj);
       jmethodID           play = (*env)->GetMethodID(env, cls, "playSound", "([BI)V");//At the begining of your main function

       av_init_packet(&avpkt);

       printf("Audio decoding\n");


       __android_log_print(ANDROID_LOG_INFO, DEBUG_TAG, "inside load file");
       /* find the mpeg audio decoder */
       codec = avcodec_find_decoder(CODEC_ID_MP3);
       if (!codec) {
           fprintf(stderr, "codec not found\n");
           exit(1);
       }

       c= avcodec_alloc_context();

       /* open it */
       if (avcodec_open(c, codec) < 0) {
           fprintf(stderr, "could not open codec\n");
           exit(1);
       }

       __android_log_print(ANDROID_LOG_INFO, DEBUG_TAG, "open avcode");
       outbuf = malloc(AVCODEC_MAX_AUDIO_FRAME_SIZE);
      __android_log_print(ANDROID_LOG_INFO, DEBUG_TAG, "open %s",outbuf);

       f = fopen(filename, "rb");
       if (!f) {
           fprintf(stderr, "could not open %s\n", filename);
           exit(1);
       }

       /* decode until eof */
       avpkt.data = inbuf;
       avpkt.size = fread(inbuf, 1, AUDIO_INBUF_SIZE, f);
       __android_log_print(ANDROID_LOG_INFO, DEBUG_TAG, "data =%s and size %d",avpkt.data,avpkt.size);
       while (avpkt.size > 0) {
           out_size = AVCODEC_MAX_AUDIO_FRAME_SIZE;
           len = avcodec_decode_audio3(c, (short *)outbuf, &out_size, &avpkt);
           __android_log_print(ANDROID_LOG_INFO, DEBUG_TAG, "length =%d",len);
           if (len < 0) {
               fprintf(stderr, "Error while decoding\n");
               __android_log_print(ANDROID_LOG_INFO, DEBUG_TAG, " failed length =%d",errno);

               exit(1);
           }
           if (out_size > 0) {
               /* if a frame has been decoded, output it */
               jbyte *bytes = (*env)->GetByteArrayElements(env, array, NULL);
               memcpy(bytes, outbuf, out_size); //
               (*env)->ReleaseByteArrayElements(env, array, bytes, 0);
               (*env)->CallVoidMethod(env, obj, play, array, out_size);

           }
           avpkt.size -= len;
           avpkt.data += len;
           if (avpkt.size < AUDIO_REFILL_THRESH) {
               /* Refill the input buffer, to avoid trying to decode
                * incomplete frames. Instead of this, one could also use
                * a parser, or use a proper container format through
                * libavformat. */
               memmove(inbuf, avpkt.data, avpkt.size);
               avpkt.data = inbuf;
               len = fread(avpkt.data + avpkt.size, 1,
                           AUDIO_INBUF_SIZE - avpkt.size, f);
               if (len > 0)
                   avpkt.size += len;
           }
       }

       fclose(f);
       free(outbuf);

       avcodec_close(c);
       av_free(c);
    }

    i am getting the len = - 1 in

    len = avcodec_decode_audio3(c, (short *)outbuf, &out_size, &avpkt);

    what am i doing wrong ??

    please help

  • play m3u8 video from laravel storage

    21 janvier 2020, par Jennsen

    My question is the same as how to play m3u8 videos from laravel storage but this one did not get answers.

    If I play the video from the public folder it does it without problems.

    but if I want to play it from storage this doesn’t work.

       public function watch(Request $request, Episode $episode)
    {

       $video = Storage::disk('videos')->get($episode->video);

       return new Response($video, 200, ['Content-Type' => 'application/x-mpegURL', 'isHls' => true]);
    }

    this is the definition of my disk in config/filesystems.php

     'videos' => [
           'driver' => 'local',
           'root' => storage_path('app/videos'),
           'url' => env('APP_URL').'/storage',
           'visibility' => 'public',
       ],

    this is my conversion code (job)

        */
    public function handle()
    {
       $path = $this->episode->id . '.m3u8';
       $lowBitrate  = (new X264 ('aac'))->setKiloBitrate(500)->setVideoCodec('libx264');
       $midBitrate  = (new X264 ('aac'))->setKiloBitrate(1000)->setVideoCodec('libx264');
       $highBitrate = (new X264 ('aac'))->setKiloBitrate(3000)->setVideoCodec('libx264');

       FFMpeg::fromDisk('tmp')->open($this->episode->video)
           ->exportForHLS()
           ->dontSortFormats()
           ->setSegmentLength(10)
           ->toDisk('local')
           ->addFormat($lowBitrate, function($media) {
               $media->addFilter(function ($filters) {
                   $filters->resize(new \FFMpeg\Coordinate\Dimension(640, 480));
               });
           })
           ->addFormat($midBitrate, function($media) {
               $media->addFilter(function ($filters) {
                   $filters->resize(new \FFMpeg\Coordinate\Dimension(1280, 960));
               });
           })
           ->addFormat($highBitrate, function($media) {
               $media->addFilter(function ($filters) {
                   $filters->resize(new \FFMpeg\Coordinate\Dimension(1280, 960));
               });
           })
           ->save($path);

       $this->episode->update([
           'video' => $path,
       ]);

       FFMpeg::cleanupTemporaryFiles();

    }