Recherche avancée

Médias (1)

Mot : - Tags -/artwork

Autres articles (91)

  • 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 (6899)

  • ffmpeg - How to determine if -movflags faststart is enabled ? PHP

    3 juin 2015, par IIIOXIII

    While I am able to encode an mp4 file which I can play on my local windows machine, I am having trouble encoding files to mp4 which are readable when streaming by safari, etc.

    After a bit of reading, I believe my issue is that I must move the metadata from the end of the file to the beginning in order for the converted mp4 files to be streamable.

    To that end, I am trying to find out if the build of ffmpeg that I am currently using is able to use the -movflags faststart option through php - as my current outputted mp4 files are not working when streamed online.

    This is the way I am now echoing the -help, -formats, -codecs, but I am not seeing anything about -movflags faststart in any of the lists :

    exec($ffmpegPath." -help", $codecArr);
    for($ii=0;$iibr>';
    }

    Is there a similar method of determining if -movflags fastart is available to my ffmpeg build ? Any other way ? Should it be listed with any of the previously suggested commands ? -help/-formats ?

    Can someone that knows it is enabled in their version of ffmpeg check to see if it is listed under -help or -formats, etc.?

    TIA.

    EDIT : COMPLETE CONSOLE OUTPUT FOR BOTH THE CONVERSION COMMAND AND -MOVFLAGS COMMAND BELOW :

    COMMAND :

    ffmpeg -i C:\vidtests\Wildlife.wmv -s 640x480 C:\vidtests\Wildlife.mp4

    OUTPUT :

    ffmpeg version N-54207-ge59fb3f Copyright (c) 2000-2013 the FFmpeg developers
     built on Jun 25 2013 21:55:00 with gcc 4.7.3 (GCC)
     configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
    isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
    le-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetyp
    e --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --ena
    ble-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-l
    ibopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libsp
    eex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-
    amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --
    enable-libxvid --enable-zlib
     libavutil      52. 37.101 / 52. 37.101
     libavcodec     55. 17.100 / 55. 17.100
     libavformat    55. 10.100 / 55. 10.100
     libavdevice    55.  2.100 / 55.  2.100
     libavfilter     3. 77.101 /  3. 77.101
     libswscale      2.  3.100 /  2.  3.100
     libswresample   0. 17.102 /  0. 17.102
     libpostproc    52.  3.100 / 52.  3.100
    [asf @ 00000000002ed760] Stream #0: not enough frames to estimate rate; consider
    increasing probesize
    Guessed Channel Layout for  Input Stream #0.0 : stereo
    Input #0, asf, from 'C:\vidtests\Wildlife.wmv'
    :
     Metadata:
       SfOriginalFPS   : 299700
       WMFSDKVersion   : 11.0.6001.7000
       WMFSDKNeeded    : 0.0.0.0000
       comment         : Footage: Small World Productions, Inc; Tourism New Zealand
    | Producer: Gary F. Spradling | Music: Steve Ball
       title           : Wildlife in HD
       copyright       : ┬⌐ 2008 Microsoft Corporation
       IsVBR           : 0
       DeviceConformanceTemplate: AP@L3
     Duration: 00:00:30.09, start: 0.000000, bitrate: 6977 kb/s
       Stream #0:0(eng): Audio: wmav2 (a[1][0][0] / 0x0161), 44100 Hz, stereo, fltp
    , 192 kb/s
       Stream #0:1(eng): Video: vc1 (Advanced) (WVC1 / 0x31435657), yuv420p, 1280x7
    20, 5942 kb/s, 29.97 tbr, 1k tbn, 1k tbc
    [libx264 @ 00000000002e6980] using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64

    [libx264 @ 00000000002e6980] profile High, level 3.0
    [libx264 @ 00000000002e6980] 264 - core 133 r2334 a3ac64b - H.264/MPEG-4 AVC cod
    ec - Copyleft 2003-2013 - http://www.videolan.org/x264.html - options: cabac=1 r
    ef=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed
    _ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pski
    p=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 deci
    mate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_
    adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=2
    5 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.6
    0 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to 'C:\vidtests\Wildlife.mp4':

     Metadata:
       SfOriginalFPS   : 299700
       WMFSDKVersion   : 11.0.6001.7000
       WMFSDKNeeded    : 0.0.0.0000
       comment         : Footage: Small World Productions, Inc; Tourism New Zealand
    | Producer: Gary F. Spradling | Music: Steve Ball
       title           : Wildlife in HD
       copyright       : ┬⌐ 2008 Microsoft Corporation
       IsVBR           : 0
       DeviceConformanceTemplate: AP@L3
       encoder         : Lavf55.10.100
       Stream #0:0(eng): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 6
    40x480, q=-1--1, 30k tbn, 29.97 tbc
       Stream #0:1(eng): Audio: aac (libvo_aacenc) ([64][0][0][0] / 0x0040), 44100
    Hz, stereo, s16, 128 kb/s
    Stream mapping:
     Stream #0:1 -> #0:0 (vc1 -> libx264)
     Stream #0:0 -> #0:1 (wmav2 -> libvo_aacenc)
    Press [q] to stop, [?] for help
    frame=   53 fps= 49 q=29.0 size=       0kB time=00:00:00.13 bitrate=   2.9kbits/
    frame=   63 fps= 40 q=29.0 size=       0kB time=00:00:00.46 bitrate=   0.8kbits/
    frame=   74 fps= 35 q=29.0 size=       0kB time=00:00:00.83 bitrate=   0.5kbits/
    frame=   85 fps= 32 q=29.0 size=       0kB time=00:00:01.20 bitrate=   0.3kbits/
    frame=   95 fps= 30 q=29.0 size=       0kB time=00:00:01.53 bitrate=   0.3kbits/
    frame=  107 fps= 28 q=29.0 size=       0kB time=00:00:01.93 bitrate=   0.2kbits/
    Queue input is backward in time
    [mp4 @ 00000000003ef800] Non-monotonous DTS in output stream 0:1; previous: 7616
    , current: 7063; changing to 7617. This may result in incorrect timestamps in th
    e output file.
    frame=  118 fps= 28 q=29.0 size=     113kB time=00:00:02.30 bitrate= 402.6kbits/
    frame=  129 fps= 26 q=29.0 size=     219kB time=00:00:02.66 bitrate= 670.7kbits/
    frame=  141 fps= 26 q=29.0 size=     264kB time=00:00:03.06 bitrate= 704.2kbits/
    frame=  152 fps= 25 q=29.0 size=     328kB time=00:00:03.43 bitrate= 782.2kbits/
    frame=  163 fps= 25 q=29.0 size=     431kB time=00:00:03.80 bitrate= 928.1kbits/
    frame=  174 fps= 24 q=29.0 size=     568kB time=00:00:04.17 bitrate=1116.3kbits/
    frame=  190 fps= 25 q=29.0 size=     781kB time=00:00:04.70 bitrate=1359.9kbits/
    frame=  204 fps= 25 q=29.0 size=    1006kB time=00:00:05.17 bitrate=1593.1kbits/
    frame=  218 fps= 25 q=29.0 size=    1058kB time=00:00:05.63 bitrate=1536.8kbits/
    frame=  229 fps= 25 q=29.0 size=    1093kB time=00:00:06.00 bitrate=1490.9kbits/
    frame=  239 fps= 24 q=29.0 size=    1118kB time=00:00:06.33 bitrate=1444.4kbits/
    frame=  251 fps= 24 q=29.0 size=    1150kB time=00:00:06.74 bitrate=1397.9kbits/
    frame=  265 fps= 24 q=29.0 size=    1234kB time=00:00:07.20 bitrate=1402.3kbits/
    frame=  278 fps= 25 q=29.0 size=    1332kB time=00:00:07.64 bitrate=1428.3kbits/
    frame=  294 fps= 25 q=29.0 size=    1403kB time=00:00:08.17 bitrate=1405.7kbits/
    frame=  308 fps= 25 q=29.0 size=    1547kB time=00:00:08.64 bitrate=1466.4kbits/
    frame=  323 fps= 25 q=29.0 size=    1595kB time=00:00:09.14 bitrate=1429.5kbits/
    frame=  337 fps= 25 q=29.0 size=    1702kB time=00:00:09.60 bitrate=1450.7kbits/
    frame=  351 fps= 25 q=29.0 size=    1755kB time=00:00:10.07 bitrate=1427.1kbits/
    frame=  365 fps= 25 q=29.0 size=    1820kB time=00:00:10.54 bitrate=1414.1kbits/
    frame=  381 fps= 25 q=29.0 size=    1852kB time=00:00:11.07 bitrate=1369.6kbits/
    frame=  396 fps= 26 q=29.0 size=    1893kB time=00:00:11.57 bitrate=1339.5kbits/
    frame=  409 fps= 26 q=29.0 size=    1923kB time=00:00:12.01 bitrate=1311.8kbits/
    frame=  421 fps= 25 q=29.0 size=    1967kB time=00:00:12.41 bitrate=1298.3kbits/
    frame=  434 fps= 25 q=29.0 size=    1998kB time=00:00:12.84 bitrate=1274.0kbits/
    frame=  445 fps= 25 q=29.0 size=    2018kB time=00:00:13.21 bitrate=1251.3kbits/
    frame=  458 fps= 25 q=29.0 size=    2048kB time=00:00:13.64 bitrate=1229.5kbits/
    frame=  471 fps= 25 q=29.0 size=    2067kB time=00:00:14.08 bitrate=1202.3kbits/
    frame=  484 fps= 25 q=29.0 size=    2189kB time=00:00:14.51 bitrate=1235.5kbits/
    frame=  497 fps= 25 q=29.0 size=    2260kB time=00:00:14.94 bitrate=1238.3kbits/
    frame=  509 fps= 25 q=29.0 size=    2311kB time=00:00:15.34 bitrate=1233.3kbits/
    frame=  523 fps= 25 q=29.0 size=    2429kB time=00:00:15.81 bitrate=1258.1kbits/
    frame=  535 fps= 25 q=29.0 size=    2541kB time=00:00:16.21 bitrate=1283.5kbits/
    frame=  548 fps= 25 q=29.0 size=    2718kB time=00:00:16.64 bitrate=1337.5kbits/
    frame=  560 fps= 25 q=29.0 size=    2845kB time=00:00:17.05 bitrate=1367.1kbits/
    frame=  571 fps= 25 q=29.0 size=    2965kB time=00:00:17.41 bitrate=1394.6kbits/
    frame=  580 fps= 25 q=29.0 size=    3025kB time=00:00:17.71 bitrate=1398.7kbits/
    frame=  588 fps= 25 q=29.0 size=    3098kB time=00:00:17.98 bitrate=1411.1kbits/
    frame=  597 fps= 25 q=29.0 size=    3183kB time=00:00:18.28 bitrate=1426.1kbits/
    frame=  606 fps= 24 q=29.0 size=    3279kB time=00:00:18.58 bitrate=1445.2kbits/
    frame=  616 fps= 24 q=29.0 size=    3441kB time=00:00:18.91 bitrate=1489.9kbits/
    frame=  626 fps= 24 q=29.0 size=    3650kB time=00:00:19.25 bitrate=1553.0kbits/
    frame=  638 fps= 24 q=29.0 size=    3826kB time=00:00:19.65 bitrate=1594.7kbits/
    frame=  649 fps= 24 q=29.0 size=    3950kB time=00:00:20.02 bitrate=1616.3kbits/
    frame=  660 fps= 24 q=29.0 size=    4067kB time=00:00:20.38 bitrate=1634.1kbits/
    frame=  669 fps= 24 q=29.0 size=    4121kB time=00:00:20.68 bitrate=1631.8kbits/
    frame=  682 fps= 24 q=29.0 size=    4274kB time=00:00:21.12 bitrate=1657.9kbits/
    frame=  696 fps= 24 q=29.0 size=    4446kB time=00:00:21.58 bitrate=1687.1kbits/
    frame=  709 fps= 24 q=29.0 size=    4590kB time=00:00:22.02 bitrate=1707.3kbits/
    frame=  719 fps= 24 q=29.0 size=    4772kB time=00:00:22.35 bitrate=1748.5kbits/
    frame=  732 fps= 24 q=29.0 size=    4852kB time=00:00:22.78 bitrate=1744.3kbits/
    frame=  744 fps= 24 q=29.0 size=    4973kB time=00:00:23.18 bitrate=1756.9kbits/
    frame=  756 fps= 24 q=29.0 size=    5099kB time=00:00:23.59 bitrate=1770.8kbits/
    frame=  768 fps= 24 q=29.0 size=    5149kB time=00:00:23.99 bitrate=1758.4kbits/
    frame=  780 fps= 24 q=29.0 size=    5227kB time=00:00:24.39 bitrate=1755.7kbits/
    frame=  797 fps= 24 q=29.0 size=    5377kB time=00:00:24.95 bitrate=1765.0kbits/
    frame=  813 fps= 24 q=29.0 size=    5507kB time=00:00:25.49 bitrate=1769.5kbits/
    frame=  828 fps= 24 q=29.0 size=    5634kB time=00:00:25.99 bitrate=1775.5kbits/
    frame=  843 fps= 24 q=29.0 size=    5701kB time=00:00:26.49 bitrate=1762.9kbits/
    frame=  859 fps= 24 q=29.0 size=    5830kB time=00:00:27.02 bitrate=1767.0kbits/
    frame=  872 fps= 24 q=29.0 size=    5926kB time=00:00:27.46 bitrate=1767.7kbits/
    frame=  888 fps= 24 q=29.0 size=    6014kB time=00:00:27.99 bitrate=1759.7kbits/
    frame=  900 fps= 24 q=29.0 size=    6332kB time=00:00:28.39 bitrate=1826.9kbits/
    frame=  901 fps= 24 q=-1.0 Lsize=    6717kB time=00:00:30.10 bitrate=1828.0kbits
    /s
    video:6211kB audio:472kB subtitle:0 global headers:0kB muxing overhead 0.513217%

    [libx264 @ 00000000002e6980] frame I:8     Avg QP:21.77  size: 39744
    [libx264 @ 00000000002e6980] frame P:433   Avg QP:25.69  size: 11490
    [libx264 @ 00000000002e6980] frame B:460   Avg QP:29.25  size:  2319
    [libx264 @ 00000000002e6980] consecutive B-frames:  5.4% 78.6%  2.7% 13.3%
    [libx264 @ 00000000002e6980] mb I  I16..4: 21.8% 48.8% 29.5%
    [libx264 @ 00000000002e6980] mb P  I16..4:  0.7%  4.0%  1.3%  P16..4: 37.1% 22.2
    % 15.5%  0.0%  0.0%    skip:19.2%
    [libx264 @ 00000000002e6980] mb B  I16..4:  0.1%  0.5%  0.2%  B16..8: 43.5%  7.0
    %  2.1%  direct: 2.2%  skip:44.5%  L0:36.4% L1:52.7% BI:10.9%
    [libx264 @ 00000000002e6980] 8x8 transform intra:62.8% inter:56.2%
    [libx264 @ 00000000002e6980] coded y,uvDC,uvAC intra: 74.2% 78.8% 44.0% inter: 2
    3.6% 14.5% 1.0%
    [libx264 @ 00000000002e6980] i16 v,h,dc,p: 48% 24%  9% 20%
    [libx264 @ 00000000002e6980] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 16% 17% 15%  7%  8%
    11%  8% 10%  8%
    [libx264 @ 00000000002e6980] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 17% 15%  7% 10%
    11%  8%  7%  7%
    [libx264 @ 00000000002e6980] i8c dc,h,v,p: 53% 21% 18%  7%
    [libx264 @ 00000000002e6980] Weighted P-Frames: Y:0.7% UV:0.0%
    [libx264 @ 00000000002e6980] ref P L0: 62.4% 19.0% 12.0%  6.6%  0.0%
    [libx264 @ 00000000002e6980] ref B L0: 90.5%  8.9%  0.7%
    [libx264 @ 00000000002e6980] ref B L1: 97.9%  2.1%
    [libx264 @ 00000000002e6980] kb/s:1692.37

    AND THE –MOVFLAGS COMMAND :

    ffmpeg -i C:\vidtests\Wildlife.mp4 -movflags faststart C:\vidtests\Wildlife_fs.mp4

    AND THE –MOVFLAGS OUTPUT

    ffmpeg version N-54207-ge59fb3f Copyright (c) 2000-2013 the FFmpeg developers
     built on Jun 25 2013 21:55:00 with gcc 4.7.3 (GCC)
     configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
    isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
    le-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetyp
    e --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --ena
    ble-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-l
    ibopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libsp
    eex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-
    amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --
    enable-libxvid --enable-zlib
     libavutil      52. 37.101 / 52. 37.101
     libavcodec     55. 17.100 / 55. 17.100
     libavformat    55. 10.100 / 55. 10.100
     libavdevice    55.  2.100 / 55.  2.100
     libavfilter     3. 77.101 /  3. 77.101
     libswscale      2.  3.100 /  2.  3.100
     libswresample   0. 17.102 /  0. 17.102
     libpostproc    52.  3.100 / 52.  3.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\vidtests\Wildlife.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       title           : Wildlife in HD
       encoder         : Lavf55.10.100
       comment         : Footage: Small World Productions, Inc; Tourism New Zealand
    | Producer: Gary F. Spradling | Music: Steve Ball
       copyright       : ┬⌐ 2008 Microsoft Corporation
     Duration: 00:00:30.13, start: 0.036281, bitrate: 1826 kb/s
       Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x480,
    1692 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 12
    8 kb/s
       Metadata:
         handler_name    : SoundHandler
    [libx264 @ 0000000004360620] using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64

    [libx264 @ 0000000004360620] profile High, level 3.0
    [libx264 @ 0000000004360620] 264 - core 133 r2334 a3ac64b - H.264/MPEG-4 AVC cod
    ec - Copyleft 2003-2013 - http://www.videolan.org/x264.html - options: cabac=1 r
    ef=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed
    _ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pski
    p=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 deci
    mate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_
    adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=2
    5 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.6
    0 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to 'C:\vidtests\Wildlife_fs.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       title           : Wildlife in HD
       copyright       : ┬⌐ 2008 Microsoft Corporation
       comment         : Footage: Small World Productions, Inc; Tourism New Zealand
    | Producer: Gary F. Spradling | Music: Steve Ball
       encoder         : Lavf55.10.100
       Stream #0:0(eng): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 6
    40x480, q=-1--1, 30k tbn, 29.97 tbc
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(eng): Audio: aac (libvo_aacenc) ([64][0][0][0] / 0x0040), 44100
    Hz, stereo, s16, 128 kb/s
       Metadata:
         handler_name    : SoundHandler
    Stream mapping:
     Stream #0:0 -> #0:0 (h264 -> libx264)
     Stream #0:1 -> #0:1 (aac -> libvo_aacenc)
    Press [q] to stop, [?] for help
    frame=   52 fps=0.0 q=29.0 size=      29kB time=00:00:01.76 bitrate= 133.9kbits/
    frame=   63 fps= 60 q=29.0 size=     104kB time=00:00:02.14 bitrate= 397.2kbits/
    frame=   74 fps= 47 q=29.0 size=     176kB time=00:00:02.51 bitrate= 573.2kbits/
    frame=   87 fps= 41 q=29.0 size=     265kB time=00:00:02.93 bitrate= 741.2kbits/
    frame=  101 fps= 37 q=29.0 size=     358kB time=00:00:03.39 bitrate= 862.8kbits/
    frame=  113 fps= 34 q=29.0 size=     437kB time=00:00:03.79 bitrate= 943.7kbits/
    frame=  125 fps= 33 q=29.0 size=     520kB time=00:00:04.20 bitrate=1012.2kbits/
    frame=  138 fps= 32 q=29.0 size=     606kB time=00:00:04.64 bitrate=1069.8kbits/
    frame=  151 fps= 31 q=29.0 size=     696kB time=00:00:05.06 bitrate=1124.3kbits/
    frame=  163 fps= 30 q=29.0 size=     780kB time=00:00:05.47 bitrate=1166.4kbits/
    frame=  176 fps= 30 q=29.0 size=     919kB time=00:00:05.90 bitrate=1273.9kbits/
    frame=  196 fps= 31 q=29.0 size=     994kB time=00:00:06.57 bitrate=1237.4kbits/
    frame=  213 fps= 31 q=29.0 size=    1097kB time=00:00:07.13 bitrate=1258.8kbits/
    frame=  225 fps= 30 q=29.0 size=    1204kB time=00:00:07.53 bitrate=1309.8kbits/
    frame=  236 fps= 30 q=29.0 size=    1323kB time=00:00:07.91 bitrate=1369.4kbits/
    frame=  249 fps= 29 q=29.0 size=    1451kB time=00:00:08.34 bitrate=1424.6kbits/
    frame=  263 fps= 29 q=29.0 size=    1574kB time=00:00:08.82 bitrate=1461.3kbits/
    frame=  278 fps= 29 q=29.0 size=    1610kB time=00:00:09.30 bitrate=1416.9kbits/
    frame=  296 fps= 30 q=29.0 size=    1655kB time=00:00:09.91 bitrate=1368.0kbits/
    frame=  313 fps= 30 q=29.0 size=    1697kB time=00:00:10.48 bitrate=1326.4kbits/
    frame=  330 fps= 30 q=29.0 size=    1737kB time=00:00:11.05 bitrate=1286.5kbits/
    frame=  345 fps= 30 q=29.0 size=    1776kB time=00:00:11.54 bitrate=1260.4kbits/
    frame=  361 fps= 30 q=29.0 size=    1813kB time=00:00:12.07 bitrate=1230.3kbits/
    frame=  377 fps= 30 q=29.0 size=    1847kB time=00:00:12.59 bitrate=1201.4kbits/
    frame=  395 fps= 30 q=29.0 size=    1880kB time=00:00:13.22 bitrate=1165.0kbits/
    frame=  410 fps= 30 q=29.0 size=    1993kB time=00:00:13.72 bitrate=1190.2kbits/
    frame=  424 fps= 30 q=29.0 size=    2080kB time=00:00:14.18 bitrate=1201.4kbits/
    frame=  439 fps= 30 q=29.0 size=    2166kB time=00:00:14.67 bitrate=1209.4kbits/
    frame=  455 fps= 30 q=29.0 size=    2262kB time=00:00:15.21 bitrate=1217.5kbits/
    frame=  469 fps= 30 q=29.0 size=    2341kB time=00:00:15.68 bitrate=1223.0kbits/
    frame=  484 fps= 30 q=29.0 size=    2430kB time=00:00:16.19 bitrate=1229.1kbits/
    frame=  500 fps= 30 q=29.0 size=    2523kB time=00:00:16.71 bitrate=1236.3kbits/
    frame=  515 fps= 30 q=29.0 size=    2607kB time=00:00:17.21 bitrate=1240.4kbits/
    frame=  531 fps= 30 q=29.0 size=    2681kB time=00:00:17.73 bitrate=1238.2kbits/
    frame=  546 fps= 30 q=29.0 size=    2758kB time=00:00:18.24 bitrate=1238.2kbits/
    frame=  561 fps= 30 q=29.0 size=    2824kB time=00:00:18.75 bitrate=1233.4kbits/
    frame=  576 fps= 30 q=29.0 size=    2955kB time=00:00:19.25 bitrate=1256.8kbits/
    frame=  586 fps= 29 q=29.0 size=    3061kB time=00:00:19.59 bitrate=1279.6kbits/
    frame=  598 fps= 29 q=29.0 size=    3217kB time=00:00:19.99 bitrate=1318.4kbits/
    frame=  610 fps= 29 q=29.0 size=    3354kB time=00:00:20.39 bitrate=1347.2kbits/
    frame=  622 fps= 29 q=29.0 size=    3483kB time=00:00:20.78 bitrate=1372.6kbits/
    frame=  634 fps= 29 q=29.0 size=    3593kB time=00:00:21.19 bitrate=1388.6kbits/
    frame=  648 fps= 29 q=29.0 size=    3708kB time=00:00:21.66 bitrate=1402.3kbits/
    frame=  661 fps= 29 q=29.0 size=    3811kB time=00:00:22.08 bitrate=1413.5kbits/
    frame=  674 fps= 29 q=29.0 size=    3978kB time=00:00:22.53 bitrate=1446.3kbits/
    frame=  690 fps= 29 q=29.0 size=    4133kB time=00:00:23.05 bitrate=1468.4kbits/
    frame=  706 fps= 29 q=29.0 size=    4263kB time=00:00:23.58 bitrate=1480.4kbits/
    frame=  721 fps= 29 q=29.0 size=    4391kB time=00:00:24.08 bitrate=1493.8kbits/
    frame=  735 fps= 29 q=29.0 size=    4524kB time=00:00:24.55 bitrate=1509.4kbits/
    frame=  748 fps= 29 q=29.0 size=    4661kB time=00:00:24.98 bitrate=1528.2kbits/
    frame=  763 fps= 29 q=29.0 size=    4835kB time=00:00:25.50 bitrate=1553.1kbits/
    frame=  778 fps= 29 q=29.0 size=    4993kB time=00:00:25.99 bitrate=1573.6kbits/
    frame=  795 fps= 29 q=29.0 size=    5149kB time=00:00:26.56 bitrate=1588.1kbits/
    frame=  814 fps= 29 q=29.0 size=    5258kB time=00:00:27.18 bitrate=1584.4kbits/
    frame=  833 fps= 29 q=29.0 size=    5368kB time=00:00:27.82 bitrate=1580.2kbits/
    frame=  851 fps= 29 q=29.0 size=    5469kB time=00:00:28.43 bitrate=1575.9kbits/
    frame=  870 fps= 29 q=29.0 size=    5567kB time=00:00:29.05 bitrate=1569.5kbits/
    frame=  889 fps= 29 q=29.0 size=    5688kB time=00:00:29.70 bitrate=1568.4kbits/
    Starting second pass: moving header on top of the file
    frame=  902 fps= 28 q=-1.0 Lsize=    6109kB time=00:00:30.14 bitrate=1659.8kbits
    /s dup=1 drop=0
    video:5602kB audio:472kB subtitle:0 global headers:0kB muxing overhead 0.566600%

    [libx264 @ 0000000004360620] frame I:8     Avg QP:20.52  size: 39667
    [libx264 @ 0000000004360620] frame P:419   Avg QP:25.06  size: 10524
    [libx264 @ 0000000004360620] frame B:475   Avg QP:29.03  size:  2123
    [libx264 @ 0000000004360620] consecutive B-frames:  3.2% 79.6%  0.3% 16.9%
    [libx264 @ 0000000004360620] mb I  I16..4: 20.7% 52.3% 26.9%
    [libx264 @ 0000000004360620] mb P  I16..4:  0.7%  4.2%  1.1%  P16..4: 39.4% 21.4
    % 13.8%  0.0%  0.0%    skip:19.3%
    [libx264 @ 0000000004360620] mb B  I16..4:  0.1%  0.9%  0.3%  B16..8: 41.8%  6.4
    %  1.7%  direct: 1.7%  skip:47.1%  L0:36.4% L1:53.3% BI:10.3%
    [libx264 @ 0000000004360620] 8x8 transform intra:65.7% inter:58.8%
    [libx264 @ 0000000004360620] coded y,uvDC,uvAC intra: 71.2% 76.6% 35.7% inter: 2
    0.7% 13.0% 0.5%
    [libx264 @ 0000000004360620] i16 v,h,dc,p: 48% 24%  8% 20%
    [libx264 @ 0000000004360620] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 17% 18% 15%  6%  8%
    11%  8% 10%  8%
    [libx264 @ 0000000004360620] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 16% 15%  7% 10%
    11%  8%  8%  7%
    [libx264 @ 0000000004360620] i8c dc,h,v,p: 51% 22% 19%  9%
    [libx264 @ 0000000004360620] Weighted P-Frames: Y:0.7% UV:0.0%
    [libx264 @ 0000000004360620] ref P L0: 63.4% 19.7% 11.0%  5.9%  0.0%
    [libx264 @ 0000000004360620] ref B L0: 90.7%  8.7%  0.7%
    [libx264 @ 0000000004360620] ref B L1: 98.4%  1.6%
    [libx264 @ 0000000004360620] kb/s:1524.54
  • HTML5 Video Chrome - ffmpeg - mp4 working in all but Chrome

    16 octobre 2014, par IIIOXIII

    I have successfully encoded a file to .mp4 using ffmpeg which will play in all tested devices (Safari on PC, IE on PC, Android Browser, Andriod Video Player, and Safari iPad), except for Chrome.

    As a work-around, I had planned to simply list the .ogg source prior to the .mp4 source so that chrome would play the .ogg source without even seeing the .mp4 source, however, I ran into the issue mentioned here.

    Basically, I am after the proper ffmpeg command which will encode an .mp4 video to standards which will play in Chrome - of course without losing playback functionality on any of the other previously mentioned platforms.

    I have tried several combinations, such as :

    ffmpeg -i [filename].wmv -vprofile baseline -level 30 -vf scale=640:-1 -movflags faststart [filename].mp4

    etc. but have not yet found the winning one.

    EDIT : I tried :

    ffmpeg_new -i [filename].wmv -strict experimental –acodec libvo_aacenc -ac 2 -ab 160k -vcodec libx264 -vf scale=640:-1 -pix_fmt yuv420p -preset slow -profile:v baseline -level 30 -maxrate 10000000 -bufsize 10000000 -b 1200k -f mp4 -threads 0 [filename].mp4

    And here is the ffmpeg output :

    ffmpeg version N-54207-ge59fb3f Copyright (c) 2000-2013 the FFmpeg developers built on Jun 25 2013 21:55:00 with gcc 4.7.3 (GCC)
    configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
    isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
    le-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetyp
    e --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --ena
    ble-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-l
    ibopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libsp
    eex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-
    amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --
    enable-libxvid --enable-zlib
     libavutil      52. 37.101 / 52. 37.101
     libavcodec     55. 17.100 / 55. 17.100
     libavformat    55. 10.100 / 55. 10.100
     libavdevice    55.  2.100 / 55.  2.100
     libavfilter     3. 77.101 /  3. 77.101
     libswscale      2.  3.100 /  2.  3.100
     libswresample   0. 17.102 /  0. 17.102
     libpostproc    52.  3.100 / 52.  3.100
    [asf @ 000000000254f9e0] Stream #0: not enough frames to estimate rate; consider
    increasing probesize
    Guessed Channel Layout for  Input Stream #0.0 : stereo
    Input #0, asf, from 'C:\vidtests\Wildlife.wmv':
     Metadata:
       SfOriginalFPS   : 299700
       WMFSDKVersion   : 11.0.6001.7000
       WMFSDKNeeded    : 0.0.0.0000
       comment         : Footage: Small World Productions, Inc; Tourism New Zealand
    | Producer: Gary F. Spradling | Music: Steve Ball
       title           : Wildlife in HD
       copyright       : ┬⌐ 2008 Microsoft Corporation
       IsVBR           : 0
       DeviceConformanceTemplate: AP@L3
     Duration: 00:00:30.09, start: 0.000000, bitrate: 6977 kb/s
       Stream #0:0(eng): Audio: wmav2 (a[1][0][0] / 0x0161), 44100 Hz, stereo, fltp
    , 192 kb/s
       Stream #0:1(eng): Video: vc1 (Advanced) (WVC1 / 0x31435657), yuv420p, 1280x7
    20, 5942 kb/s, 29.97 tbr, 1k tbn, 1k tbc
    Please use -b:a or -b:v, -b is ambiguous
    [libx264 @ 000000000264faa0] using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64

    [libx264 @ 000000000264faa0] profile Constrained Baseline, level 3.0
    [libx264 @ 000000000264faa0] 264 - core 133 r2334 a3ac64b - H.264/MPEG-4 AVC cod
    ec - Copyleft 2003-2013 - http://www.videolan.org/x264.html - options: cabac=0 r
    ef=5 deblock=1:0:0 analyse=0x1:0x111 me=umh subme=8 psy=1 psy_rd=1.00:0.00 mixed
    _ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pski
    p=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 deci
    mate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyi
    nt=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=50 rc=abr mbtree=1
    bitrate=1200 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=10000
    vbv_bufsize=10000 nal_hrd=none ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to 'C:\vidtests\Wildlife_SE1.mp4':
     Metadata:
       SfOriginalFPS   : 299700
       WMFSDKVersion   : 11.0.6001.7000
       WMFSDKNeeded    : 0.0.0.0000
       comment         : Footage: Small World Productions, Inc; Tourism New Zealand
    | Producer: Gary F. Spradling | Music: Steve Ball
       title           : Wildlife in HD
       copyright       : ┬⌐ 2008 Microsoft Corporation
       IsVBR           : 0
       DeviceConformanceTemplate: AP@L3
       encoder         : Lavf55.10.100
       Stream #0:0(eng): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 6
    40x360, q=-1--1, 1200 kb/s, 30k tbn, 29.97 tbc
       Stream #0:1(eng): Audio: aac (libvo_aacenc) ([64][0][0][0] / 0x0040), 44100
    Hz, stereo, s16, 160 kb/s
    Stream mapping:
     Stream #0:1 -> #0:0 (vc1 -> libx264)
     Stream #0:0 -> #0:1 (wmav2 -> libvo_aacenc)
    Press [q] to stop, [?] for help
    frame=   59 fps= 55 q=32.0 size=       0kB time=00:00:00.16 bitrate=   2.3kbits/
    frame=   66 fps= 42 q=31.0 size=       0kB time=00:00:00.40 bitrate=   1.0kbits/
    frame=   75 fps= 35 q=31.0 size=       0kB time=00:00:00.70 bitrate=   0.5kbits/
    frame=   84 fps= 31 q=31.0 size=       0kB time=00:00:01.00 bitrate=   0.4kbits/
    frame=   93 fps= 29 q=31.0 size=       0kB time=00:00:01.30 bitrate=   0.3kbits/
    frame=  102 fps= 27 q=31.0 size=       0kB time=00:00:01.60 bitrate=   0.2kbits/
    frame=  111 fps= 26 q=31.0 size=      38kB time=00:00:01.90 bitrate= 165.1kbits/
    Queue input is backward in time
    [mp4 @ 000000000264f2c0] Non-monotonous DTS in output stream 0:1; previous: 7616
    , current: 7063; changing to 7617. This may result in incorrect timestamps in th
    e output file.
    frame=  120 fps= 25 q=31.0 size=     107kB time=00:00:02.20 bitrate= 397.7kbits/
    frame=  128 fps= 24 q=31.0 size=     161kB time=00:00:02.46 bitrate= 534.1kbits/
    frame=  137 fps= 23 q=31.0 size=     194kB time=00:00:02.76 bitrate= 572.6kbits/
    frame=  145 fps= 23 q=31.0 size=     219kB time=00:00:03.03 bitrate= 592.1kbits/
    frame=  153 fps= 22 q=31.0 size=     273kB time=00:00:03.30 bitrate= 677.8kbits/
    frame=  162 fps= 22 q=31.0 size=     317kB time=00:00:03.60 bitrate= 720.8kbits/
    frame=  170 fps= 21 q=31.0 size=     366kB time=00:00:03.87 bitrate= 775.2kbits/
    frame=  177 fps= 21 q=31.0 size=     451kB time=00:00:04.10 bitrate= 900.2kbits/
    frame=  193 fps= 21 q=31.0 size=     602kB time=00:00:04.63 bitrate=1062.7kbits/
    frame=  208 fps= 22 q=30.0 size=     755kB time=00:00:05.13 bitrate=1204.2kbits/
    frame=  219 fps= 22 q=30.0 size=     769kB time=00:00:05.50 bitrate=1143.6kbits/
    frame=  228 fps= 21 q=30.0 size=     790kB time=00:00:05.80 bitrate=1114.5kbits/
    frame=  234 fps= 21 q=31.0 size=     806kB time=00:00:06.00 bitrate=1098.7kbits/
    frame=  243 fps= 21 q=31.0 size=     806kB time=00:00:06.30 bitrate=1046.4kbits/
    frame=  251 fps= 21 q=31.0 size=     831kB time=00:00:06.57 bitrate=1035.6kbits/
    frame=  260 fps= 20 q=31.0 size=     860kB time=00:00:06.87 bitrate=1024.6kbits/
    frame=  273 fps= 21 q=31.0 size=     934kB time=00:00:07.30 bitrate=1046.7kbits/
    frame=  288 fps= 21 q=30.0 size=    1019kB time=00:00:07.80 bitrate=1068.7kbits/
    frame=  302 fps= 21 q=30.0 size=    1066kB time=00:00:08.27 bitrate=1055.8kbits/
    frame=  314 fps= 21 q=29.0 size=    1146kB time=00:00:08.67 bitrate=1082.1kbits/
    frame=  328 fps= 21 q=28.0 size=    1189kB time=00:00:09.14 bitrate=1065.6kbits/
    frame=  341 fps= 21 q=28.0 size=    1247kB time=00:00:09.57 bitrate=1066.7kbits/
    frame=  352 fps= 22 q=27.0 size=    1274kB time=00:00:09.94 bitrate=1049.3kbits/
    frame=  365 fps= 22 q=27.0 size=    1298kB time=00:00:10.37 bitrate=1024.7kbits/
    frame=  376 fps= 22 q=27.0 size=    1349kB time=00:00:10.74 bitrate=1028.7kbits/
    frame=  388 fps= 22 q=26.0 size=    1378kB time=00:00:11.14 bitrate=1012.9kbits/
    frame=  401 fps= 22 q=26.0 size=    1415kB time=00:00:11.57 bitrate=1001.4kbits/
    frame=  412 fps= 22 q=26.0 size=    1454kB time=00:00:11.94 bitrate= 996.9kbits/
    frame=  421 fps= 22 q=27.0 size=    1489kB time=00:00:12.24 bitrate= 996.2kbits/
    frame=  431 fps= 21 q=27.0 size=    1509kB time=00:00:12.57 bitrate= 982.7kbits/
    frame=  441 fps= 21 q=28.0 size=    1555kB time=00:00:12.91 bitrate= 986.6kbits/
    frame=  450 fps= 21 q=28.0 size=    1599kB time=00:00:13.21 bitrate= 991.7kbits/
    frame=  460 fps= 21 q=28.0 size=    1621kB time=00:00:13.54 bitrate= 980.4kbits/
    frame=  470 fps= 21 q=28.0 size=    1660kB time=00:00:13.88 bitrate= 979.9kbits/
    frame=  480 fps= 21 q=28.0 size=    1734kB time=00:00:14.21 bitrate= 999.2kbits/
    frame=  489 fps= 21 q=29.0 size=    1834kB time=00:00:14.51 bitrate=1035.3kbits/
    frame=  499 fps= 21 q=29.0 size=    1890kB time=00:00:14.84 bitrate=1042.8kbits/
    frame=  508 fps= 21 q=29.0 size=    1962kB time=00:00:15.14 bitrate=1060.8kbits/
    frame=  519 fps= 21 q=29.0 size=    2061kB time=00:00:15.51 bitrate=1087.9kbits/
    frame=  531 fps= 21 q=29.0 size=    2189kB time=00:00:15.91 bitrate=1126.6kbits/
    frame=  540 fps= 21 q=29.0 size=    2329kB time=00:00:16.21 bitrate=1176.4kbits/
    frame=  551 fps= 21 q=29.0 size=    2439kB time=00:00:16.58 bitrate=1204.8kbits/
    frame=  562 fps= 21 q=29.0 size=    2569kB time=00:00:16.95 bitrate=1241.8kbits/
    frame=  575 fps= 21 q=29.0 size=    2688kB time=00:00:17.38 bitrate=1266.9kbits/
    frame=  581 fps= 21 q=29.0 size=    2749kB time=00:00:17.58 bitrate=1280.6kbits/
    frame=  589 fps= 21 q=29.0 size=    2785kB time=00:00:17.85 bitrate=1278.1kbits/
    frame=  595 fps= 21 q=30.0 size=    2808kB time=00:00:18.05 bitrate=1274.5kbits/
    frame=  602 fps= 20 q=30.0 size=    2903kB time=00:00:18.28 bitrate=1300.7kbits/
    frame=  610 fps= 20 q=31.0 size=    3008kB time=00:00:18.55 bitrate=1328.2kbits/
    frame=  616 fps= 20 q=31.0 size=    3128kB time=00:00:18.75 bitrate=1366.6kbits/
    frame=  625 fps= 20 q=31.0 size=    3238kB time=00:00:19.05 bitrate=1392.5kbits/
    frame=  633 fps= 20 q=31.0 size=    3320kB time=00:00:19.31 bitrate=1407.9kbits/
    frame=  642 fps= 20 q=31.0 size=    3397kB time=00:00:19.61 bitrate=1418.4kbits/
    frame=  652 fps= 20 q=31.0 size=    3437kB time=00:00:19.95 bitrate=1411.1kbits/
    frame=  661 fps= 20 q=31.0 size=    3511kB time=00:00:20.25 bitrate=1420.3kbits/
    frame=  669 fps= 20 q=31.0 size=    3578kB time=00:00:20.52 bitrate=1428.2kbits/
    frame=  679 fps= 20 q=31.0 size=    3606kB time=00:00:20.85 bitrate=1416.6kbits/
    frame=  691 fps= 20 q=32.0 size=    3670kB time=00:00:21.25 bitrate=1414.5kbits/
    frame=  701 fps= 20 q=32.0 size=    3798kB time=00:00:21.58 bitrate=1441.2kbits/
    frame=  713 fps= 20 q=32.0 size=    3901kB time=00:00:21.98 bitrate=1453.3kbits/
    frame=  723 fps= 20 q=32.0 size=    3969kB time=00:00:22.32 bitrate=1456.6kbits/
    frame=  735 fps= 20 q=32.0 size=    4027kB time=00:00:22.72 bitrate=1451.7kbits/
    frame=  744 fps= 20 q=32.0 size=    4102kB time=00:00:23.02 bitrate=1459.6kbits/
    frame=  755 fps= 20 q=32.0 size=    4135kB time=00:00:23.39 bitrate=1448.3kbits/
    frame=  764 fps= 20 q=32.0 size=    4172kB time=00:00:23.69 bitrate=1442.7kbits/
    frame=  776 fps= 20 q=32.0 size=    4216kB time=00:00:24.09 bitrate=1433.5kbits/
    frame=  787 fps= 20 q=32.0 size=    4254kB time=00:00:24.45 bitrate=1424.8kbits/
    frame=  802 fps= 20 q=32.0 size=    4337kB time=00:00:24.95 bitrate=1423.6kbits/
    frame=  815 fps= 20 q=32.0 size=    4369kB time=00:00:25.39 bitrate=1409.6kbits/
    frame=  828 fps= 20 q=32.0 size=    4450kB time=00:00:25.82 bitrate=1411.5kbits/
    frame=  840 fps= 20 q=32.0 size=    4467kB time=00:00:26.22 bitrate=1395.3kbits/
    frame=  852 fps= 20 q=32.0 size=    4550kB time=00:00:26.62 bitrate=1399.8kbits/
    frame=  865 fps= 20 q=32.0 size=    4594kB time=00:00:27.06 bitrate=1390.7kbits/
    frame=  877 fps= 20 q=32.0 size=    4629kB time=00:00:27.46 bitrate=1380.9kbits/
    frame=  889 fps= 20 q=32.0 size=    4689kB time=00:00:27.86 bitrate=1378.6kbits/
    frame=  900 fps= 20 q=32.0 size=    4740kB time=00:00:28.22 bitrate=1375.6kbits/
    frame=  901 fps= 19 q=-1.0 Lsize=    5203kB time=00:00:30.10 bitrate=1416.0kbits
    /s
    video:4586kB audio:590kB subtitle:0 global headers:0kB muxing overhead 0.532558%

    [libx264 @ 000000000264faa0] frame I:8     Avg QP:22.98  size: 31700
    [libx264 @ 000000000264faa0] frame P:893   Avg QP:27.55  size:  4974
    [libx264 @ 000000000264faa0] mb I  I16..4: 34.6%  0.0% 65.4%
    [libx264 @ 000000000264faa0] mb P  I16..4:  0.8%  0.0%  1.5%  P16..4: 41.4% 18.8
    %  8.5%  0.0%  0.0%    skip:29.0%
    [libx264 @ 000000000264faa0] final ratefactor: 24.50
    [libx264 @ 000000000264faa0] coded y,uvDC,uvAC intra: 64.3% 76.0% 36.7% inter: 2
    3.5% 19.6% 0.7%
    [libx264 @ 000000000264faa0] i16 v,h,dc,p: 34% 33% 11% 22%
    [libx264 @ 000000000264faa0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 12% 16% 12%  9% 12%
    11% 12%  7%  8%
    [libx264 @ 000000000264faa0] i8c dc,h,v,p: 55% 23% 14%  7%
    [libx264 @ 000000000264faa0] ref P L0: 72.3% 12.0%  8.1%  3.7%  3.9%
    [libx264 @ 000000000264faa0] kb/s:1249.53

    But still no luck. The .mp4 will play in every compatible device/browser combination I have tried except for chrome.. Any advice ?

    TIA.

  • send h264 video to nginx-rtmp server using ffmpeg API

    11 décembre 2019, par Glen

    I have C++ code that grabs frames from a GigE camera and writes them out to a file. I’m using the libx264 codec and ffmpeg version 4.0.

    Writing to the file works fine, however I would also like to send the video to nginx configured with the nginx-rtmp plug-in to make the video available live via HLS.

    I can use the ffmpeg command line program to stream one of my previously captured files to my nginx server and rebroadcast as HLS, however if I try to stream from my C++ code the nginx server closes the connection after one or two frames are sent.

    To test further, I used the ffmpeg command line program to receive a rtmp stream and write it out to a file. I am able to send video to ffmpeg from my C++ program with rtmp, however every frame generates a warning like this :

    [avi @ 0x1b6b6f0] Non-monotonous DTS in output stream 0:0; previous: 1771, current: 53; changing to 1772. This may result in incorrect timestamps in the output file.
    [avi @ 0x1b6b6f0] Non-monotonous DTS in output stream 0:0; previous: 1772, current: 53; changing to 1773. This may result in incorrect timestamps in the output file.
    [avi @ 0x1b6b6f0] Non-monotonous DTS in output stream 0:0; previous: 1773, current: 53; changing to 1774. This may result in incorrect timestamps in the output file.
    [avi @ 0x1b6b6f0] Non-monotonous DTS in output stream 0:0; previous: 1774, current: 53; changing to 1775. This may result in incorrect timestamps in the output file.
    [avi @ 0x1b6b6f0] Non-monotonous DTS in output stream 0:0; previous: 1775, current: 53; changing to 1776. This may result in incorrect timestamps in the output file.
    [avi @ 0x1b6b6f0] Non-monotonous DTS in output stream 0:0; previous: 1776, current: 53; changing to 1777. This may result in incorrect timestamps in the output file.
    [avi @ 0x1b6b6f0] Non-monotonous DTS in output stream 0:0; previous: 1777, current: 53; changing to 1778. This may result in incorrect timestamps in the output file.
    [avi @ 0x1b6b6f0] Non-monotonous DTS in output stream 0:0; previous: 1778, current: 53; changing to 1779. This may result in incorrect timestamps in the output file.
    [avi @ 0x1b6b6f0] Non-monotonous DTS in output stream 0:0; previous: 1779, current: 53; changing to 1780. This may result in incorrect timestamps in the output file.

    I printed PTS and DTS for my packet before writing it, and the numbers were monotonous (for example, in this last frame the pts and dts printed from my code were 1780, not the ’current : 53’ that ffmpeg reports>

    also, unless I tell ffmpeg what the output framerate should be I end up with a file that plays 2x speed.

    After ffmpeg receives the rtmp stream and writes it to the file, I am then able to successfully send that file to my nginx server using ffmpeg.

    here is some relevant code :

    //configuring the codec context
    // make sure that config.codec is something we support
    // for now we are only supporting LIBX264
    if (config.codec() != codecs::LIBX264) {
       throw std::invalid_argument("currently only libx264 codec is supported");
    }

    // lookup specified codec
    ffcodec_ = avcodec_find_encoder_by_name(config.codec().c_str());
    if (!ffcodec_) {
       throw std::invalid_argument("unable to get codec " + config.codec());
    }

    // unique_ptr to manage the codec_context
    codec_context_ = av_pointer::codec_context(avcodec_alloc_context3(ffcodec_));

    if (!codec_context_) {
       throw std::runtime_error("unable to initialize AVCodecContext");
    }

    // setup codec_context_
    codec_context_->width = frame_width;
    codec_context_->height = frame_height;
    codec_context_->time_base = (AVRational){1, config.target_fps()};
    codec_context_->framerate = (AVRational){config.target_fps(), 1};
    codec_context_->global_quality = 0;
    codec_context_->compression_level = 0;
    codec_context_->bits_per_raw_sample = 8;
    codec_context_->gop_size = 1;
    codec_context_->max_b_frames = 1;
    codec_context_->pix_fmt = AV_PIX_FMT_YUV420P;

    // x264 only settings
    if (config.codec() == codecs::LIBX264) {
       av_opt_set(codec_context_->priv_data, "preset", config.compression_target().c_str(), 0);
       av_opt_set(codec_context_->priv_data, "crf", std::to_string(config.crf()).c_str(), 0);
    }

    // Open up the codec
    if (avcodec_open2(codec_context_.get(), ffcodec_, NULL) < 0) {
       throw std::runtime_error("unable to open ffmpeg codec");
    }

    // setup the output format context and stream for RTMP
    AVFormatContext *tmp_f_context;
    avformat_alloc_output_context2(&tmp_f_context, NULL, "flv", uri.c_str());
    rtmp_format_context_ = av_pointer::format_context(tmp_f_context);
    rtmp_stream_ = avformat_new_stream(rtmp_format_context_.get(), ffcodec_);
    avcodec_parameters_from_context(rtmp_stream_->codecpar, codec_context_.get());
    rtmp_stream_->time_base = codec_context_->time_base;
    rtmp_stream_->r_frame_rate = codec_context_->framerate;

    /* open the output file */
    if (!(rtmp_format_context_->flags & AVFMT_NOFILE)) {
       int r = avio_open(&rtmp_format_context_->pb, uri.c_str(), AVIO_FLAG_WRITE);
       if (r < 0) {
           throw std::runtime_error("unable to open " + uri + " : " + av_err2str(r));
       }
    }

    if (avformat_write_header(rtmp_format_context_.get(), NULL) < 0) {
       throw std::runtime_error("unable to write header");
    }

    av_dump_format(rtmp_format_context_.get(), 0,uri.c_str() , 1);

    at this point the av_dump_format produces this output :

    Output #0, flv, to 'rtmp://[MY URI]':
     Metadata:
       encoder         : Lavf58.12.100
       Stream #0:0, 0, 1/1000: Video: h264 (libx264), 1 reference frame ([7][0][0][0] / 0x0007), yuv420p, 800x800 (0x0), 0/1, q=-1--1, 30 tbr, 1k tbn

    encoding and writing the frame :

    // send the frame to the encoder, filtering first if necessary
    void VideoWriter::Encode(AVFrame *frame)
    {
       int rval;
       if (!apply_filter_) {
           //send frame to encoder
           rval = avcodec_send_frame(codec_context_.get(), frame);
           if (rval < 0) {
               throw std::runtime_error("error sending frame for encoding");
           }
       } else {
           // push frame to filter
           // REMOVED, currently testing without filtering
       }

       // get packets from encoder
       while (rval >= 0) {
           // create smart pointer to allocated packet
           av_pointer::packet pkt(av_packet_alloc());
           if (!pkt) {
               throw std::runtime_error("unable to allocate packet");
           }

           rval = avcodec_receive_packet(codec_context_.get(), pkt.get());
           if (rval == AVERROR(EAGAIN) || rval == AVERROR_EOF) {
               return;
           } else if (rval < 0) {
               throw std::runtime_error("error during encoding");
           }

           // if I print pkt->pts and pkt->dts here, I see sequential numbers

           // write packet
           rval = av_interleaved_write_frame(rtmp_format_context_.get(), pkt.get());
           if (rval < 0 ) {
               std::cerr << av_err2str(rval) << std::endl;
           }
       }
    }

    Since I am able to send video from a previously recorded file to nginx with the ffmpeg command line program, I believe the problem is in my code and not my nginx configuration.

    EDIT : I think it may have to do with SPS/PPS as I see a bunch of these error messages in the nginx log before it closes the stream

    2019/12/11 11:11:31 [error] 10180#0: *4 hls: failed to read 5 byte(s), client: XXX, server: 0.0.0.0:1935
    2019/12/11 11:11:31 [error] 10180#0: *4 hls: error appenging SPS/PPS NALs, client: XXX, server: 0.0.0.0:1935

    As I mentioned, this code works fine if I set it up to write to an avi file rather stream to rtmp, and I can stream to ffmpeg listening for rtmp but with lots of warnings about the DTS but if I try to send to nginx, it closes the connection almost immediately. My first thought was that there was something wrong with the frame timestamps, but when I print pts and dts prior to writing the packet to the stream they look okay to me.

    My end goal is to capture video to a file, and also be able to turn on the rtmp stream on demand — but for now I’m just trying to get the rtmp stream working continuously (without writing to a file)

    Thanks for any insights.