Recherche avancée

Médias (2)

Mot : - Tags -/media

Autres articles (21)

  • Librairies et binaires spécifiques au traitement vidéo et sonore

    31 janvier 2010, par

    Les logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
    Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
    Binaires complémentaires et facultatifs flvtool2 : (...)

  • Les statuts des instances de mutualisation

    13 mars 2010, par

    Pour des raisons de compatibilité générale du plugin de gestion de mutualisations avec les fonctions originales de SPIP, les statuts des instances sont les mêmes que pour tout autre objets (articles...), seuls leurs noms dans l’interface change quelque peu.
    Les différents statuts possibles sont : prepa (demandé) qui correspond à une instance demandée par un utilisateur. Si le site a déjà été créé par le passé, il est passé en mode désactivé. publie (validé) qui correspond à une instance validée par un (...)

  • Problèmes fréquents

    10 mars 2010, par

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

Sur d’autres sites (4032)

  • Resize the video

    8 juin 2016, par Android dev

    I have a requirement for video size before upload on the server and would like to resize the video to make sure it will not go the threshold.

    So far I ended up with this command :

    ffmpeg -y -i E:\test3.mp4 -s 640*480 -r 15 -aspect 3:4 -ab 12288 -vcodec mpeg4 -b 2097152 E:\debug_video.mp4

    The issues with this command :
    - is it changes aspect ratio of the video
    - it works too slow (30 seconds for 12 seconds 24mb video on Nexus 5)

    The best solution so far for the first issue is to check the video resolution first and only than run the ffmpeg.

    Do you know how to do that with help of ffmpeg as two separate commands or as a single one ? Do you know how to make it faster ? Thank you in advance

    UPDATE
    The console output is below. Please let me know if you would like to get console output for onProgress callback

    adb -s 07f0f4ac01897da5 logcat "ffmpeg:*" "*:S"
    06-08 17:43:29.589 20835 20835 D ffmpeg  : FFmpeg:onProgress: ffmpeg version n3.
    0.1 Copyright (c) 2000-2016 the FFmpeg developers
    06-08 17:43:29.589 20835 20835 D ffmpeg  : FFmpeg:onProgress:   built with gcc 4
    .8 (GCC)
    06-08 17:43:29.592 20835 20835 D ffmpeg  : FFmpeg:onProgress:   configuration: -
    -target-os=linux --cross-prefix=/home/vagrant/SourceCode/ffmpeg-android/toolchai
    n-android/bin/arm-linux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime
    -cpudetect --sysroot=/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/s
    ysroot --enable-pic --enable-libx264 --enable-libass --enable-libfreetype --enab
    le-libfribidi --enable-libmp3lame --enable-fontconfig --enable-pthreads --disabl
    e-debug --disable-ffserver --enable-version3 --enable-hardcoded-tables --disable
    -ffplay --disable-ffprobe --enable-gpl --enable-yasm --disable-doc --disable-sha
    red --enable-static --pkg-config=/home/vagrant/SourceCode/ffmpeg-android/ffmpeg-
    pkg-config --prefix=/home/vagrant/SourceCode/ffmpeg-android/build/armeabi-v7a --
    extra-cflags='-I/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/includ
    e -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-a
    ll' --extra-ldflags='-L/home/vagrant/SourceCode/ffmpeg-android/toolchain-android
    /lib -Wl,-z,relro -Wl,-z,now -pie' --extra-libs='-lpng -lexpat -lm' --extra-cxxf
    lags=
    06-08 17:43:29.600 20835 20835 D ffmpeg  : FFmpeg:onProgress:   libavutil      5
    5. 17.103 / 55. 17.103
    06-08 17:43:29.600 20835 20835 D ffmpeg  : FFmpeg:onProgress:   libavcodec     5
    7. 24.102 / 57. 24.102
    06-08 17:43:29.600 20835 20835 D ffmpeg  : FFmpeg:onProgress:   libavformat    5
    7. 25.100 / 57. 25.100
    06-08 17:43:29.600 20835 20835 D ffmpeg  : FFmpeg:onProgress:   libavdevice    5
    7.  0.101 / 57.  0.101
    06-08 17:43:29.600 20835 20835 D ffmpeg  : FFmpeg:onProgress:   libavfilter
    6. 31.100 /  6. 31.100
    06-08 17:43:29.600 20835 20835 D ffmpeg  : FFmpeg:onProgress:   libswscale
    4.  0.100 /  4.  0.100
    06-08 17:43:29.600 20835 20835 D ffmpeg  : FFmpeg:onProgress:   libswresample
    2.  0.101 /  2.  0.101
    06-08 17:43:29.600 20835 20835 D ffmpeg  : FFmpeg:onProgress:   libpostproc    5
    4.  0.100 / 54.  0.100
    06-08 17:43:29.885 20835 20835 D ffmpeg  : FFmpeg:onProgress: Input #0, mov,mp4,
    m4a,3gp,3g2,mj2, from '/storage/emulated/0/Pictures/test2.mp4':
    06-08 17:43:29.885 20835 20835 D ffmpeg  : FFmpeg:onProgress:   Metadata:
    06-08 17:43:29.885 20835 20835 D ffmpeg  : FFmpeg:onProgress:     major_brand
     : mp42
    06-08 17:43:29.885 20835 20835 D ffmpeg  : FFmpeg:onProgress:     minor_version
     : 0
    06-08 17:43:29.885 20835 20835 D ffmpeg  : FFmpeg:onProgress:     compatible_bra
    nds: isommp42
    06-08 17:43:29.886 20835 20835 D ffmpeg  : FFmpeg:onProgress:     creation_time
     : 2016-06-02 09:20:58
    06-08 17:43:29.886 20835 20835 D ffmpeg  : FFmpeg:onProgress:     com.android.ve
    rsion: 6.0.1
    06-08 17:43:29.886 20835 20835 D ffmpeg  : FFmpeg:onProgress:   Duration: 00:00:
    12.03, start: 0.000000, bitrate: 17234 kb/s
    06-08 17:43:29.886 20835 20835 D ffmpeg  : FFmpeg:onProgress:     Stream #0:0(en
    g): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p, 1920x1080, 16902 kb/s,
    SAR 1:1 DAR 16:9, 29.81 fps, 29.85 tbr, 90k tbn, 180k tbc (default)
    06-08 17:43:29.886 20835 20835 D ffmpeg  : FFmpeg:onProgress:     Metadata:
    06-08 17:43:29.890 20835 20835 D ffmpeg  : FFmpeg:onProgress:       rotate
       : 90
    06-08 17:43:29.890 20835 20835 D ffmpeg  : FFmpeg:onProgress:       creation_tim
    e   : 2016-06-02 09:20:58
    06-08 17:43:29.891 20835 20835 D ffmpeg  : FFmpeg:onProgress:       handler_name
       : VideoHandle
    06-08 17:43:29.891 20835 20835 D ffmpeg  : FFmpeg:onProgress:     Side data:
    06-08 17:43:29.891 20835 20835 D ffmpeg  : FFmpeg:onProgress:       displaymatri
    x: rotation of -90.00 degrees
    06-08 17:43:29.892 20835 20835 D ffmpeg  : FFmpeg:onProgress:     Stream #0:1(en
    g): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 96 kb/s (default)

    06-08 17:43:29.892 20835 20835 D ffmpeg  : FFmpeg:onProgress:     Metadata:
    06-08 17:43:29.893 20835 20835 D ffmpeg  : FFmpeg:onProgress:       creation_tim
    e   : 2016-06-02 09:20:58
    06-08 17:43:29.893 20835 20835 D ffmpeg  : FFmpeg:onProgress:       handler_name
       : SoundHandle
    06-08 17:43:29.893 20835 20835 D ffmpeg  : FFmpeg:onProgress: Please use -b:a or
    -b:v, -b is ambiguous
    06-08 17:43:29.894 20835 20835 D ffmpeg  : FFmpeg:onProgress: Codec AVOption pre
    set (Set the encoding preset (cf. x264 --fullhelp)) specified for output file #0
    (/storage/emulated/0/Pictures/scaled_video.mp4) has not been used for any strea
    m. The most likely reason is either wrong type (e.g. a video option with no vide
    o streams) or that it is a private option of some encoder which was not actually
    used for any stream.
    06-08 17:43:29.939 20835 20835 D ffmpeg  : FFmpeg:onProgress: [mpeg4 @ 0xb5c4440
    0] Invalid pixel aspect ratio 5121/5120, limit is 255/255 reducing
    06-08 17:43:29.996 20835 20835 D ffmpeg  : FFmpeg:onProgress: Output #0, mp4, to
    '/storage/emulated/0/Pictures/scaled_video.mp4':
    06-08 17:43:29.998 20835 20835 D ffmpeg  : FFmpeg:onProgress:   Metadata:
    06-08 17:43:29.999 20835 20835 D ffmpeg  : FFmpeg:onProgress:     major_brand
     : mp42
    06-08 17:43:30.000 20835 20835 D ffmpeg  : FFmpeg:onProgress:     minor_version
     : 0
    06-08 17:43:30.000 20835 20835 D ffmpeg  : FFmpeg:onProgress:     compatible_bra
    nds: isommp42
    06-08 17:43:30.001 20835 20835 D ffmpeg  : FFmpeg:onProgress:     com.android.ve
    rsion: 6.0.1
    06-08 17:43:30.002 20835 20835 D ffmpeg  : FFmpeg:onProgress:     encoder
     : Lavf57.25.100
    06-08 17:43:30.003 20835 20835 D ffmpeg  : FFmpeg:onProgress:     Stream #0:0(en
    g): Video: mpeg4 ( [0][0][0] / 0x0020), yuv420p, 640x1138 [SAR 1:1 DAR 320:569],
    q=2-31, 2097 kb/s, SAR 5121:5120 DAR 9:16, 15 fps, 15360 tbn, 15 tbc (default)
    06-08 17:43:30.004 20835 20835 D ffmpeg  : FFmpeg:onProgress:     Metadata:
    06-08 17:43:30.005 20835 20835 D ffmpeg  : FFmpeg:onProgress:       handler_name
       : VideoHandle
    06-08 17:43:30.006 20835 20835 D ffmpeg  : FFmpeg:onProgress:       creation_tim
    e   : 2016-06-02 09:20:58
    06-08 17:43:30.007 20835 20835 D ffmpeg  : FFmpeg:onProgress:       encoder
       : Lavc57.24.102 mpeg4
    06-08 17:43:30.008 20835 20835 D ffmpeg  : FFmpeg:onProgress:     Side data:
    06-08 17:43:30.008 20835 20835 D ffmpeg  : FFmpeg:onProgress:       unknown side
    data type 10 (24 bytes)
    06-08 17:43:30.008 20835 20835 D ffmpeg  : FFmpeg:onProgress:     Stream #0:1(en
    g): Audio: aac (LC) ([64][0][0][0] / 0x0040), 48000 Hz, mono, fltp, 12 kb/s (def
    ault)
    06-08 17:43:30.008 20835 20835 D ffmpeg  : FFmpeg:onProgress:     Metadata:
    06-08 17:43:30.008 20835 20835 D ffmpeg  : FFmpeg:onProgress:       creation_tim
    e   : 2016-06-02 09:20:58
    06-08 17:43:30.008 20835 20835 D ffmpeg  : FFmpeg:onProgress:       handler_name
       : SoundHandle
    06-08 17:43:30.009 20835 20835 D ffmpeg  : FFmpeg:onProgress:       encoder
       : Lavc57.24.102 aac
    06-08 17:43:30.009 20835 20835 D ffmpeg  : FFmpeg:onProgress: Stream mapping:
    06-08 17:43:30.009 20835 20835 D ffmpeg  : FFmpeg:onProgress:   Stream #0:0 -> #
    0:0 (h264 (native) -> mpeg4 (native))
    06-08 17:43:30.009 20835 20835 D ffmpeg  : FFmpeg:onProgress:   Stream #0:1 -> #
    0:1 (aac (native) -> aac (native))
    06-08 17:43:30.010 20835 20835 D ffmpeg  : FFmpeg:onProgress: Press [q] to stop,
    [?] for help
    06-08 17:43:30.730 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=    2 fps=0.
    0 q=2.0 size=     129kB time=00:00:01.00 bitrate=1056.4kbits/s speed=1.66x
    06-08 17:43:31.350 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=    5 fps=4.
    0 q=2.0 size=     314kB time=00:00:01.00 bitrate=2566.0kbits/s dup=0 drop=1 spee
    d=0.809x
    06-08 17:43:31.842 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=    8 fps=4.
    6 q=7.5 size=     404kB time=00:00:01.00 bitrate=3302.5kbits/s dup=0 drop=4 spee
    d=0.573x
    06-08 17:43:32.367 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   10 fps=4.
    4 q=8.7 size=     431kB time=00:00:01.00 bitrate=3523.1kbits/s dup=0 drop=6 spee
    d=0.441x
    06-08 17:43:32.873 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   13 fps=4.
    7 q=9.0 size=     518kB time=00:00:01.00 bitrate=4230.9kbits/s dup=0 drop=9 spee
    d=0.361x
    06-08 17:43:33.392 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   15 fps=4.
    5 q=11.6 size=     536kB time=00:00:01.00 bitrate=4381.7kbits/s dup=0 drop=11 sp
    eed=0.303x
    06-08 17:43:34.011 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   17 fps=4.
    3 q=11.7 size=     558kB time=00:00:02.00 bitrate=2279.7kbits/s dup=0 drop=13 sp
    eed=0.512x
    06-08 17:43:34.621 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   20 fps=4.
    4 q=12.5 size=     598kB time=00:00:02.00 bitrate=2444.5kbits/s dup=0 drop=16 sp
    eed=0.443x
    06-08 17:43:35.207 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   23 fps=4.
    5 q=11.3 size=     630kB time=00:00:02.00 bitrate=2574.3kbits/s dup=0 drop=19 sp
    eed=0.394x
    06-08 17:43:35.726 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   26 fps=4.
    6 q=10.1 size=     689kB time=00:00:02.00 bitrate=2815.3kbits/s dup=0 drop=22 sp
    eed=0.357x
    06-08 17:43:36.252 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   28 fps=4.
    6 q=9.6 size=     707kB time=00:00:02.00 bitrate=2888.7kbits/s dup=0 drop=24 spe
    ed=0.327x
    06-08 17:43:36.749 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   31 fps=4.
    7 q=9.5 size=     726kB time=00:00:02.06 bitrate=2879.6kbits/s dup=0 drop=27 spe
    ed=0.311x
    06-08 17:43:37.341 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   33 fps=4.
    6 q=9.3 size=     767kB time=00:00:03.00 bitrate=2089.4kbits/s dup=0 drop=29 spe
    ed=0.417x
    06-08 17:43:37.872 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   35 fps=4.
    5 q=9.4 size=     791kB time=00:00:03.00 bitrate=2154.3kbits/s dup=0 drop=31 spe
    ed=0.386x
    06-08 17:43:38.447 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   38 fps=4.
    6 q=9.2 size=     854kB time=00:00:03.00 bitrate=2324.7kbits/s dup=0 drop=34 spe
    ed=0.361x
    06-08 17:43:39.005 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   41 fps=4.
    6 q=8.2 size=     883kB time=00:00:03.00 bitrate=2404.7kbits/s dup=0 drop=36 spe
    ed=0.338x
    06-08 17:43:39.507 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   43 fps=4.
    6 q=9.0 size=     918kB time=00:00:03.00 bitrate=2499.3kbits/s dup=0 drop=38 spe
    ed=0.32x
    06-08 17:43:40.065 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   46 fps=4.
    6 q=9.6 size=     948kB time=00:00:03.06 bitrate=2531.5kbits/s dup=0 drop=41 spe
    ed=0.307x
    06-08 17:43:40.602 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   48 fps=4.
    6 q=9.3 size=     990kB time=00:00:04.01 bitrate=2021.2kbits/s dup=0 drop=43 spe
    ed=0.381x
    06-08 17:43:41.189 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   51 fps=4.
    6 q=7.3 size=    1025kB time=00:00:04.01 bitrate=2094.5kbits/s dup=0 drop=46 spe
    ed=0.361x
    06-08 17:43:41.744 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   54 fps=4.
    6 q=6.9 size=    1064kB time=00:00:04.01 bitrate=2173.0kbits/s dup=0 drop=49 spe
    ed=0.345x
    06-08 17:43:42.288 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   56 fps=4.
    6 q=6.1 size=    1082kB time=00:00:04.01 bitrate=2209.5kbits/s dup=0 drop=51 spe
    ed=0.329x
    06-08 17:43:42.872 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   59 fps=4.
    6 q=4.5 size=    1107kB time=00:00:04.01 bitrate=2260.3kbits/s dup=0 drop=54 spe
    ed=0.314x
    06-08 17:43:43.292 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   61 fps=4.
    6 q=3.2 size=    1152kB time=00:00:04.26 bitrate=2212.2kbits/s dup=0 drop=56 spe
    ed=0.321x
    06-08 17:43:43.986 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   64 fps=4.
    6 q=3.9 size=    1178kB time=00:00:05.01 bitrate=1924.7kbits/s dup=0 drop=59 spe
    ed=0.361x
    06-08 17:43:44.518 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   66 fps=4.
    6 q=3.6 size=    1196kB time=00:00:05.01 bitrate=1953.9kbits/s dup=0 drop=61 spe
    ed=0.347x
    06-08 17:43:45.104 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   69 fps=4.
    6 q=3.4 size=    1232kB time=00:00:05.01 bitrate=2013.0kbits/s dup=0 drop=64 spe
    ed=0.334x
    06-08 17:43:45.687 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   72 fps=4.
    6 q=4.9 size=    1263kB time=00:00:05.01 bitrate=2063.4kbits/s dup=0 drop=67 spe
    ed=0.321x
    06-08 17:43:46.262 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   75 fps=4.
    6 q=3.5 size=    1307kB time=00:00:05.01 bitrate=2135.1kbits/s dup=0 drop=70 spe
    ed=0.31x
    06-08 17:43:46.840 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   77 fps=4.
    6 q=3.1 size=    1334kB time=00:00:06.01 bitrate=1816.5kbits/s dup=0 drop=72 spe
    ed=0.359x
    06-08 17:43:47.354 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   80 fps=4.
    6 q=3.5 size=    1380kB time=00:00:06.01 bitrate=1878.6kbits/s dup=0 drop=75 spe
    ed=0.349x
    06-08 17:43:47.826 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   82 fps=4.
    6 q=3.6 size=    1412kB time=00:00:06.01 bitrate=1923.2kbits/s dup=0 drop=77 spe
    ed=0.339x
    06-08 17:43:48.346 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   85 fps=4.
    7 q=3.5 size=    1476kB time=00:00:06.01 bitrate=2009.8kbits/s dup=0 drop=80 spe
    ed=0.33x
    06-08 17:43:48.911 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   88 fps=4.
    7 q=3.5 size=    1524kB time=00:00:06.01 bitrate=2074.7kbits/s dup=0 drop=83 spe
    ed=0.32x
    06-08 17:43:49.496 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   91 fps=4.
    7 q=3.8 size=    1556kB time=00:00:06.06 bitrate=2101.5kbits/s dup=0 drop=86 spe
    ed=0.313x
    06-08 17:43:50.100 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   93 fps=4.
    7 q=4.1 size=    1616kB time=00:00:07.01 bitrate=1886.0kbits/s dup=0 drop=88 spe
    ed=0.352x
    06-08 17:43:50.598 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   95 fps=4.
    6 q=4.3 size=    1652kB time=00:00:07.01 bitrate=1928.4kbits/s dup=0 drop=90 spe
    ed=0.342x
    06-08 17:43:51.182 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=   98 fps=4.
    7 q=4.7 size=    1728kB time=00:00:07.01 bitrate=2017.1kbits/s dup=0 drop=93 spe
    ed=0.333x
    06-08 17:43:51.693 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  100 fps=4.
    6 q=4.6 size=    1763kB time=00:00:07.01 bitrate=2057.5kbits/s dup=0 drop=95 spe
    ed=0.325x
    06-08 17:43:52.272 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  103 fps=4.
    6 q=4.6 size=    1812kB time=00:00:07.01 bitrate=2115.1kbits/s dup=0 drop=98 spe
    ed=0.317x
    06-08 17:43:52.839 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  106 fps=4.
    7 q=4.2 size=    1845kB time=00:00:07.06 bitrate=2138.7kbits/s dup=0 drop=101 sp
    eed=0.311x
    06-08 17:43:53.383 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  108 fps=4.
    6 q=4.1 size=    1886kB time=00:00:08.02 bitrate=1925.7kbits/s dup=0 drop=103 sp
    eed=0.344x
    06-08 17:43:53.966 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  111 fps=4.
    7 q=3.5 size=    1940kB time=00:00:08.02 bitrate=1981.0kbits/s dup=0 drop=106 sp
    eed=0.336x
    06-08 17:43:54.472 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  113 fps=4.
    6 q=3.1 size=    1968kB time=00:00:08.02 bitrate=2010.1kbits/s dup=0 drop=108 sp
    eed=0.329x
    06-08 17:43:55.129 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  116 fps=4.
    6 q=3.3 size=    2016kB time=00:00:08.02 bitrate=2058.5kbits/s dup=0 drop=111 sp
    eed=0.321x
    06-08 17:43:55.624 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  119 fps=4.
    7 q=3.2 size=    2052kB time=00:00:08.02 bitrate=2096.0kbits/s dup=0 drop=114 sp
    eed=0.314x
    06-08 17:43:56.082 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  121 fps=4.
    6 q=2.7 size=    2119kB time=00:00:08.06 bitrate=2152.0kbits/s dup=0 drop=116 sp
    eed=0.309x
    06-08 17:43:56.729 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  124 fps=4.
    7 q=4.0 size=    2172kB time=00:00:09.02 bitrate=1971.5kbits/s dup=0 drop=119 sp
    eed=0.339x
    06-08 17:43:57.292 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  127 fps=4.
    7 q=3.5 size=    2210kB time=00:00:09.02 bitrate=2006.0kbits/s dup=0 drop=122 sp
    eed=0.332x
    06-08 17:43:57.793 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  129 fps=4.
    7 q=3.3 size=    2234kB time=00:00:09.02 bitrate=2028.1kbits/s dup=0 drop=124 sp
    eed=0.326x
    06-08 17:43:58.431 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  132 fps=4.
    7 q=3.3 size=    2275kB time=00:00:09.02 bitrate=2065.6kbits/s dup=0 drop=127 sp
    eed=0.319x
    06-08 17:43:58.986 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  135 fps=4.
    7 q=3.4 size=    2344kB time=00:00:09.02 bitrate=2127.5kbits/s dup=0 drop=130 sp
    eed=0.313x
    06-08 17:43:59.374 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  136 fps=4.
    6 q=3.2 size=    2356kB time=00:00:09.10 bitrate=2119.0kbits/s dup=0 drop=131 sp
    eed=0.31x
    06-08 17:43:59.986 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  139 fps=4.
    6 q=2.9 size=    2392kB time=00:00:10.02 bitrate=1954.2kbits/s dup=0 drop=133 sp
    eed=0.335x
    06-08 17:44:00.582 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  142 fps=4.
    7 q=2.8 size=    2428kB time=00:00:10.02 bitrate=1983.5kbits/s dup=0 drop=136 sp
    eed=0.329x
    06-08 17:44:01.158 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  145 fps=4.
    7 q=3.0 size=    2516kB time=00:00:10.02 bitrate=2055.4kbits/s dup=0 drop=139 sp
    eed=0.323x
    06-08 17:44:01.691 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  148 fps=4.
    7 q=4.6 size=    2583kB time=00:00:10.02 bitrate=2110.7kbits/s dup=0 drop=142 sp
    eed=0.317x
    06-08 17:44:02.168 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  150 fps=4.
    7 q=4.8 size=    2626kB time=00:00:10.02 bitrate=2145.1kbits/s dup=0 drop=144 sp
    eed=0.312x
    06-08 17:44:02.587 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  152 fps=4.
    7 q=5.0 size=    2668kB time=00:00:10.32 bitrate=2117.0kbits/s dup=0 drop=146 sp
    eed=0.317x
    06-08 17:44:03.209 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  154 fps=4.
    6 q=5.0 size=    2709kB time=00:00:11.02 bitrate=2012.4kbits/s dup=0 drop=148 sp
    eed=0.333x
    06-08 17:44:03.815 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  157 fps=4.
    7 q=3.7 size=    2770kB time=00:00:11.02 bitrate=2057.2kbits/s dup=0 drop=151 sp
    eed=0.327x
    06-08 17:44:04.402 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  160 fps=4.
    7 q=3.3 size=    2800kB time=00:00:11.02 bitrate=2079.7kbits/s dup=0 drop=154 sp
    eed=0.321x
    06-08 17:44:04.965 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  163 fps=4.
    7 q=3.0 size=    2835kB time=00:00:11.02 bitrate=2105.7kbits/s dup=0 drop=157 sp
    eed=0.316x
    06-08 17:44:05.505 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  166 fps=4.
    7 q=3.1 size=    2880kB time=00:00:11.06 bitrate=2131.8kbits/s dup=0 drop=160 sp
    eed=0.313x
    06-08 17:44:06.094 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  169 fps=4.
    7 q=3.3 size=    2880kB time=00:00:11.26 bitrate=2093.9kbits/s dup=0 drop=163 sp
    eed=0.313x
    06-08 17:44:06.603 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  171 fps=4.
    7 q=3.8 size=    2880kB time=00:00:11.40 bitrate=2069.5kbits/s dup=0 drop=165 sp
    eed=0.312x
    06-08 17:44:07.192 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  174 fps=4.
    7 q=3.6 size=    2880kB time=00:00:11.60 bitrate=2033.8kbits/s dup=0 drop=168 sp
    eed=0.313x
    06-08 17:44:07.772 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  177 fps=4.
    7 q=3.3 size=    2880kB time=00:00:11.80 bitrate=1999.3kbits/s dup=0 drop=171 sp
    eed=0.313x
    06-08 17:44:08.287 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  180 fps=4.
    7 q=3.2 size=    2880kB time=00:00:12.00 bitrate=1966.0kbits/s dup=0 drop=174 sp
    eed=0.314x
    06-08 17:44:08.900 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  182 fps=4.
    7 q=3.5 size=    3118kB time=00:00:12.13 bitrate=2105.2kbits/s dup=0 drop=176 sp
    eed=0.313x
    06-08 17:44:08.915 20835 20835 D ffmpeg  : FFmpeg:onProgress: frame=  182 fps=4.
    7 q=3.5 Lsize=    3205kB time=00:00:12.13 bitrate=2163.7kbits/s dup=0 drop=176 s
    peed=0.312x
    06-08 17:44:08.915 20835 20835 D ffmpeg  : FFmpeg:onProgress: video:3177kB audio
    :21kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.19565
    3%
    06-08 17:44:08.946 20835 20835 D ffmpeg  : FFmpeg:onProgress: [aac @ 0xb5c44c00]
    Qavg: 137.182
    06-08 17:44:08.963 20835 20835 D ffmpeg  : FFmpeg:onSuccess: ffmpeg version n3.0
    .1 Copyright (c) 2000-2016 the FFmpeg developers
    06-08 17:44:08.963 20835 20835 D ffmpeg  :   built with gcc 4.8 (GCC)
    06-08 17:44:08.963 20835 20835 D ffmpeg  :   configuration: --target-os=linux --
    cross-prefix=/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/bin/arm-l
    inux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime-cpudetect --sysroo
    t=/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/sysroot --enable-pic
    --enable-libx264 --enable-libass --enable-libfreetype --enable-libfribidi --ena
    ble-libmp3lame --enable-fontconfig --enable-pthreads --disable-debug --disable-f
    fserver --enable-version3 --enable-hardcoded-tables --disable-ffplay --disable-f
    fprobe --enable-gpl --enable-yasm --disable-doc --disable-shared --enable-static
    --pkg-config=/home/vagrant/SourceCode/ffmpeg-android/ffmpeg-pkg-config --prefix
    =/home/vagrant/SourceCode/ffmpeg-android/build/armeabi-v7a --extra-cflags='-I/ho
    me/vagrant/SourceCode/ffmpeg-android/toolchain-android/include -U_FORTIFY_SOURCE
    -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all' --extra-ldflags
    ='-L/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/lib -Wl,-z,relro -
    Wl,-z,now -pie' --extra-libs='-lpng -lexpat -lm' --extra-cxxflags=
    06-08 17:44:08.963 20835 20835 D ffmpeg  :   libavutil      55. 17.103 / 55. 17.
    103
    06-08 17:44:08.963 20835 20835 D ffmpeg  :   libavcodec     57. 24.102 / 57. 24.
    102
    06-08 17:44:08.963 20835 20835 D ffmpeg  :   libavformat    57. 25.100 / 57. 25.
    100
    06-08 17:44:08.963 20835 20835 D ffmpeg  :   libavdevice    57.  0.101 / 57.  0.
    101
    06-08 17:44:08.963 20835 20835 D ffmpeg  :   libavfilter     6. 31.100 /  6. 31.
    100
    06-08 17:44:08.963 20835 20835 D ffmpeg  :   libswscale      4.  0.100 /  4.  0.
    100
    06-08 17:44:08.963 20835 20835 D ffmpeg  :   libswresample   2.  0.101 /  2.  0.
    101
    06-08 17:44:08.963 20835 20835 D ffmpeg  :   libpostproc    54.  0.100 / 54.  0.
    100
    06-08 17:44:08.963 20835 20835 D ffmpeg  : Input #0, mov,mp4,m4a,3gp,3g2,mj2, fr
    om '/storage/emulated/0/Pictures/test2.mp4':
    06-08 17:44:08.963 20835 20835 D ffmpeg  :   Metadata:
    06-08 17:44:08.963 20835 20835 D ffmpeg  :     major_brand     : mp42
    06-08 17:44:08.963 20835 20835 D ffmpeg  :     minor_version   : 0
    06-08 17:44:08.963 20835 20835 D ffmpeg  :     compatible_brands: isommp42
    06-08 17:44:08.963 20835 20835 D ffmpeg  :     creation_time   : 2016-06-02 09:2
    0:58
    06-08 17:44:08.963 20835 20835 D ffmpeg  :     com.android.version: 6.0.1
    06-08 17:44:08.963 20835 20835 D ffmpeg  :   Duration: 00:00:12.03, start: 0.000
    000, bitrate: 17234 kb/s
    06-08 17:44:08.963 20835 20835 D ffmpeg  :     Stream #0:0(eng): Video: h264 (Ba
    seline) (avc1 / 0x31637661), yuv420p, 1920x1080, 16902 kb/s, SAR 1:1 DAR 16:9, 2
    9.81 fps, 29.85 tbr, 90k tbn, 180k tbc (default)
    06-08 17:44:08.963 20835 20835 D ffmpeg  :     Metadata:
    06-08 17:44:08.963 20835 20835 D ffmpeg  :       rotate          : 90
    06-08 17:44:08.963 20835 20835 D ffmpeg  :       creation_time   : 2016-06-02 09
    :20:58
    06-08 17:44:08.963 20835 20835 D ffmpeg  :       handler_name    : VideoHandle
    06-08 17:44:08.963 20835 20835 D ffmpeg  :     Side data:
    06-08 17:44:08.963 20835 20835 D ffmpeg  :       displaymatrix: rotation of -90.
    00 degrees
    06-08 17:44:08.963 20835 20835 D ffmpeg  :     Stream #0:1(eng): Audio: aac (LC)
    (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 96 kb/s (default)
    06-08 17:44:08.963 20835 20835 D ffmpeg  :     Metadata:
    06-08 17:44:08.963 20835 20835 D ffmpeg  :       creation_time   : 2016-06-02 09
    :20:58
    06-08 17:44:08.963 20835 20835 D ffmpeg  :       handler_name    : SoundHandle
    06-08 17:44:08.963 20835 20835 D ffmpeg  : Please use -b:a or -b:v, -b is ambigu
    ous
    06-08 17:44:08.963 20835 20835 D ffmpeg  : Codec AVOption preset (Set the encodi
    ng preset (cf. x264 --fullhelp)) specified for output file #0 (/storage/emulated
    /0/Pictures/scaled_video.mp4) has not been used for any stream. The most likely
    reason is either wrong type (e.g. a video option with no video streams) or that
    it is a private option of some encoder which was not actually used for any strea
    m.
    06-08 17:44:08.963 20835 20835 D ffmpeg  : [mpeg4 @ 0xb5c44400] Invalid pixel as
    pect ratio 5121/5120, limit is 255/255 reducing
    06-08 17:44:08.963 20835 20835 D ffmpeg  : Output #0, mp4, to '/storage/emulated
    /0/Pictures/scaled_video.mp4':
    06-08 17:44:08.963 20835 20835 D ffmpeg  :   Metadata:
    06-08 17:44:08.963 20835 20835 D ffmpeg  :     major_brand     : mp42
    06-08 17:44:08.963 20835 20835 D ffmpeg  :     minor_version   : 0
    06-08 17:44:08.963 20835 20835 D ffmpeg  :     compatible_brands: isommp42
    06-08 17:44:08.963 20835 20835 D ffmpeg  :     com.android.version: 6.0.1
    06-08 17:44:08.963 20835 20835 D ffmpeg  :     encoder         : Lavf57.25.100
    06-08 17:44:08.963 20835 20835 D ffmpeg  :     Stream #0:0(eng): Video: mpeg4 (
    [0][0][0] / 0x0020), yuv420p, 640x1138 [SAR 1:1 DAR 320:569], q=2-31, 2097 kb/s,
    SAR 5121:5120 DAR 9:16, 15 fps, 15360 tbn, 15 tbc (default)
    06-08 17:44:08.963 20835 20835 D ffmpeg  :     Metadata:
    06-08 17:44:08.963 20835 20835 D ffmpeg  :       handler_name    : VideoHandle
    06-08 17:44:08.963 20835 20835 D ffmpeg  :       creation_time   : 2016-06-02 09
    :20:58
    06-08 17:44:08.963 20835 20835 D ffmpeg  :       encoder         : Lavc57.24.102
    mpeg4
    06-08 17:44:08.963 20835 20835 D ffmpeg  :     Side data:
    06-08 17:44:08.963 20835 20835 D ffmpeg  :       unknown side data type 10 (24 b
    ytes)
    06-08 17:44:08.963 20835 20835 D ffmpeg  :     Stream #0:1(eng): Audio: aac (LC)
    ([64][0][0][0] / 0x0040), 48000 Hz, mono, fltp, 12 kb/s (default)
    06-08 17:44:08.963 20835 20835 D ffmpeg  :     Metadata:
    06-08 17:44:08.963 20835 20835 D ffmpeg  :       creation_time   : 2016-06-02 09
    :20:58
    06-08 17:44:08.963 20835 20835 D ffmpeg  :       handler_name    : SoundHandle
    06-08 17:44:08.963 20835 20835 D ffmpeg  :       encoder         : Lavc57.24.102
    aac
    06-08 17:44:08.963 20835 20835 D ffmpeg  : Stream mapping:
    06-08 17:44:08.963 20835 20835 D ffmpeg  :   Stream #0:0 -> #0:0 (h264 (native)
    -> mpeg4 (native))
    06-08 17:44:08.963 20835 20835 D ffmpeg  :   Stream #0:1 -> #0:1 (aac (native) -
    > aac (native))
    06-08 17:44:08.963 20835 20835 D ffmpeg  : Press [q] to stop, [?] for help
    06-08 17:44:08.963 20835 20835 D ffmpeg  : frame=    2 fps=0.0 q=2.0 size=     1
    29kB time=00:00:01.00 bitrate=1056.4kbits/s speed=1.66x
    06-08 17:44:08.963 20835 20835 D ffmpeg  : frame=    5 fps=4.0 q=2.0 size=     3
    14kB time=00:00:01.00 bitrate=2566.0kbits/s dup=0 drop=1 speed=0.809x
    06-08 17:44:08.963 20835 20835 D ffmpeg  : frame=    8
    06-08 17:44:08.963 20835 20835 D ffmpeg  : FFmpeg:onFinish:
  • FFMPEG not enough data (x y), trying to decode anyway

    7 juin 2016, par Forest J. Handford

    I’m trying to make videos of Direct3D games using a C# app. For non-Direct3D games I stream images from Graphics.CopyFromScreen which works. When I copy the screen from Direct3D and stream it to FFMPEG I get :

    [bmp @ 00000276b0b9c280] not enough data (5070 < 129654), trying to
    decode anyway

    An MP4 file is created, but it is always 0 bytes.

    To get screenshots from Direct3D, I am using Justin Stenning’s Direct3DHook. This produces images MUCH bigger than when I get images from Graphics.CopyFromScreen (8 MB vs 136 KB). I’ve tried increasing the buffer (-bufsize) but the number on the left of the error is not impacted.

    I’ve tried resizing the image to 1/6th the original. That reduces the number on the right, but does not eliminate it. Even when the number on the right is close to what I have for Graphics.CopyFromScreen I get an error. Here is a sample of the current code :

    using System;
    using System.Diagnostics;
    using System.Threading;
    using System.Drawing;
    using Capture.Hook;
    using Capture.Interface;
    using Capture;
    using System.IO;

    namespace GameRecord
    {
       public class Video
       {
           private const int VID_FRAME_FPS = 8;
           private const int SIZE_MODIFIER = 6;
           private const double FRAMES_PER_MS = VID_FRAME_FPS * 0.001;
           private const int SLEEP_INTERVAL = 2;
           private const int CONSTANT_RATE_FACTOR = 18; // Lower crf = Higher Quality https://trac.ffmpeg.org/wiki/Encode/H.264
           private Image image;
           private Capture captureScreen;
           private int processId = 0;
           private Process process;
           private CaptureProcess captureProcess;
           private Process launchingFFMPEG;
           private string arg;
           private int frame = 0;
           private Size? resize = null;


           /// <summary>
           /// Generates the Videos by gathering frames and processing via FFMPEG.
           /// </summary>
           public void RecordScreenTillGameEnd(string exe, OutputDirectory outputDirectory, CustomMessageBox alertBox, Thread workerThread)
           {
               AttachProcess(exe);
               RequestD3DScreenShot();
               while (image == null) ;
               Logger.log.Info("Launching FFMPEG ....");
               resize = new Size(image.Width / SIZE_MODIFIER, image.Height / SIZE_MODIFIER);
               // H.264 can let us do 8 FPS in high res . . . but must be licensed for commercial use.
               arg = "-f image2pipe -framerate " + VID_FRAME_FPS + " -i pipe:.bmp -pix_fmt yuv420p -crf " +
                   CONSTANT_RATE_FACTOR + " -preset ultrafast -s " + resize.Value.Width + "x" +
                   resize.Value.Height + " -vcodec libx264 -bufsize 30000k -y \"" +
                   outputDirectory.pathToVideo + "\"";

               launchingFFMPEG = new Process
               {
                   StartInfo = new ProcessStartInfo
                   {
                       FileName = "ffmpeg",
                       Arguments = arg,
                       UseShellExecute = false,
                       CreateNoWindow = true,
                       RedirectStandardInput = true,
                       RedirectStandardError = true
                   }
               };
               launchingFFMPEG.Start();

               Stopwatch stopWatch = Stopwatch.StartNew(); //creates and start the instance of Stopwatch

               do
               {
                   Thread.Sleep(SLEEP_INTERVAL);
               } while (workerThread.IsAlive);

               Logger.log.Info("Total frames: " + frame + " Expected frames: " + (ExpectedFrames(stopWatch.ElapsedMilliseconds) - 1));

               launchingFFMPEG.StandardInput.Close();

    #if DEBUG
               string line;
               while ((line = launchingFFMPEG.StandardError.ReadLine()) != null)
               {
                   Logger.log.Debug(line);
               }
    #endif
               launchingFFMPEG.Close();
               alertBox.Show();
           }

           void RequestD3DScreenShot()
           {
               captureProcess.CaptureInterface.BeginGetScreenshot(new Rectangle(0, 0, 0, 0), new TimeSpan(0, 0, 2), Callback, resize, (ImageFormat)Enum.Parse(typeof(ImageFormat), "Bitmap"));
           }

           private void AttachProcess(string exe)
           {
               Thread.Sleep(300);
               Process[] processes = Process.GetProcessesByName(Path.GetFileNameWithoutExtension(exe));
               foreach (Process currProcess in processes)
               {
                   // Simply attach to the first one found.

                   // If the process doesn't have a mainwindowhandle yet, skip it (we need to be able to get the hwnd to set foreground etc)
                   if (currProcess.MainWindowHandle == IntPtr.Zero)
                   {
                       continue;
                   }

                   // Skip if the process is already hooked (and we want to hook multiple applications)
                   if (HookManager.IsHooked(currProcess.Id))
                   {
                       continue;
                   }

                   Direct3DVersion direct3DVersion = Direct3DVersion.AutoDetect;

                   CaptureConfig cc = new CaptureConfig()
                   {
                       Direct3DVersion = direct3DVersion,
                       ShowOverlay = false
                   };

                   processId = currProcess.Id;
                   process = currProcess;

                   var captureInterface = new CaptureInterface();
                   captureInterface.RemoteMessage += new MessageReceivedEvent(CaptureInterface_RemoteMessage);
                   captureProcess = new CaptureProcess(process, cc, captureInterface);

                   break;
               }
               Thread.Sleep(10);

               if (captureProcess == null)
               {
                   ShowUser.Exception("No executable found matching: '" + exe + "'");
               }
           }

           /// <summary>
           /// The callback for when the screenshot has been taken
           /// </summary>
           ///
           ///
           ///
           void Callback(IAsyncResult result)
           {
               using (Screenshot screenshot = captureProcess.CaptureInterface.EndGetScreenshot(result))
               if (screenshot != null &amp;&amp; screenshot.Data != null &amp;&amp; arg != null)
               {
                   if (image != null)
                   {
                       image.Dispose();
                   }

                   image = screenshot.ToBitmap();
                   // image.Save("D3DImageTest.bmp");
                   image.Save(launchingFFMPEG.StandardInput.BaseStream, System.Drawing.Imaging.ImageFormat.Bmp);
                   launchingFFMPEG.StandardInput.Flush();
                   frame++;
               }

               if (frame &lt; 5)
               {
                   Thread t = new Thread(new ThreadStart(RequestD3DScreenShot));
                   t.Start();
               }
               else
               {
                   Logger.log.Info("Done getting shots from D3D.");
               }
           }

           /// <summary>
           /// Display messages from the target process
           /// </summary>
           ///
           private void CaptureInterface_RemoteMessage(MessageReceivedEventArgs message)
           {
               Logger.log.Info(message);
           }
       }
    }

    When I search the internet for the error all I get is the FFMPEG source code, which has not proven to be illuminating. I have been able to save the image directly to disk, which makes me feel like it is not an issue with disposing the data. I have also tried only grabbing one frame, but that produces the same error, which suggests to me it is not a threading issue.

    Here is the full sample of stderr :

    2016-06-02 18:29:38,046 === ffmpeg version N-79143-g8ff0f6a Copyright (c) 2000-2016 the FFmpeg developers

    2016-06-02 18:29:38,047 ===   built with gcc 5.3.0 (GCC)

    2016-06-02 18:29:38,048 ===   configuration: --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-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmfx --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib

    2016-06-02 18:29:38,062 ===   libavutil      55. 19.100 / 55. 19.100

    2016-06-02 18:29:38,063 ===   libavcodec     57. 30.100 / 57. 30.100

    2016-06-02 18:29:38,064 ===   libavformat    57. 29.101 / 57. 29.101

    2016-06-02 18:29:38,064 ===   libavdevice    57.  0.101 / 57.  0.101

    2016-06-02 18:29:38,065 ===   libavfilter     6. 40.102 /  6. 40.102

    2016-06-02 18:29:38,066 ===   libswscale      4.  0.100 /  4.  0.100

    2016-06-02 18:29:38,067 ===   libswresample   2.  0.101 /  2.  0.101

    2016-06-02 18:29:38,068 ===   libpostproc    54.  0.100 / 54.  0.100

    2016-06-02 18:29:38,068 === [bmp @ 000002cd7e5cc280] not enough data (13070 &lt; 8294454), trying to decode anyway

    2016-06-02 18:29:38,069 === [bmp @ 000002cd7e5cc280] not enough data (13016 &lt; 8294400)

    2016-06-02 18:29:38,069 === Input #0, image2pipe, from 'pipe:.bmp':

    2016-06-02 18:29:38,262 ===   Duration: N/A, bitrate: N/A

    2016-06-02 18:29:38,262 ===     Stream #0:0: Video: bmp, bgra, 1920x1080, 8 tbr, 8 tbn, 8 tbc

    2016-06-02 18:29:38,263 === [libx264 @ 000002cd7e5d59a0] VBV bufsize set but maxrate unspecified, ignored

    2016-06-02 18:29:38,264 === [libx264 @ 000002cd7e5d59a0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2

    2016-06-02 18:29:38,265 === [libx264 @ 000002cd7e5d59a0] profile Constrained Baseline, level 1.1

    2016-06-02 18:29:38,266 === [libx264 @ 000002cd7e5d59a0] 264 - core 148 r2665 a01e339 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - 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=6 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=8 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=18.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0

    2016-06-02 18:29:38,463 === Output #0, mp4, to 'C:\Users\fores\AppData\Roaming\Affectiva\n_Artifacts_20160602_182857\GameplayVidOut.mp4':

    2016-06-02 18:29:38,464 ===   Metadata:

    2016-06-02 18:29:38,465 ===     encoder         : Lavf57.29.101

    2016-06-02 18:29:38,469 ===     Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 320x180, q=-1--1, 8 fps, 16384 tbn, 8 tbc

    2016-06-02 18:29:38,470 ===     Metadata:

    2016-06-02 18:29:38,472 ===       encoder         : Lavc57.30.100 libx264

    2016-06-02 18:29:38,474 ===     Side data:

    2016-06-02 18:29:38,475 ===       cpb: bitrate max/min/avg: 0/0/0 buffer size: 30000000 vbv_delay: -1

    2016-06-02 18:29:38,476 === Stream mapping:

    2016-06-02 18:29:38,477 ===   Stream #0:0 -> #0:0 (bmp (native) -> h264 (libx264))

    2016-06-02 18:29:38,480 === [bmp @ 000002cd7e5cc9a0] not enough data (13070 &lt; 8294454), trying to decode anyway

    2016-06-02 18:29:38,662 === [bmp @ 000002cd7e5cc9a0] not enough data (13016 &lt; 8294400)

    2016-06-02 18:29:38,662 === Error while decoding stream #0:0: Invalid data found when processing input

    2016-06-02 18:29:38,663 === frame=    0 fps=0.0 q=0.0 Lsize=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    

    2016-06-02 18:29:38,663 === video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

    2016-06-02 18:29:38,664 === Conversion failed!

    In memory, the current image is 320 pixels wide and 180 pixels long. The pixel format is Format32bppRgb. The horizontal and vertical resolutions seem odd, they are both 96.01199. When filed to disk here is ffprobe output for the file :

    ffprobe version N-79143-g8ff0f6a Copyright (c) 2007-2016 the FFmpeg developers
     built with gcc 5.3.0 (GCC)
     configuration: --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-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmfx --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
     libavutil      55. 19.100 / 55. 19.100
     libavcodec     57. 30.100 / 57. 30.100
     libavformat    57. 29.101 / 57. 29.101
     libavdevice    57.  0.101 / 57.  0.101
     libavfilter     6. 40.102 /  6. 40.102
     libswscale      4.  0.100 /  4.  0.100
     libswresample   2.  0.101 /  2.  0.101
     libpostproc    54.  0.100 / 54.  0.100
    Input #0, png_pipe, from 'C:\Users\fores\git\game-playtest-tool\GamePlayTest\bin\x64\Debug\D3DFromCapture.bmp':
     Duration: N/A, bitrate: N/A
       Stream #0:0: Video: png, rgba(pc), 1920x1080 [SAR 3779:3779 DAR 16:9], 25 tbr, 25 tbn, 25 tbc

    Here is a PNG version of an example screenshot from the current code (playing Portal 2) :
    Portal 2 Screenshot

    Any ideas would be greatly appreciated. My current workaround is to save the files to the HDD and compile the video after gameplay, but it’s a far less performant option. Thank you !

  • ffmpeg stops randomly with "No more output streams to write to, finishing" when reading rtsp stream [on hold]

    7 juin 2016, par ImagineDragon

    Basically I am running the following ffmpeg command to read an h264 rtsp stream using hls muxer, under Ubuntu 14.04 64bit with i7 CPU and 8GB memory :

    ffmpeg -v debug -i rtsp://172.16.11.247:554/live/ch00_0?token=hQttXvrjSPOcClQB -codec copy -flags -global_header -f hls -hls_time 5 -use_localtime 1 -hls_segment_filename '/home/eason/ffmpeg-test/%s.ts' '/home/eason/ffmpeg-test/live.m3u8'
    ffmpeg version N-79139-gde1a0d4 Copyright (c) 2000-2016 the FFmpeg developers
     built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.1)
     configuration: --extra-libs=-ldl --prefix=/opt/ffmpeg --mandir=/usr/share/man --enable-avresample --disable-debug --enable-nonfree --enable-gpl --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-decoder=amrnb --disable-decoder=amrwb --enable-libpulse --enable-libfreetype --enable-gnutls --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-libvidstab
     libavutil      55. 19.100 / 55. 19.100
     libavcodec     57. 30.100 / 57. 30.100
     libavformat    57. 29.101 / 57. 29.101
     libavdevice    57.  0.101 / 57.  0.101
     libavfilter     6. 40.102 /  6. 40.102
     libavresample   3.  0.  0 /  3.  0.  0
     libswscale      4.  0.100 /  4.  0.100
     libswresample   2.  0.101 /  2.  0.101
     libpostproc    54.  0.100 / 54.  0.100
    Splitting the commandline.
    Reading option '-v' ... matched as option 'v' (set logging level) with argument 'debug'.
    Reading option '-re' ... matched as option 're' (read input at native frame rate) with argument '1'.
    Reading option '-i' ... matched as input file with argument 'rtsp://172.16.11.247:554/live/ch00_0?token=hQttXvrjSPOcClQB'.
    Reading option '-codec' ... matched as option 'codec' (codec name) with argument 'copy'.
    Reading option '-flags' ... matched as AVOption 'flags' with argument '-global_header'.
    Reading option '-f' ... matched as option 'f' (force format) with argument 'hls'.
    Reading option '-hls_time' ... matched as AVOption 'hls_time' with argument '5'.
    Reading option '-use_localtime' ... matched as AVOption 'use_localtime' with argument '1'.
    Reading option '-hls_segment_filename' ... matched as AVOption 'hls_segment_filename' with argument '/home/eason/ffmpeg-test/%s.ts'.
    Reading option '/home/eason/ffmpeg-test/live.m3u8' ... matched as output file.
    Finished splitting the commandline.
    Parsing a group of options: global .
    Applying option v (set logging level) with argument debug.
    Successfully parsed a group of options.
    Parsing a group of options: input file rtsp://172.16.11.247:554/live/ch00_0?token=hQttXvrjSPOcClQB.
    Applying option re (read input at native frame rate) with argument 1.
    Successfully parsed a group of options.
    Opening an input file: rtsp://172.16.11.247:554/live/ch00_0?token=hQttXvrjSPOcClQB.
    [tcp @ 0x29c4d60] No default whitelist set
    [rtsp @ 0x29c2e20] SDP:
    m=video 0 RTP/AVP 96
    a=rtpmap:96 H264/90000
    a=fmtp:96 packetization-mode=1;profile-level-id=640028;sprop-parameter-sets=Z2QAKKzoBQBbkA==,aO48sA==
    a=control:trackID=0
    m=audio 0 RTP/AVP 98
    a=rtpmap:98 MPEG4-GENERIC/16000/1
    a=fmtp:98 profile-level-id=1;mode=AAC-lbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1408;cpresent=0;
    a=control:trackID=1


    [rtsp @ 0x29c2e20] video codec set to: h264
    [rtsp @ 0x29c2e20] RTP Packetization Mode: 1
    [rtsp @ 0x29c2e20] RTP Profile IDC: 64 Profile IOP: 0 Level: 28
    [rtsp @ 0x29c2e20] Extradata set to 0x29c4ff0 (size: 22)
    [rtsp @ 0x29c2e20] audio codec set to: aac
    [rtsp @ 0x29c2e20] audio samplerate set to: 16000
    [rtsp @ 0x29c2e20] audio channels set to: 1
    [rtp @ 0x29c50a0] No default whitelist set
    [udp @ 0x29c5200] No default whitelist set
    [udp @ 0x29c5200] end receive buffer size reported is 131072
    [udp @ 0x29d9480] No default whitelist set
    [udp @ 0x29d9480] end receive buffer size reported is 131072
    [rtsp @ 0x29c2e20] method SETUP failed: 461 Unsupported transport
    [rtsp @ 0x29c2e20] CSeq: 3

    [rtsp @ 0x29c2e20] setting jitter buffer size to 0
       Last message repeated 1 times
    [rtsp @ 0x29c2e20] hello state=0
    [rtsp @ 0x29c2e20] All info found
    [rtsp @ 0x29c2e20] rfps: 24.250000 0.018062
    [rtsp @ 0x29c2e20] rfps: 24.333333 0.012911
    [rtsp @ 0x29c2e20] rfps: 24.416667 0.008627
    [rtsp @ 0x29c2e20] rfps: 24.500000 0.005207
       Last message repeated 1 times
    [rtsp @ 0x29c2e20] rfps: 24.583333 0.002653
       Last message repeated 1 times
    [rtsp @ 0x29c2e20] rfps: 24.666667 0.000965
       Last message repeated 1 times
    [rtsp @ 0x29c2e20] rfps: 24.750000 0.000142
       Last message repeated 1 times
    [rtsp @ 0x29c2e20] rfps: 24.833333 0.000185
       Last message repeated 1 times
    [rtsp @ 0x29c2e20] rfps: 24.916667 0.001093
       Last message repeated 1 times
    [rtsp @ 0x29c2e20] rfps: 25.000000 0.002867
       Last message repeated 1 times
    [rtsp @ 0x29c2e20] rfps: 25.083333 0.005507
       Last message repeated 1 times
    [rtsp @ 0x29c2e20] rfps: 25.166667 0.009011
    [rtsp @ 0x29c2e20] rfps: 25.250000 0.013382
    [rtsp @ 0x29c2e20] rfps: 25.333333 0.018618
    [rtsp @ 0x29c2e20] rfps: 50.000000 0.011469
    Input #0, rtsp, from 'rtsp://172.16.11.247:554/live/ch00_0?token=hQttXvrjSPOcClQB':
     Duration: N/A, start: 0.000000, bitrate: N/A
       Stream #0:0, 28, 1/90000: Video: h264 (High), 1 reference frame, yuv420p(left), 1280x720, 1/180000, 24.75 tbr, 90k tbn, 180k tbc
       Stream #0:1, 23, 1/16000: Audio: aac (LC), 16000 Hz, mono, fltp
    Successfully opened the file.
    Parsing a group of options: output file /home/eason/ffmpeg-test/live.m3u8.
    Applying option codec (codec name) with argument copy.
    Applying option f (force format) with argument hls.
    Successfully parsed a group of options.
    Opening an output file: /home/eason/ffmpeg-test/live.m3u8.
    Successfully opened the file.
    [file @ 0x2cae180] Setting default whitelist 'file,crypto'
    [mpegts @ 0x29f7ce0] muxrate VBR, pcr every 9000 pkts, sdt every 2147483647, pat/pmt every 2147483647 pkts
    Output #0, hls, to '/home/eason/ffmpeg-test/live.m3u8':
     Metadata:
       encoder         : Lavf57.29.101
       Stream #0:0, 0, 1/90000: Video: h264, 1 reference frame, yuv420p(left), 1280x720 (0x0), 1/90000, q=2-31, 24.75 tbr, 90k tbn, 90k tbc
       Stream #0:1, 0, 1/90000: Audio: aac (LC), 16000 Hz, mono
    Stream mapping:
     Stream #0:0 -> #0:0 (copy)
     Stream #0:1 -> #0:1 (copy)
    Press [q] to stop, [?] for help
    cur_dts is invalid (this is harmless if it occurs once at the start per stream)
       Last message repeated 103 times
    [hls @ 0x2a0fc00] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
    [AVIOContext @ 0x2c998c0] Statistics: 0 seeks, 155 writeouts=N/A speed=1.01x    
    [file @ 0x2ba60e0] Setting default whitelist 'file,crypto'
    [file @ 0x2ca9fc0] Setting default whitelist 'file,crypto'
    [hls @ 0x2a0fc00] EXT-X-MEDIA-SEQUENCE:0
    [AVIOContext @ 0x2caa080] Statistics: 0 seeks, 1 writeouts
    [AVIOContext @ 0x2c99480] Statistics: 0 seeks, 103 writeouts=N/A speed=   1x    
    [file @ 0x2ba60e0] Setting default whitelist 'file,crypto'
    [file @ 0x2c97c60] Setting default whitelist 'file,crypto'
    [hls @ 0x2a0fc00] EXT-X-MEDIA-SEQUENCE:0
    [AVIOContext @ 0x2c97d20] Statistics: 0 seeks, 1 writeouts
    [AVIOContext @ 0x2c99480] Statistics: 0 seeks, 104 writeouts=N/A speed=   1x    
    [file @ 0x2ba60e0] Setting default whitelist 'file,crypto'
    [file @ 0x2c99680] Setting default whitelist 'file,crypto'
    [hls @ 0x2a0fc00] EXT-X-MEDIA-SEQUENCE:0
    [AVIOContext @ 0x2c99820] Statistics: 0 seeks, 1 writeouts
    [AVIOContext @ 0x2c99480] Statistics: 0 seeks, 28 writeoutse=N/A speed=   1x    
    [file @ 0x29c50c0] Setting default whitelist 'file,crypto'
    [file @ 0x2ba60e0] Setting default whitelist 'file,crypto'
    [hls @ 0x2a0fc00] EXT-X-MEDIA-SEQUENCE:0
    [AVIOContext @ 0x29c2ce0] Statistics: 0 seeks, 1 writeouts
    [AVIOContext @ 0x2c99480] Statistics: 0 seeks, 111 writeouts=N/A speed=   1x    
    [file @ 0x2c97d40] Setting default whitelist 'file,crypto'
    [file @ 0x2a134e0] Setting default whitelist 'file,crypto'
    [hls @ 0x2a0fc00] EXT-X-MEDIA-SEQUENCE:0
    [AVIOContext @ 0x2a11000] Statistics: 0 seeks, 1 writeouts
    [AVIOContext @ 0x2c99480] Statistics: 0 seeks, 105 writeouts=N/A speed=   1x    
    [file @ 0x29c50c0] Setting default whitelist 'file,crypto'
    [file @ 0x2a10c00] Setting default whitelist 'file,crypto'
    [hls @ 0x2a0fc00] EXT-X-MEDIA-SEQUENCE:1
    [AVIOContext @ 0x2a10cc0] Statistics: 0 seeks, 1 writeouts
    [AVIOContext @ 0x2c99480] Statistics: 0 seeks, 103 writeouts=N/A speed=   1x    
    [file @ 0x29c50c0] Setting default whitelist 'file,crypto'
    [file @ 0x2c99480] Setting default whitelist 'file,crypto'

    .......repeat........

    [hls @ 0x2a0fc00] EXT-X-MEDIA-SEQUENCE:71
    [AVIOContext @ 0x2c97fa0] Statistics: 0 seeks, 1 writeouts
    [rtsp @ 0x29c2e20] Too short data for FU-A H264 RTP packette=N/A speed=   1x    
    [AVIOContext @ 0x2ba60e0] Statistics: 0 seeks, 103 writeouts=N/A speed=   1x    
    [file @ 0x2c97b20] Setting default whitelist 'file,crypto'
    [file @ 0x2c97c60] Setting default whitelist 'file,crypto'
    [hls @ 0x2a0fc00] EXT-X-MEDIA-SEQUENCE:72
    [AVIOContext @ 0x2c99480] Statistics: 0 seeks, 1 writeouts
    [AVIOContext @ 0x2ba60e0] Statistics: 0 seeks, 156 writeouts=N/A speed=   1x    
    [file @ 0x2c99480] Setting default whitelist 'file,crypto'
    [file @ 0x2cab600] Setting default whitelist 'file,crypto'
    [hls @ 0x2a0fc00] EXT-X-MEDIA-SEQUENCE:73
    [AVIOContext @ 0x2cab6c0] Statistics: 0 seeks, 1 writeouts
    [AVIOContext @ 0x2ba60e0] Statistics: 0 seeks, 104 writeouts=N/A speed=   1x    
    [file @ 0x2cadc00] Setting default whitelist 'file,crypto'
    [file @ 0x2c99480] Setting default whitelist 'file,crypto'
    [hls @ 0x2a0fc00] EXT-X-MEDIA-SEQUENCE:74
    [AVIOContext @ 0x29c2ce0] Statistics: 0 seeks, 1 writeouts
    [AVIOContext @ 0x2ba60e0] Statistics: 0 seeks, 103 writeouts=N/A speed=   1x    
    [file @ 0x2a13540] Setting default whitelist 'file,crypto'
    [file @ 0x2cab680] Setting default whitelist 'file,crypto'
    [hls @ 0x2a0fc00] EXT-X-MEDIA-SEQUENCE:75
    [AVIOContext @ 0x2c99480] Statistics: 0 seeks, 1 writeouts
    No more output streams to write to, finishing.:46.09 bitrate=N/A speed=0.993x    
    [AVIOContext @ 0x2ba60e0] Statistics: 0 seeks, 138 writeouts
    [file @ 0x29c50c0] Setting default whitelist 'file,crypto'
    [hls @ 0x2a0fc00] EXT-X-MEDIA-SEQUENCE:76
    [AVIOContext @ 0x2ba60e0] Statistics: 0 seeks, 1 writeouts
    frame= 8423 fps= 21 q=-1.0 Lsize=N/A time=00:06:46.09 bitrate=N/A speed=0.993x    
    video:37031kB audio:1586kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
    Input file #0 (rtsp://172.16.11.247:554/live/ch00_0?token=hQttXvrjSPOcClQB):
     Input stream #0:0 (video): 8423 packets read (37919815 bytes);
     Input stream #0:1 (audio): 6345 packets read (1624337 bytes);
     Total: 14768 packets (39544152 bytes) demuxed
    Output file #0 (/home/eason/ffmpeg-test/live.m3u8):
     Output stream #0:0 (video): 8423 packets muxed (37919815 bytes);
     Output stream #0:1 (audio): 6345 packets muxed (1624337 bytes);
     Total: 14768 packets (39544152 bytes) muxed
    0 frames successfully decoded, 0 decoding errors

    The problem is that ffmpeg exits randomly after 5 to 20 minutes. The RTSP is a live stream so stopping every 5 minute is really not acceptable. In the ffmpeg log I can’t see any noticeable error except "No more output streams to write to, finishing." near the end. Can someone shed some light upon this ? How can I make ffmpeg run without stopping ? Thanks