Recherche avancée

Médias (9)

Mot : - Tags -/soundtrack

Autres articles (60)

  • MediaSPIP Core : La Configuration

    9 novembre 2010, par

    MediaSPIP Core fournit par défaut trois pages différentes de configuration (ces pages utilisent le plugin de configuration CFG pour fonctionner) : une page spécifique à la configuration générale du squelettes ; une page spécifique à la configuration de la page d’accueil du site ; une page spécifique à la configuration des secteurs ;
    Il fournit également une page supplémentaire qui n’apparait que lorsque certains plugins sont activés permettant de contrôler l’affichage et les fonctionnalités spécifiques (...)

  • Encodage et transformation en formats lisibles sur Internet

    10 avril 2011

    MediaSPIP transforme et ré-encode les documents mis en ligne afin de les rendre lisibles sur Internet et automatiquement utilisables sans intervention du créateur de contenu.
    Les vidéos sont automatiquement encodées dans les formats supportés par HTML5 : MP4, Ogv et WebM. La version "MP4" est également utilisée pour le lecteur flash de secours nécessaire aux anciens navigateurs.
    Les documents audios sont également ré-encodés dans les deux formats utilisables par HTML5 :MP3 et Ogg. La version "MP3" (...)

  • Des sites réalisés avec MediaSPIP

    2 mai 2011, par

    Cette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
    Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page.

Sur d’autres sites (4793)

  • How to mention real image instead of dummy image in ffmpeg api-example.c

    2 mars 2013, par Mohan

    I am using video_encode_example function from api-example.c of FFmpeg,
    which basically creates 25 dummy images and encodes into a one second video.
    How ever i am unable to mention real images instead of dummy ones.
    If any one know how to do this for xcode objective C, pl submit a reply.
    Below is the function

    /*
    * Video encoding example
    */
    static void video_encode_example(const char *filename)
    {
       AVCodec *codec;
       AVCodecContext *c= NULL;
       int i, out_size, size, x, y, outbuf_size;
       FILE *f;
       AVFrame *picture;
       uint8_t *outbuf, *picture_buf;

       printf("Video encoding\n");

       /* find the mpeg1 video encoder */
       codec = avcodec_find_encoder(CODEC_ID_MPEG1VIDEO);
       if (!codec) {
           fprintf(stderr, "codec not found\n");
           exit(1);
       }

       c= avcodec_alloc_context();
       picture= avcodec_alloc_frame();

       /* put sample parameters */
       c->bit_rate = 400000;
       /* resolution must be a multiple of two */
       c->width = 352;
       c->height = 288;
       /* frames per second */
       c->time_base= (AVRational){1,25};
       c->gop_size = 10; /* emit one intra frame every ten frames */
       c->max_b_frames=1;
       c->pix_fmt = PIX_FMT_YUV420P;

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

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

       /* alloc image and output buffer */
       outbuf_size = 100000;
       outbuf = malloc(outbuf_size);
       size = c->width * c->height;
       picture_buf = malloc((size * 3) / 2); /* size for YUV 420 */

       picture->data[0] = picture_buf;
       picture->data[1] = picture->data[0] + size;
       picture->data[2] = picture->data[1] + size / 4;
       picture->linesize[0] = c->width;
       picture->linesize[1] = c->width / 2;
       picture->linesize[2] = c->width / 2;

       /* encode 1 second of video */
       for(i=0;i<25;i++) {
           fflush(stdout);
           /* prepare a dummy image */
           /* Y */
           for(y=0;yheight;y++) {
               for(x=0;xwidth;x++) {
                   picture->data[0][y * picture->linesize[0] + x] = x + y + i * 3;
               }
           }

           /* Cb and Cr */
           for(y=0;yheight/2;y++) {
               for(x=0;xwidth/2;x++) {
                   picture->data[1][y * picture->linesize[1] + x] = 128 + y + i * 2;
                   picture->data[2][y * picture->linesize[2] + x] = 64 + x + i * 5;
               }
           }

           /* encode the image */
           out_size = avcodec_encode_video(c, outbuf, outbuf_size, picture);
           printf("encoding frame %3d (size=%5d)\n", i, out_size);
           fwrite(outbuf, 1, out_size, f);
       }

       /* get the delayed frames */
       for(; out_size; i++) {
           fflush(stdout);

           out_size = avcodec_encode_video(c, outbuf, outbuf_size, NULL);
           printf("write frame %3d (size=%5d)\n", i, out_size);
           fwrite(outbuf, 1, out_size, f);
       }

       /* add sequence end code to have a real mpeg file */
       outbuf[0] = 0x00;
       outbuf[1] = 0x00;
       outbuf[2] = 0x01;
       outbuf[3] = 0xb7;
       fwrite(outbuf, 1, 4, f);
       fclose(f);
       free(picture_buf);
       free(outbuf);

       avcodec_close(c);
       av_free(c);
       av_free(picture);
       printf("\n");
    }
  • Is it real connect subtitles when streaming video (HLS, M3U8)

    12 avril 2019, par Mikhail Petrov

    I am trying to create a stream in which the tracks from the convertible file (in my case .mkv to .m3u8) will be played through m3u8. At the moment, it turns out to switch between multiple resolutions, and even select the audio track, but does not see the subtitles at all.

    Video works, audio tracks are switched, but no subtitles are visible at all

    ffprobe source file :
    https://paste2.org/czUePDPj

    Next, perform coding and splitting into tracks :

    ffmpeg -i '/home/mishkapetran/Загрузки/Rick.mkv' \
    -map 0:v:0 -c:v libx264 -profile:v baseline -preset:v superfast -strict -2 -s 426x240   -f hls -hls_time 10 -hls_list_size 0 -segment_list rick240p -hls_segment_filename '/home/mishkapetran/Загрузки/test/Rick240p_%d.ts'      '/home/mishkapetran/Загрузки/test/Rick240p.m3u8' \
    -map 0:a:0 -c:a aac                             -f hls -hls_time 10 -hls_list_size 0 -segment_list rick_ru -hls_segment_filename '/home/mishkapetran/Загрузки/test/RickTrack_ru_%d.aac'        '/home/mishkapetran/Загрузки/test/RickTrack_ru.m3u8' \
    -map 0:a:1 -c:a aac                             -f hls -hls_time 10 -hls_list_size 0 -segment_list rick_en -hls_segment_filename '/home/mishkapetran/Загрузки/test/RickTrack_en_%d.aac'        '/home/mishkapetran/Загрузки/test/RickTrack_en.m3u8' \
    -map 0:s:0 suben.vtt                          -f hls -hls_time 10 -hls_list_size 0 -segment_list en -hls_segment_filename '/home/mishkapetran/Загрузки/test/sub_en_%d.vtt'  '/home/mishkapetran/Загрузки/test/sub_en.m3u8' \
    -map 0:s:1 subru.vtt                          -f hls -hls_time 10 -hls_list_size 0 -segment_list ru -hls_segment_filename '/home/mishkapetran/Загрузки/test/sub_ru_%d.vtt'  '/home/mishkapetran/Загрузки/test/sub_ru.m3u8'

    Then in the same folder I create the m3u8 master :

    #EXTM3U
    #EXT-X-VERSION:5
    #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="Russian",LANGUAGE="ru",AUTOSELECT=YES,URI="RickTrack_ru.m3u8"
    #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="English",LANGUAGE="en",AUTOSELECT=NO,URI="RickTrack_en.m3u8"

    #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Russian",DEFAULT=YES,FORCED=NO,AUTOSELECT=YES,LANGUAGE="ru",URI="sub_ru.m3u8"
    #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="English",DEFAULT=NO,FORCED=NO,AUTOSELECT=YES,LANGUAGE="en",URI="sub_en.m3u8"

    #EXT-X-STREAM-INF:BANDWIDTH=928000,CODECS="avc1.42c00d,mp4a.40.2",RESOLUTION=480x270,AUDIO="audio",SUBTITLES="subs"
    Rick240p.m3u8
  • Stream real-time video flux in HTML video tag

    26 septembre 2018, par c.censier

    I want to stream a real-time video flux that come from udp into a HTML video tag.
    I made some research but I got a lot of informations and I struggle to have a clear overview of what I can do and what I can’t.

    The video flux use H.264 and AAC codecs, MP4 container and has a 3840x2160 (4K) resolution. I’d like to play it on Chrome (latest version).

    As I understand from now, HTML video tag can natively read H.264/AAC videos. I made it work with the video direclty on my server (I’m using Meteor JS + React).

    I learnt to use FFmpeg to stream an udp flux read by VLC player, and then I used FFserver (I know it’s deprecated) to create an HTTP flux also read by VLC but not by the HTML video tag.

    So... my question is : is HTML video can natively read video stream from HTTP ?

    I’ve seen a lot of discussions about HLS and DASH, but I didn’t understand if (and why) they’re mandatory.

    I read a post about someone creating a HLS m3u8 using only FFmpeg, is it a viable solution ?

    FFserver configuration

    HTTPPort                        8090
    HTTPBindAddress                 0.0.0.0
    MaxHTTPConnections              20
    MaxClients                      10
    MaxBandwidth                    100000

    <feed>
     File                          /tmp/feed.ffm
     FileMaxSize                   1g
     ACL allow                     127.0.0.1
    </feed>

    <stream>
     Feed                          feed.ffm
     Format                        mpeg
     AudioCodec                    aac
     AudioBitRate                  256
     AudioChannels                 1
     VideoCodec                    libx264
     VideoBitRate                  10000      // Total random here
     VideoBitRateRange             5000-15000 // And here...
     VideoFrameRate                30
     VideoQMin                     1
     VideoQMax                     50
     VideoSize                     3840x2160
     VideoBufferSize               20000      // Not sure either
     AVOptionVideo                 flags +global_header
    </stream>

    I had to specify QMin and QMax to avoid error message but I don’t really understand what is it.

    FFmpeg command line

    ffmpeg -re -i bbb_sunflower_2160p_30fps_normal.mp4 -strict -2 -r 30 -vcodec libx264 http://localhost:8090/feed.ffm

    This work with VLC. I’m working with a file on my computer before moving to an udp stream.