Recherche avancée

Médias (0)

Mot : - Tags -/tags

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

Autres articles (25)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • Support de tous types de médias

    10 avril 2011

    Contrairement à beaucoup de logiciels et autres plate-formes modernes de partage de documents, MediaSPIP a l’ambition de gérer un maximum de formats de documents différents qu’ils soient de type : images (png, gif, jpg, bmp et autres...) ; audio (MP3, Ogg, Wav et autres...) ; vidéo (Avi, MP4, Ogv, mpg, mov, wmv et autres...) ; contenu textuel, code ou autres (open office, microsoft office (tableur, présentation), web (html, css), LaTeX, Google Earth) (...)

  • Les tâches Cron régulières de la ferme

    1er décembre 2010, par

    La gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
    Le super Cron (gestion_mutu_super_cron)
    Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...)

Sur d’autres sites (6918)

  • ffmpeg determine correct codec to use

    6 janvier 2015, par nha

    I am trying to use .y4m files that I feed into Chrome for playing.
    This is the only format that I can use.

    I have a set of .y4m files that are working for my use case, taken from here.
    For example let’s say that I use the file mobile_qcif_7.5fps.y4m.

    I also have a .mp4 file (specifically the sample small.mp4 file from techslides ). I know how to convert small.mp4 to small.y4m with the following command :

    ffmpeg -y -i small.mp4 small.y4m

    I would like the resulting file to be accepted by Chrome, just like the other file.
    What options should I use (and how to find them) ?

    Additional information

    ffprobe gives :

    $ ffprobe small.y4m
    avprobe version 0.8.13-6:0.8.13-0ubuntu0.13.10.1, Copyright (c) 2007-2014 the Libav developers
     built on Jul 15 2014 13:48:35 with gcc 4.8.1
    [yuv4mpegpipe @ 0x23160c0] Estimating duration from bitrate, this may be inaccurate
    Input #0, yuv4mpegpipe, from 'small.y4m':
     Duration: N/A, bitrate: N/A
       Stream #0.0: Video: rawvideo, yuv420p, 560x320, 30 fps, 30 tbr, 30 tbn, 30 tbc


    $ ffprobe mobile_qcif_7.5fps.y4m
    avprobe version 0.8.13-6:0.8.13-0ubuntu0.13.10.1, Copyright (c) 2007-2014 the Libav developers
     built on Jul 15 2014 13:48:35 with gcc 4.8.1
    [yuv4mpegpipe @ 0x1e080c0] max_analyze_duration reached
    [yuv4mpegpipe @ 0x1e080c0] Estimating duration from bitrate, this may be inaccurate
    Input #0, yuv4mpegpipe, from 'mobile_qcif_7.5fps.y4m':
     Duration: N/A, bitrate: N/A
       Stream #0.0: Video: rawvideo, yuv420p, 176x144, PAR 128:117 DAR 1408:1053, 7.50 fps, 7.50 tbr, 7.50 tbn, 7.50 tbc

    OS : I am using ffmpeg in Ubuntu 13.10 from the default repository : I ran sudo apt-get install ffmpeg libavcodec-extra-53

    Complete console output

    $ ffmpeg -y -i small.mp4 small.y4m
    ffmpeg version 0.8.13-6:0.8.13-0ubuntu0.13.10.1, Copyright (c) 2000-2014 the Libav developers
     built on Jul 15 2014 13:48:35 with gcc 4.8.1
    *** THIS PROGRAM IS DEPRECATED ***
    This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'small.mp4':
     Metadata:
       major_brand     : mp42
       minor_version   : 0
       compatible_brands: mp42isomavc1
       creation_time   : 2010-03-20 21:29:11
       encoder         : HandBrake 0.9.4 2009112300
     Duration: 00:00:05.56, start: 0.000000, bitrate: 551 kb/s
       Stream #0.0(und): Video: h264 (Constrained Baseline), yuv420p, 560x320, 465 kb/s, 30 fps, 30 tbr, 90k tbn, 60 tbc
       Metadata:
         creation_time   : 2010-03-20 21:29:11
       Stream #0.1(eng): Audio: aac, 48000 Hz, mono, s16, 83 kb/s
       Metadata:
         creation_time   : 2010-03-20 21:29:11
    [buffer @ 0x7274e0] w:560 h:320 pixfmt:yuv420p
    Output #0, yuv4mpegpipe, to 'small.y4m':
     Metadata:
       major_brand     : mp42
       minor_version   : 0
       compatible_brands: mp42isomavc1
       creation_time   : 2010-03-20 21:29:11
       encoder         : Lavf53.21.1
       Stream #0.0(und): Video: rawvideo, yuv420p, 560x320, q=2-31, 200 kb/s, 90k tbn, 30 tbc
       Metadata:
         creation_time   : 2010-03-20 21:29:11
    Stream mapping:
     Stream #0.0 -> #0.0
    Press ctrl-c to stop encoding
    frame=  166 fps=  0 q=0.0 Lsize=   43576kB time=5.53 bitrate=64513.5kbits/s    
    video:0kB audio:0kB global headers:0kB muxing overhead inf%

    Head of the files

    Not sure if this is relevant, but the text content of both files begin like that :

    mobile_qcif_7.5fps.y4m
    YUV4MPEG2 W176 H144 F15:2 Ip A128:117
    FRAME

    small.y4m (invalid)
    YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C420mpeg2 XYSCSS=420MPEG2
    FRAME

    Additional experiment

    Taking the sample mobile_qcif_7.5fps.y4m, turning it into a .mp4 file and then back into a .y4m produces an invalid file (at least for Chrome).

    Answer to comments in the answer of @SirDarius

    Following the suggestion of @SirDarius ; I tried the following commands.
    They failed to produce a valid file.

    # [COMMAND]   # [RESULT] [HEADER]
    ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -pix_fmt yuv444p -y small_yuv444p.y4m   # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C444 XYSCSS=444
    ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -pix_fmt yuv422p -y small_yuv422p.y4m   # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C422 XYSCSS=422
    ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -pix_fmt yuv420p -y small_yuv420p.y4m   # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C420mpeg2 XYSCSS=420MPEG2
    ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -pix_fmt yuv411p -y small_yuv411p.y4m   # KO   YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C411 XYSCSS=411

    ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -strict -1 -pix_fmt yuv420p9 -y small_yuv420p9.y4m   # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C420p9 XYSCSS=420P9
    ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -strict -1 -pix_fmt yuv420p12 -y small_yuv420p12.y4m # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C420p12 XYSCSS=420P12
    ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -strict -1 -pix_fmt yuv420p14 -y small_yuv420p14.y4m # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C420p14 XYSCSS=420P14
    ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -strict -1 -pix_fmt yuv420p16 -y small_yuv420p16.y4m # KO YUV4MPEG2 W560 H320 F15:2 Ip A0:0 C420p16 XYSCSS=420P16

    When trying other formats (like yuv420p12be, which was in the output of -pix_fmts), I had the following output (hence my previous trials) :

    $  ffmpeg -i small.mp4 -vf fps=7.5 -an -c:v rawvideo -f yuv4mpegpipe -pix_fmt yuv420p12be -y small_yuv420p12be.y4m
    ffmpeg version N-68884-g3ebd76a Copyright (c) 2000-2015 the FFmpeg developers
     built on Jan  6 2015 11:03:21 with gcc 4.8 (Ubuntu/Linaro 4.8.1-10ubuntu9)
     configuration:
     libavutil      54. 16.100 / 54. 16.100
     libavcodec     56. 19.100 / 56. 19.100
     libavformat    56. 18.100 / 56. 18.100
     libavdevice    56.  3.100 / 56.  3.100
     libavfilter     5.  6.100 /  5.  6.100
     libswscale      3.  1.101 /  3.  1.101
     libswresample   1.  1.100 /  1.  1.100
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x21d0220] overread end of atom 'colr' by 1 bytes
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'small.mp4':
     Metadata:
       major_brand     : mp42
       minor_version   : 0
       compatible_brands: mp42isomavc1
       creation_time   : 2010-03-20 21:29:11
       encoder         : HandBrake 0.9.4 2009112300
     Duration: 00:00:05.57, start: 0.000000, bitrate: 551 kb/s
       Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(tv, bt709), 560x320, 465 kb/s, 30 fps, 30 tbr, 90k tbn, 60 tbc (default)
       Metadata:
         creation_time   : 2010-03-20 21:29:11
         encoder         : JVT/AVC Coding
       Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 83 kb/s (default)
       Metadata:
         creation_time   : 2010-03-20 21:29:11
    [yuv4mpegpipe @ 0x21d8180] ERROR: yuv4mpeg can only handle yuv444p, yuv422p, yuv420p, yuv411p and gray8 pixel formats. And using 'strict -1' also yuv444p9, yuv422p9, yuv420p9, yuv444p10, yuv422p10, yuv420p10, yuv444p12, yuv422p12, yuv420p12, yuv444p14, yuv422p14, yuv420p14, yuv444p16, yuv422p16, yuv420p16 and gray16 pixel formats. Use -pix_fmt to select one.
    Output #0, yuv4mpegpipe, to 'small_yuv420p12be.y4m':
     Metadata:
       major_brand     : mp42
       minor_version   : 0
       compatible_brands: mp42isomavc1
       encoder         : Lavf56.18.100
       Stream #0:0(und): Video: rawvideo ([12][11]3Y / 0x59330B0C), yuv420p12be, 560x320, q=2-31, 200 kb/s, 7.50 fps, 7.50 tbn, 7.50 tbc (default)
       Metadata:
         creation_time   : 2010-03-20 21:29:11
         encoder         : Lavc56.19.100 rawvideo
    Stream mapping:
     Stream #0:0 -> #0:0 (h264 (native) -> rawvideo (native))
    Could not write header for output file #0 (incorrect codec parameters ?): Input/output error

    After that, I also tried to edit with an hexadecimal editor (bless) the small_yuv420p.y4m file. I replace C420mpeg2 by C420, and the file was accepted by Chrome.
    What does the number in 420p[number] correspond to ? It is not explained there.
    Is there any way to make ffmpeg output this kind of header files ?

    @SirDarius, thank you again for your help.

    The question

    (in case you forgot after this text blob)

    How can I convert the small.mp4 into a small.y4m file that has the same properties as the mobile_qcif_7.5fps.y4m file ?

  • ffmpeg - Adding audio to a complex filter

    9 janvier 2015, par user3630651

    I am using c# to programmatically write an ffmpeg command to crossfade a logo into a video. I also need to cut a couple of seconds into the video.

    Here is the currently working ffmpeg command :
    (No audio)

    -y -loop 1 -t 3.2 -i "logo.png" -i "video.mp4" -r 29.97 -f lavfi -i color=black -filter_complex "
    [0:v] scale=640:-1, crop=640:360, format=pix_fmts=yuv420p, fade=t=out:st=2.7:d=0.5:alpha=1, setpts=PTS-STARTPTS [va0];
    [1:v] format=pix_fmts=yuv420p, fade=t=in:st=0:d=0.5:alpha=1, setpts=PTS-STARTPTS + 3.2 / TB [va1];
    [2:v] scale=640:-1, crop=640:360, trim=duration=147.768 [over];
    [over][va0] overlay [over1];
    [over1][va1] overlay=format=yuv420 [outv]
    " -vcodec libx264 -map [outv] "Finished.mp4"

    I want to add audio from "video.mp4"([1:a]) to the output starting a few seconds in, how do I go about this without causing a buffer overflow ?

    Thank you for your help in advance !


    Edit, Adding ffmpeg output on request :

    ffmpeg version N-66012-g97b8809 Copyright (c) 2000-2014 the FFmpeg developers
     built on Sep  1 2014 00:21:15 with gcc 4.8.3 (GCC)
     configuration: --disable-static --enable-shared --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-decklink --enable-zlib
     libavutil      54.  7.100 / 54.  7.100
     libavcodec     56.  1.100 / 56.  1.100
     libavformat    56.  3.100 / 56.  3.100
     libavdevice    56.  0.100 / 56.  0.100
     libavfilter     5.  0.103 /  5.  0.103
     libswscale      3.  0.100 /  3.  0.100
     libswresample   1.  1.100 /  1.  1.100
     libpostproc    53.  0.100 / 53.  0.100
    Input #0, image2, from 'C:\VideoApplicationAssets\test\logo.png':
     Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
       Stream #0:0: Video: png, rgba, 500x400 [SAR 9065:9065 DAR 5:4], 25 fps, 25 tbr, 25 tbn, 25 tbc
    Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\VideoApplicationAssets\test\2.mp4':
     Metadata:
       major_brand     : mp42
       minor_version   : 0
       compatible_brands: isommp42
       creation_time   : 2014-03-07 04:36:36
     Duration: 00:02:24.68, start: 0.000000, bitrate: 574 kb/s
       Stream #1:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 640x360 [SAR 1:1 DAR 16:9], 475 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #1:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 96 kb/s (default)
       Metadata:
         creation_time   : 2014-03-07 04:36:36
         handler_name    : IsoMedia File Produced by Google, 5-11-2011
    Input #2, lavfi, from 'color=black':
     Duration: N/A, start: 0.000000, bitrate: N/A
       Stream #2:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 320x240 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
    [libx264 @ 000000000049cf60] using SAR=1/1
    [libx264 @ 000000000049cf60] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
    [libx264 @ 000000000049cf60] profile High, level 3.0
    [libx264 @ 000000000049cf60] 264 - core 142 r2479 dd79a61 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 ref=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_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=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=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to 'C:\VideoApplicationAssets\test\Finished.mp4':
     Metadata:
       encoder         : Lavf56.3.100
       Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 640x360 [SAR 1:1 DAR 16:9], q=-1--1, 29.97 fps, 11988 tbn, 29.97 tbc (default)
       Metadata:
         encoder         : Lavc56.1.100 libx264
    Stream mapping:
     Stream #0:0 (png) -> scale
     Stream #1:0 (h264) -> format
     Stream #2:0 (rawvideo) -> scale
     overlay -> Stream #0:0 (libx264)
    Press [q] to stop, [?] for help
    frame=  149 fps=0.0 q=29.0 size=      23kB time=00:00:03.23 bitrate=  57.6kbits/s    
    frame=  240 fps=239 q=29.0 size=     200kB time=00:00:06.27 bitrate= 260.6kbits/s    
    frame=  345 fps=229 q=29.0 size=     343kB time=00:00:09.77 bitrate= 287.2kbits/s    
    frame=  431 fps=215 q=29.0 size=     496kB time=00:00:12.64 bitrate= 321.1kbits/s    
    frame=  502 fps=200 q=29.0 size=     633kB time=00:00:15.01 bitrate= 345.5kbits/s    
    frame=  659 fps=219 q=29.0 size=     737kB time=00:00:20.25 bitrate= 298.0kbits/s    
    frame=  843 fps=240 q=26.0 size=     790kB time=00:00:26.39 bitrate= 245.1kbits/s    
    frame=  988 fps=246 q=29.0 size=     982kB time=00:00:31.23 bitrate= 257.7kbits/s    
    frame= 1124 fps=249 q=29.0 size=    1200kB time=00:00:35.76 bitrate= 274.9kbits/s    
    frame= 1292 fps=257 q=29.0 size=    1410kB time=00:00:41.37 bitrate= 279.3kbits/s    
    frame= 1437 fps=260 q=29.0 size=    1773kB time=00:00:46.21 bitrate= 314.2kbits/s    
    frame= 1565 fps=260 q=29.0 size=    2206kB time=00:00:50.48 bitrate= 358.0kbits/s    
    frame= 1709 fps=262 q=29.0 size=    2542kB time=00:00:55.28 bitrate= 376.7kbits/s    
    frame= 1872 fps=266 q=29.0 size=    2920kB time=00:01:00.72 bitrate= 393.9kbits/s    
    frame= 2000 fps=265 q=29.0 size=    3157kB time=00:01:04.99 bitrate= 397.9kbits/s    
    frame= 2108 fps=262 q=29.0 size=    3378kB time=00:01:08.60 bitrate= 403.4kbits/s    
    frame= 2196 fps=257 q=29.0 size=    3592kB time=00:01:11.53 bitrate= 411.4kbits/s    
    frame= 2291 fps=254 q=29.0 size=    3791kB time=00:01:14.70 bitrate= 415.7kbits/s    
    frame= 2394 fps=251 q=29.0 size=    4013kB time=00:01:18.14 bitrate= 420.7kbits/s    
    frame= 2492 fps=248 q=29.0 size=    4191kB time=00:01:21.41 bitrate= 421.7kbits/s    
    frame= 2670 fps=253 q=29.0 size=    4323kB time=00:01:27.35 bitrate= 405.4kbits/s    
    frame= 2829 fps=256 q=29.0 size=    4437kB time=00:01:32.65 bitrate= 392.3kbits/s    
    frame= 2972 fps=257 q=29.0 size=    4749kB time=00:01:37.43 bitrate= 399.3kbits/s    
    frame= 3143 fps=261 q=29.0 size=    5016kB time=00:01:43.13 bitrate= 398.4kbits/s    
    frame= 3247 fps=259 q=29.0 size=    5430kB time=00:01:46.60 bitrate= 417.3kbits/s    
    frame= 3396 fps=260 q=29.0 size=    5737kB time=00:01:51.57 bitrate= 421.2kbits/s    
    frame= 3544 fps=262 q=29.0 size=    5995kB time=00:01:56.51 bitrate= 421.5kbits/s    
    frame= 3691 fps=263 q=29.0 size=    6251kB time=00:02:01.42 bitrate= 421.7kbits/s    
    frame= 3880 fps=267 q=29.0 size=    6342kB time=00:02:07.72 bitrate= 406.7kbits/s    
    frame= 4059 fps=270 q=29.0 size=    6426kB time=00:02:13.70 bitrate= 393.7kbits/s    
    frame= 4158 fps=267 q=29.0 size=    6699kB time=00:02:17.00 bitrate= 400.5kbits/s    
    frame= 4309 fps=268 q=29.0 size=    6911kB time=00:02:22.04 bitrate= 398.6kbits/s    
    frame= 4388 fps=265 q=29.0 size=    7187kB time=00:02:24.67 bitrate= 407.0kbits/s    
    frame= 4430 fps=260 q=-1.0 Lsize=    7537kB time=00:02:27.74 bitrate= 417.9kbits/s dup=0 drop=2    

    video:7491kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.618146%
    [libx264 @ 000000000049cf60] frame I:40    Avg QP:18.78  size: 22979
    [libx264 @ 000000000049cf60] frame P:1964  Avg QP:22.33  size:  3056
    [libx264 @ 000000000049cf60] frame B:2426  Avg QP:27.35  size:   309
    [libx264 @ 000000000049cf60] consecutive B-frames: 24.5%  5.1%  6.6% 63.7%
    [libx264 @ 000000000049cf60] mb I  I16..4: 19.5% 35.8% 44.7%
    [libx264 @ 000000000049cf60] mb P  I16..4:  4.1%  5.7%  2.0%  P16..4: 24.4%  6.9%  2.5%  0.0%  0.0%    skip:54.5%
    [libx264 @ 000000000049cf60] mb B  I16..4:  0.3%  0.2%  0.1%  B16..8: 11.1%  0.7%  0.1%  direct: 0.4%  skip:87.0%  L0:44.2% L1:52.6% BI: 3.2%
    [libx264 @ 000000000049cf60] 8x8 transform intra:45.7% inter:56.0%
    [libx264 @ 000000000049cf60] coded y,uvDC,uvAC intra: 45.5% 44.9% 11.1% inter: 5.9% 6.3% 0.4%
    [libx264 @ 000000000049cf60] i16 v,h,dc,p: 24% 39% 14% 23%
    [libx264 @ 000000000049cf60] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 28% 24% 24%  3%  4%  4%  5%  3%  4%
    [libx264 @ 000000000049cf60] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 26% 14%  5%  7%  7%  7%  5%  6%
    [libx264 @ 000000000049cf60] i8c dc,h,v,p: 57% 22% 17%  4%
    [libx264 @ 000000000049cf60] Weighted P-Frames: Y:6.6% UV:4.4%
    [libx264 @ 000000000049cf60] ref P L0: 79.1% 10.7%  8.3%  1.9%  0.1%
    [libx264 @ 000000000049cf60] ref B L0: 92.1%  7.3%  0.7%
    [libx264 @ 000000000049cf60] ref B L1: 94.8%  5.2%
    [libx264 @ 000000000049cf60] kb/s:415.11
  • Forcing ffmpeg to capture unreliable ALSA audio stream

    6 février 2015, par Peter Becich

    I am attempting to transfer some old Video 8 tapes to my computer, though an EasyCap USB stick and the motherboard’s sound line-in, on Ubuntu. I believe the arguments are correctly laid out below to capture from two independent streams, and encode them both into the output MP4 file.

    ffmpeg’s detection of the ALSA stream is seemingly goofed up by the inconsistencies of the tape. In the failure case, only short blips of the tapes audio exist in the output MP4. The audio bitrate of the output file is less than 10 kbps, averaged out across the whole file. The output video seems to be fine, even though the low frames-per-second in the failure case log below.

    The audio and video streams can be captured fine for short amounts of time before a source error occurs ; this provides the success case log. The failure case log was created by intentionally making an error in the source streams — turning on the camera makes a brief noisy signal.

    Is there a setting that needs to be forced to keep ffmpeg recording the audio stream, even when the tape is blank or noisy ?

    Could it be that the libfdk_aac audio encoder is tripped up by the low quality source ?

    The relevant line ; rawvideo stream is piped to this in script at bottom :

    ffmpeg -pixel_format uyvy422 -s:v 720x480 -framerate 29.97 -f rawvideo \
    -i $PIPE  -f alsa -i hw:0,0 -vf scale=w=720:h=540 -vcodec libx264 \
    -preset ultrafast -shortest -c:a libfdk_aac -b:a 128k -af pan=1:c0=c0  \
    -ar 96000 $OUTFILE

    The ar argument was one attempt to force recording.

    ffmpeg log file for (short-lived) success ; high frames-per-second captured :

    ffmpeg version 2.5.3 Copyright (c) 2000-2015 the FFmpeg developers
     built on Jan 11 2015 17:53:45 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
     configuration: --extra-libs=-ldl --prefix=/opt/ffmpeg --enable-avresample --disable-debug --enable-nonfree --enable-gpl --enable-version3 --enable-libpulse --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-decoder=amrnb --disable-decoder=amrwb --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-libvorbis --enable-libmp3lame --enable-libopus --enable-libvpx --enable-libspeex --enable-libass --enable-avisynth --enable-libsoxr --enable-libxvid --enable-libvo-aacenc --enable-libvidstab
     libavutil      54. 15.100 / 54. 15.100
     libavcodec     56. 13.100 / 56. 13.100
     libavformat    56. 15.102 / 56. 15.102
     libavdevice    56.  3.100 / 56.  3.100
     libavfilter     5.  2.103 /  5.  2.103
     libavresample   2.  1.  0 /  2.  1.  0
     libswscale      3.  1.101 /  3.  1.101
     libswresample   1.  1.100 /  1.  1.100
     libpostproc    53.  3.100 / 53.  3.100
    Input #0, rawvideo, from '/tmp/somagic-pipe':
     Duration: N/A, start: 0.000000, bitrate: 165722 kb/s
       Stream #0:0: Video: rawvideo (UYVY / 0x59565955), uyvy422, 720x480, 165722 kb/s, 29.97 tbr, 29.97 tbn, 29.97 tbc
    Home directory not accessible: Permission denied
    Guessed Channel Layout for  Input Stream #1.0 : stereo
    Input #1, alsa, from 'hw:0,0':
     Duration: N/A, start: 1423202268.577088, bitrate: 1536 kb/s
       Stream #1:0: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
    No pixel format specified, yuv422p for H.264 encoding chosen.
    Use -pix_fmt yuv420p for compatibility with outdated media players.
    [Parsed_pan_0 @ 0x3335d60] This syntax is deprecated. Use '|' to separate the list items.
    Single channel layout '1' is interpreted as a number of channels, switch to the syntax '1c' otherwise it will be interpreted as a channel layout number in a later version
    [Parsed_pan_0 @ 0x3335d60] Pure channel mapping detected: 0
    [libx264 @ 0x3364bc0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.1 Cache64
    [libx264 @ 0x3364bc0] profile High 4:2:2, level 3.1, 4:2:2 8-bit
    [libx264 @ 0x3364bc0] 264 - core 142 r2389 956c8d8 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
    Output #0, mp4, to '/home/peterbecich/easycap/Videos/fpv_video_02_05_2015_21_57_48.mp4':
     Metadata:
       encoder         : Lavf56.15.102
       Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv422p, 720x540, q=-1--1, 29.97 fps, 11988 tbn, 29.97 tbc
       Metadata:
         encoder         : Lavc56.13.100 libx264
       Stream #0:1: Audio: aac (libfdk_aac) ([64][0][0][0] / 0x0040), 96000 Hz, mono, s16, 128 kb/s
       Metadata:
         encoder         : Lavc56.13.100 libfdk_aac
    Stream mapping:
     Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
     Stream #1:0 -> #0:1 (pcm_s16le (native) -> aac (libfdk_aac))
    Press [q] to stop, [?] for help
    frame=   13 fps=0.0 q=26.0 size=     187kB time=00:00:00.30 bitrate=5102.7kbits/s    
    frame=   29 fps= 29 q=26.0 size=     469kB time=00:00:00.83 bitrate=4607.6kbits/s    
    frame=   44 fps= 29 q=26.0 size=     755kB time=00:00:01.33 bitrate=4635.2kbits/s    
    frame=   59 fps= 29 q=26.0 size=    1024kB time=00:00:01.83 bitrate=4572.1kbits/s    
    frame=   74 fps= 29 q=26.0 size=    1279kB time=00:00:02.33 bitrate=4486.5kbits/s    
    frame=   89 fps= 29 q=26.0 size=    1516kB time=00:00:02.83 bitrate=4378.0kbits/s    
    frame=  104 fps= 29 q=26.0 size=    1752kB time=00:00:03.33 bitrate=4301.0kbits/s    
    frame=  119 fps= 29 q=26.0 size=    1991kB time=00:00:03.83 bitrate=4251.1kbits/s    
    frame=  135 fps= 30 q=26.0 size=    2245kB time=00:00:04.37 bitrate=4207.5kbits/s    
    frame=  150 fps= 30 q=26.0 size=    2524kB time=00:00:04.87 bitrate=4245.0kbits/s    
    frame=  165 fps= 30 q=26.0 size=    2808kB time=00:00:05.37 bitrate=4282.0kbits/s    
    frame=  180 fps= 30 q=26.0 size=    3091kB time=00:00:05.87 bitrate=4311.5kbits/s    
    [rawvideo @ 0x3350640] Invalid buffer size, packet size 65536 < expected frame_size 691200
    Error while decoding stream #0:0: Invalid argument
    frame=  183 fps= 29 q=-1.0 Lsize=    3247kB time=00:00:06.11 bitrate=4351.5kbits/s    
    video:3142kB audio:96kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.254788%
    [libx264 @ 0x3364bc0] frame I:1     Avg QP:20.00  size:  2289
    [libx264 @ 0x3364bc0] frame P:182   Avg QP:25.99  size: 17664
    [libx264 @ 0x3364bc0] mb I  I16..4: 100.0%  0.0%  0.0%
    [libx264 @ 0x3364bc0] mb P  I16..4: 78.5%  0.0%  0.0%  P16..4: 20.2%  0.0%  0.0%  0.0%  0.0%    skip: 1.4%
    [libx264 @ 0x3364bc0] coded y,uvDC,uvAC intra: 84.1% 71.5% 18.9% inter: 51.9% 63.5% 0.4%
    [libx264 @ 0x3364bc0] i16 v,h,dc,p: 15%  8% 69%  8%
    [libx264 @ 0x3364bc0] i8c dc,h,v,p: 50% 19% 24%  7%
    [libx264 @ 0x3364bc0] kb/s:4215.02

    ffmpeg log for failure ; low FPS captured :

    ffmpeg version 2.5.3 Copyright (c) 2000-2015 the FFmpeg developers
     built on Jan 11 2015 17:53:45 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
     configuration: --extra-libs=-ldl --prefix=/opt/ffmpeg --enable-avresample --disable-debug --enable-nonfree --enable-gpl --enable-version3 --enable-libpulse --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-decoder=amrnb --disable-decoder=amrwb --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-libvorbis --enable-libmp3lame --enable-libopus --enable-libvpx --enable-libspeex --enable-libass --enable-avisynth --enable-libsoxr --enable-libxvid --enable-libvo-aacenc --enable-libvidstab
     libavutil      54. 15.100 / 54. 15.100
     libavcodec     56. 13.100 / 56. 13.100
     libavformat    56. 15.102 / 56. 15.102
     libavdevice    56.  3.100 / 56.  3.100
     libavfilter     5.  2.103 /  5.  2.103
     libavresample   2.  1.  0 /  2.  1.  0
     libswscale      3.  1.101 /  3.  1.101
     libswresample   1.  1.100 /  1.  1.100
     libpostproc    53.  3.100 / 53.  3.100
    Input #0, rawvideo, from '/tmp/somagic-pipe':
     Duration: N/A, start: 0.000000, bitrate: 165722 kb/s
       Stream #0:0: Video: rawvideo (UYVY / 0x59565955), uyvy422, 720x480, 165722 kb/s, 29.97 tbr, 29.97 tbn, 29.97 tbc
    Home directory not accessible: Permission denied
    Guessed Channel Layout for  Input Stream #1.0 : stereo
    Input #1, alsa, from 'hw:0,0':
     Duration: N/A, start: 1423201999.226455, bitrate: 1536 kb/s
       Stream #1:0: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
    No pixel format specified, yuv422p for H.264 encoding chosen.
    Use -pix_fmt yuv420p for compatibility with outdated media players.
    [Parsed_pan_0 @ 0x21cad60] This syntax is deprecated. Use '|' to separate the list items.
    Single channel layout '1' is interpreted as a number of channels, switch to the syntax '1c' otherwise it will be interpreted as a channel layout number in a later version
    [Parsed_pan_0 @ 0x21cad60] Pure channel mapping detected: 0
    [libx264 @ 0x21f9bc0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.1 Cache64
    [libx264 @ 0x21f9bc0] profile High 4:2:2, level 3.1, 4:2:2 8-bit
    [libx264 @ 0x21f9bc0] 264 - core 142 r2389 956c8d8 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
    Output #0, mp4, to '/home/peterbecich/easycap/Videos/fpv_video_02_05_2015_21_53_18.mp4':
     Metadata:
       encoder         : Lavf56.15.102
       Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv422p, 720x540, q=-1--1, 29.97 fps, 11988 tbn, 29.97 tbc
       Metadata:
         encoder         : Lavc56.13.100 libx264
       Stream #0:1: Audio: aac (libfdk_aac) ([64][0][0][0] / 0x0040), 96000 Hz, mono, s16, 128 kb/s
       Metadata:
         encoder         : Lavc56.13.100 libfdk_aac
    Stream mapping:
     Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
     Stream #1:0 -> #0:1 (pcm_s16le (native) -> aac (libfdk_aac))
    Press [q] to stop, [?] for help
    frame=    1 fps=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A    
    frame=    1 fps=1.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A    
    frame=    1 fps=0.7 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A    
    frame=    1 fps=0.5 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A    
    frame=    1 fps=0.4 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A    
    frame=    1 fps=0.3 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A    
    frame=    1 fps=0.3 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A    
    frame=    1 fps=0.2 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A    
    frame=    1 fps=0.2 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A    
    frame=    1 fps=0.2 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A    
    frame=    1 fps=0.2 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A    
    [alsa @ 0x21e5ac0] ALSA buffer xrun.
    frame=    8 fps=1.3 q=19.0 size=      12kB time=00:00:06.03 bitrate=  15.9kbits/s    
    frame=   23 fps=3.5 q=18.0 size=      12kB time=00:00:06.03 bitrate=  16.4kbits/s    
    frame=   38 fps=5.4 q=18.0 size=      12kB time=00:00:06.03 bitrate=  16.7kbits/s    
    frame=   53 fps=7.0 q=18.0 size=      12kB time=00:00:06.03 bitrate=  16.9kbits/s    
    frame=   68 fps=8.4 q=26.0 size=     146kB time=00:00:06.03 bitrate= 198.8kbits/s    
    frame=   83 fps=9.7 q=26.0 size=     375kB time=00:00:06.03 bitrate= 510.0kbits/s    
    frame=   98 fps= 11 q=26.0 size=     608kB time=00:00:06.03 bitrate= 826.5kbits/s    
    frame=  114 fps= 12 q=26.0 size=     875kB time=00:00:06.03 bitrate=1189.1kbits/s    
    frame=  128 fps= 13 q=26.0 size=    1091kB time=00:00:06.03 bitrate=1481.6kbits/s    
    frame=  144 fps= 14 q=26.0 size=    1339kB time=00:00:06.03 bitrate=1819.2kbits/s    
    frame=  159 fps= 14 q=26.0 size=    1571kB time=00:00:06.03 bitrate=2134.6kbits/s    
    frame=  174 fps= 15 q=26.0 size=    1796kB time=00:00:06.03 bitrate=2440.1kbits/s    
    [alsa @ 0x21e5ac0] ALSA buffer xrun.
    frame=  189 fps= 16 q=26.0 size=    2015kB time=00:00:12.04 bitrate=1370.4kbits/s    
    frame=  204 fps= 16 q=26.0 size=    2238kB time=00:00:12.04 bitrate=1522.3kbits/s    
    frame=  219 fps= 17 q=26.0 size=    2490kB time=00:00:12.04 bitrate=1694.2kbits/s    
    frame=  235 fps= 17 q=26.0 size=    2728kB time=00:00:12.04 bitrate=1855.8kbits/s    
    frame=  250 fps= 18 q=26.0 size=    2973kB time=00:00:12.04 bitrate=2022.4kbits/s    
    [rawvideo @ 0x21e5640] Invalid buffer size, packet size 65536 < expected frame_size 691200
    Error while decoding stream #0:0: Invalid argument
    frame=  261 fps= 18 q=-1.0 Lsize=    3269kB time=00:00:12.06 bitrate=2220.1kbits/s    
    video:3263kB audio:4kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.081101%
    [libx264 @ 0x21f9bc0] frame I:2     Avg QP:21.50  size: 21342
    [libx264 @ 0x21f9bc0] frame P:259   Avg QP:24.22  size: 12734
    [libx264 @ 0x21f9bc0] mb I  I16..4: 100.0%  0.0%  0.0%
    [libx264 @ 0x21f9bc0] mb P  I16..4: 62.8%  0.0%  0.0%  P16..4: 14.2%  0.0%  0.0%  0.0%  0.0%    skip:22.9%
    [libx264 @ 0x21f9bc0] coded y,uvDC,uvAC intra: 77.7% 61.2% 14.1% inter: 19.7% 24.8% 1.6%
    [libx264 @ 0x21f9bc0] i16 v,h,dc,p: 17% 10% 65%  8%
    [libx264 @ 0x21f9bc0] i8c dc,h,v,p: 52% 18% 24%  6%
    [libx264 @ 0x21f9bc0] kb/s:3068.90

    The whole script :

    #!/bin/sh

    PIPE=/tmp/somagic-pipe
    OUTFILEDIR=~/easycap/Videos/
    LOGDIR=~/.somagic-log/
    NOW=`date +"%m_%d_%Y_%H_%M_%S"`

    OUTFILE=${OUTFILEDIR}fpv_video_${NOW}.mp4

    mkdir $LOGDIR

    FFMPEG_LOG=${LOGDIR}ffmpeg.log
    SOMAGIC_LOG=${LOGDIR}somagic.log
    MPLAYER_LOG=${LOGDIR}mplayer.log

    rm $PIPE >/dev/null 2>&1
    rm $OUTFILE >/dev/null 2>&1

    rm $FFMPEG_LOG
    rm $SOMAGIC_LOG
    rm $MPLAYER_LOG

    mkfifo $PIPE >/dev/null 2>&1

    ffmpeg -pixel_format uyvy422 -s:v 720x480 -framerate 29.97 -f rawvideo \
    -i $PIPE  -f alsa -i hw:0,0 -vf scale=w=720:h=540 -vcodec libx264 \
    -preset ultrafast -shortest -c:a libfdk_aac -b:a 128k -af pan=1:c0=c0  \
    -ar 96000 $OUTFILE > $FFMPEG_LOG 2>&1 &

    somagic-capture --ntsc -c --luminance=2 --lum-aperture=3 2> $SOMAGIC_LOG \
    | tee $PIPE | \
    mplayer -vf yadif,screenshot -demuxer rawvideo -rawvideo \
    "ntsc:format=uyvy:fps=30000/1001" -aspect 4:3 - 2> $MPLAYER_LOG


    rm $PIPE >/dev/null 2>&1

    Modified from here : https://gist.github.com/Brick85/0b327ac2d3d45e23ed33