2 votes

ffmpeg superpose la dernière image restante dans la vidéo

Il y a un problème où la dernière image d'une vidéo superposée reste dans la vidéo de sortie jusqu'à ce que la vidéo complète soit terminée. La vidéo complète dure 10 secondes et la vidéo superposée 5 secondes. La superposition commence au début de la vidéo.

Exemple :

  • myoverlay.mov est de 5 secondes
  • myvideo.mp4 est de 10 secondes

Vidéo finale ( outputvideo.mp4 ) montre la dernière image de myoverlay.mov "coincé" dans la vidéo pendant les 5 secondes restantes.

Souhaitable : lorsque la superposition est terminée, elle doit disparaître et les 5 secondes restantes de la vidéo se poursuivent sans que l'on voie quoi que ce soit de la superposition.

Commande utilisée :

ffmpeg -y -i myvideo.mp4 -r 30 -itsoffset 00:00:00.000 -i myoverlay.mov \
-filter_complex [1:v]scale=640:360[ovrl], [0:v][ovrl]overlay=0:0[outv]; \
[0:a][1:a]amix[outa] -map [outv] -map [outa] -c:v libx264 -vcodec mpeg4 \
-r 30 -strict experimental -b:v 1500000 outputvideo.mp4

Pleine puissance :

ffmpeg version N-70223-g7296716 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.9.2 (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-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-lzma --enable-decklink --enable-zlib
  libavutil      54. 19.100 / 54. 19.100
  libavcodec     56. 26.100 / 56. 26.100
  libavformat    56. 23.105 / 56. 23.105
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 11.101 /  5. 11.101
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'basevideo.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 512
    compatible_brands: qt
    creation_time   : 2015-07-13 21:32:46
    encoder         : Lavf53.21.1
  Duration: 00:00:45.10, start: 0.000000, bitrate: 2436 kb/s
    Stream #0:0(eng): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 2234 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 30k tbc (default)
    Metadata:
      creation_time   : 2015-07-13 21:32:46
      handler_name    : DataHandler
      encoder         : mpeg4
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 199 kb/s (default)
    Metadata:
      creation_time   : 2015-07-13 21:32:46
      handler_name    : DataHandler
Guessed Channel Layout for  Input Stream #1.1 : mono Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'overlayvideo.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 537199360
    compatible_brands: qt
    creation_time   : 2015-03-29 22:27:01
  Duration: 00:00:08.00, start: 0.000000, bitrate: 85613 kb/s
    Stream #1:0(eng): Video: png (png  / 0x20676E70), rgba, 640x360 [SAR 2834:2834 DAR 16:9], 84889 kb/s, 30 fps, 30 tbr, 30 tbn, 30 tbc (default)
    Metadata:
      creation_time   : 2015-03-29 22:27:01
      handler_name    : Apple Alias Data Handler
      encoder         : PNG
      timecode        : 00:00:00:00
    Stream #1:1(eng): Audio: pcm_s16le (sowt / 0x74776F73), 44100 Hz, 1 channels, s16, 705 kb/s (default)
    Metadata:
      creation_time   : 2015-03-29 22:27:01
      handler_name    : Apple Alias Data Handler
      timecode        : 00:00:00:00
    Stream #1:2(eng): Data: none (tmcd / 0x64636D74), 0 kb/s (default)
    Metadata:
      creation_time   : 2015-03-29 22:27:39
      handler_name    : Apple Alias Data Handler
      timecode        : 00:00:00:00
Output #0, mp4, to 'finalvideo.mp4':
  Metadata:
    major_brand     : qt
    minor_version   : 512
    compatible_brands: qt
    encoder         : Lavf56.23.105
    Stream #0:0: Video: mpeg4 ( [0][0][0] / 0x0020), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 1500 kb/s, 30 fps, 15360 tbn, 30 tbc (default)
    Metadata:
      encoder         : Lavc56.26.100 mpeg4
    Stream #0:1: Audio: aac (libvo_aacenc) ([64][0][0][0] / 0x0040), 48000 Hz, stereo, s16, 128 kb/s (default)
    Metadata:
      encoder         : Lavc56.26.100 libvo_aacenc
Stream mapping:
  Stream #0:0 (mpeg4) -> overlay:main
  Stream #0:1 (aac) -> amix:input0
  Stream #1:0 (png) -> scale
  Stream #1:1 (pcm_s16le) -> amix:input1
  overlay -> Stream #0:0 (mpeg4)
  amix -> Stream #0:1 (libvo_aacenc)
Press [q] to stop, [?] for help
frame= 1351 fps=108 q=24.8 Lsize=   15213kB time=00:00:45.10 bitrate=2762.7kbits/s dup=1 drop=0
video:14467kB audio:705kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.261860%

2voto

mtoloo Points 69

Avoir la solution. Nécessité d'utiliser overlay=eof_action=pass au lieu de superposition=0:0

Commande mise à jour, qui fonctionne :

ffmpeg -y -i myvideo.mp4 -r 30 -itsoffset 00:00:00.000 -i myoverlay.mov -filter_complex "[1:v]scale=640:360[ovrl], [0:v][ovrl]overlay=eof_action=pass[outv];[0:a][1:a]amix[outa]" -map [outv] -map [outa] -c:v libx264 -vcodec mpeg4 -r 30 -strict experimental -b:v 1500000 outputvideo.mp4

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X