Recherche avancée

Médias (1)

Mot : - Tags -/publier

Autres articles (97)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

Sur d’autres sites (12085)

  • "Non-monotonous DTS" and jerky video when copying streams

    2 décembre 2017, par forthrin

    I’m switching containers from MKV to mp4 for a set of video files. This has worked for all videos before, but now I’m getting weird problems (also when converting from MKV to another MKV !)

    1. I’m getting a million Non-monotonous DTS in output stream messages
    2. With QuickTime on macOS the video is jerking back and forth very fast while playing
    3. With VLC on macOS, the video is skipping a lot of frames

    How can I fix this, without re-encoding the video stream ? (Re-encoding audio would be acceptable.) Somehow it must be possible since the original MKV works perfectly !

    $ ffmpeg -i in.mkv -codec copy out.mp4
    ffmpeg version 3.3.4 Copyright (c) 2000-2017 the FFmpeg developers
     built with Apple LLVM version 9.0.0 (clang-900.0.37)
     configuration: --prefix=/usr/local/Cellar/ffmpeg/3.3.4 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-libass --enable-libmp3lame --enable-libx264 --enable-libx265 --enable-libxvid --enable-opencl --enable-videotoolbox --disable-lzma --enable-vda
     libavutil      55. 58.100 / 55. 58.100
     libavcodec     57. 89.100 / 57. 89.100
     libavformat    57. 71.100 / 57. 71.100
     libavdevice    57.  6.100 / 57.  6.100
     libavfilter     6. 82.100 /  6. 82.100
     libavresample   3.  5.  0 /  3.  5.  0
     libswscale      4.  6.100 /  4.  6.100
     libswresample   2.  7.100 /  2.  7.100
     libpostproc    54.  5.100 / 54.  5.100
    Input #0, matroska,webm, from 'in.mkv':
     Metadata:
       ENCODER         : Lavf54.63.104
     Duration: 00:37:59.98, start: 0.200000, bitrate: 2536 kb/s
       Stream #0:0: Video: h264 (High), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc
       Stream #0:1(eng): Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s (default)
    [mp4 @ 0x7f93c9006c00] track 1: codec frame size is not set
    Output #0, mp4, to 'out.mp4':
     Metadata:
       encoder         : Lavf57.71.100
       Stream #0:0: Video: h264 (High) ([33][0][0][0] / 0x0021), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 23.98 fps, 23.98 tbr, 16k tbn, 1k tbc
       Stream #0:1(eng): Audio: ac3 ([165][0][0][0] / 0x00A5), 48000 Hz, 5.1(side), fltp, 384 kb/s (default)
    Stream mapping:
     Stream #0:0 -> #0:0 (copy)
     Stream #0:1 -> #0:1 (copy)
    Press [q] to stop, [?] for help
    [mp4 @ 0x7f93c9006c00] Non-monotonous DTS in output stream 0:0; previous: 60720, current: 60064; changing to 60721. This may result in incorrect timestamps in the output file.
    [mp4 @ 0x7f93c9006c00] Non-monotonous DTS in output stream 0:0; previous: 63392, current: 62736; changing to 63393. This may result in incorrect timestamps in the output file.
    (...repeats a million times...)

    MP4Box :

    $ MP4Box -add in.mkv out.mp4
    [MPEG-2 TS] TS Packet 1 is scrambled - not supported
    [MPEG-2 TS] TS Packet 3 does not start with sync marker
    ...
    [MPEG-2 TS] TS Packet 999 does not start with sync marker
    [Importer] Unknown input file type
    Error importing in.mkv: Corrupted Data in file/stream

    So the file is maybe corrupt ? (Though it plays perfectly to begin with, in VLC at least !) Is there any way I can repair it and convert it to an mp4 file, again without re-encoding the video stream ?

  • ffmpeg lose frames when extracting them

    11 octobre 2019, par Francisco Isoardi Prieto

    When I extract all frames from a video, FFmpeg lose one frame. I tried multiple options, like adding more parameters to the function, but none of them worked.

    ffmpeg -i Multicam420-30a.mp4 -framerate 30 frame%08d.jpg

    ffmpeg version N-94077-g01d8c72b95 Copyright (c) 2000-2019 the FFmpeg developers
    built with gcc 9.1.1 (GCC) 20190621
    configuration : —enable-gpl —enable-version3 —enable-sdl2 —enable-fontconfig —enable-gnutls —enable-iconv —enable-libass —enable-libdav1d —enable-libbluray —enable-libfreetype —enable-libmp3lame —enable-libopencore-amrnb —enable-libopencore-amrwb —enable-libopenjpeg —enable-libopus —enable-libshine —enable-libsnappy —enable-libsoxr —enable-libtheora —enable-libtwolame —enable-libvpx —enable-libwavpack —enable-libwebp —enable-libx264 —enable-libx265 —enable-libxml2 —enable-libzimg —enable-lzma —enable-zlib —enable-gmp —enable-libvidstab —enable-libvorbis —enable-libvo-amrwbenc —enable-libmysofa —enable-libspeex —enable-libxvid —enable-libaom —enable-libmfx —enable-amf —enable-ffnvcodec —enable-cuvid —enable-d3d11va —enable-nvenc —enable-nvdec —enable-dxva2 —enable-avisynth —enable-libopenmpt
    libavutil 56. 29.100 / 56. 29.100
    libavcodec 58. 53.100 / 58. 53.100
    libavformat 58. 28.100 / 58. 28.100
    libavdevice 58. 7.100 / 58. 7.100
    libavfilter 7. 55.100 / 7. 55.100
    libswscale 5. 4.101 / 5. 4.101
    libswresample 3. 4.100 / 3. 4.100
    libpostproc 55. 4.100 / 55. 4.100
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0000023af91f9e80] st : 0 edit list : 1 Missing key frame while searching for timestamp : 0
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0000023af91f9e80] st : 0 edit list 1 Cannot find an index entry before timestamp : 0.
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from ’Multicam420-30a.mp4’ :
    Metadata :
    major_brand : isom
    minor_version : 512
    compatible_brands : mp41mp42
    creation_time : 2019-08-20T01:30:57.000000Z
    Duration : 00:00:01.00, start : 0.000000, bitrate : 11208 kb/s
    Stream #0:0(eng) : Video : h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 11007 kb/s, 30 fps, 30 tbr, 30k tbn, 60 tbc (default)
    Metadata :
    creation_time : 2019-08-20T01:30:57.000000Z
    encoder : AVC Coding
    Stream #0:1(eng) : Audio : aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 192 kb/s (default)
    Metadata :
    creation_time : 2019-08-20T01:30:57.000000Z
    Stream mapping :
    Stream #0:0 -> #0:0 (h264 (native) -> mjpeg (native))
    Press [q] to stop, [?] for help
    [swscaler @ 0000023afb923740] deprecated pixel format used, make sure you did set range correctly
    Output #0, image2, to ’frame%08d.jpg’ :
    Metadata :
    major_brand : isom
    minor_version : 512
    compatible_brands : mp41mp42
    encoder : Lavf58.28.100
    Stream #0:0(eng) : Video : mjpeg, yuvj420p(pc), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 30 fps, 30 tbn, 30 tbc (default)
    Metadata :
    creation_time : 2019-08-20T01:30:57.000000Z
    encoder : Lavc58.53.100 mjpeg
    Side data :
    cpb : bitrate max/min/avg : 0/0/200000 buffer size : 0 vbv_delay : -1
    frame= 29 fps= 17 q=24.8 Lsize=N/A time=00:00:00.96 bitrate=N/A speed=0.557x
    video:3153kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead : unknown

    As you can see, the original video has 30 frames and last 1 second, and the output frames are 29 and less than a second.

  • ffmpeg creating mpeg-dash chunk files too slowly resulting in 404 errors

    17 juillet 2021, par Danny

    I have a hardware encoder feeding FFmpeg to create a MPEG-DASH Low Latency stream. It works well for a while, but after letting FFmpeg run for a while and reloading the page there are many 404 errors.

    


    When that happens, the dash.js player tries to fetch the segment file on the "live edge" but the file has not been created yet by FFmpeg. For example, after running for 20-30 minutes and loading the web page player, debug code in the web server shows :

    


    2021-07-16 16:46:30.64 : GET REQUEST : /data/ott/chunk-stream0-00702.m4s
2021-07-16 16:46:30.67 : NOT FOUND. Latest files on filesystem:
    chunk-stream0-00699.m4s.tmp
    chunk-stream0-00698.m4s
    chunk-stream0-00697.m4s
    chunk-stream0-00696.m4s
    ...


    


    So you can see the browser requested chunk 702 but the latest on the server is (part of) 699. With 2 second chunks, that is 3-5 seconds of content not yet available.

    


    To analyze, I modified FFmpeg's dashenc.c to add a timestamp every time a file is opened which displays like :

    


    [dash @ 0x9b17c0] 21:48:52.935 1626443332.935  : dashenc_io_open() - opened /data/ott/chunk-stream0-00060.m4s.tmp


    


    And loaded the timestamps into Excel.

    


    Despite a segment duration of 2.000 seconds, the average time between file opens is 2.011 seconds. Over two hours this accumulated to a 45 second difference between the calculated live edge and the latest file on the server.

    


    The HW encoder is set to 25 fps and a GOP size of 5. I've confirmed both by analyzing the H.264 NALUs output by the HW encoder.

    


    My Question : Is this a bug in FFmpeg or can I avoid this problem by adjusting the settings of either the HW encoder and/or FFmpeg options ?

    


    REFERENCE

    


    FFmpeg: Version 4.4 
Centos 8 
Apache 2.4.37


    


    FFmpeg command line (pipe is fed by process reading HW encoder)

    


    ffmpeg -re -loglevel verbose -an -f h264 -i pipe:17 -c:v copy \
-f dash -dash_segment_type mp4 -b:v 1000000 -seg_duration 2.000000 \
-frag_type duration -frag_duration 0.200000 -target_latency 1 \
-window_size 10 -extra_window_size 5 -remove_at_exit 1 -streaming 1 \
-ldash 1 -use_template 1 -use_timeline 0 -write_prft 1 -avioflags direct \
-fflags +nobuffer+flush_packets -format_options movflags=+cmaf \
-utc_timing_url /web/be/time.php /data/ott/master.mpd


    


    Modified dash_io_open() from dashenc.c

    


    static int 
dashenc_io_open(AVFormatContext *s, AVIOContext **pb, char *filename, AVDictionary **options)
{
    DASHContext *c = s->priv_data;
    int http_base_proto = filename ? ff_is_http_proto(filename) : 0;
    int err = AVERROR_MUXER_NOT_FOUND;
    if (!*pb || !http_base_proto || !c->http_persistent)
    {
        err = s->io_open(s, pb, filename, AVIO_FLAG_WRITE, options);

        // My Debug
        {
            char buf[20], milli[60];
            struct timeb tp;

            ftime(&tp); // sec + ms
            struct tm *tmInfo = localtime(&tp.time);

            // 2020-05-15 21:15:12.123
            strftime(buf, sizeof(buf), "%H:%M:%S", tmInfo);
            snprintf(milli, 59, "%s.%03d %d.%03d ", buf, tp.millitm, tp.time, tp.millitm);

            av_log(s, AV_LOG_INFO, "%s : dashenc_io_open() - opened %s\n", milli, filename);
        }
    }
    return err;
}