[FFmpeg-trac] #6292(undetermined:new): overlay filter's shortest=1 doesn't take effect.

FFmpeg trac at avcodec.org
Thu Apr 6 09:00:27 EEST 2017


#6292: overlay filter's shortest=1 doesn't take effect.
-------------------------------------+-------------------------------------
             Reporter:  Gyan         |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:  git-
  undetermined                       |  master
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Setting **shortest=1** in the **overlay** filter doesn't work. If the main
 input is longer, the overlay runs till the end of that video. If the
 secondary input is longer, whether it's a video or a looped single image,
 encoding proceeds till the EOF of the main input but FFmpeg doesn't exit.
 Doing a soft exit works and the output file is valid (tested with MP4
 output). However, this is not a practical option when processing videos in
 bulk. Can't use output option **-shortest** as workaround if there are no
 other streams being muxed (or they are shorter).

 Tested with multiple MP4/MOV inputs as main video. Tested with multiple
 images and couple of MP4/MOVs as secondary input.

 Running git bisect gets

 {{{
 0ff5567a30be6d7c804e95997ae282d6bacd76c3 is the first bad commit
 commit 0ff5567a30be6d7c804e95997ae282d6bacd76c3
 Author: Nicolas George <george at nsup.org>
 Date:   Fri Dec 23 21:39:46 2016 +0100

     lavfi/buffersrc: push the frame deeper if requested.

     Reduce peak memory consumption with ffmpeg in certain cases.

 :040000 040000 1495a0350e1af2b72abb35ce112ee6fd82371a75
 bd8d282f75ad23eab19a3fb003574e0090aaed78 M  libavfilter
 }}}

 {{{
 C:\avutils\ffmpeg-stock (HEAD detached at 0ff5567)
 λ .\ffmpeg -i "t:\Handmade road bike. (promo video).mp4" -loop 1 -i
 t:\text.png -filter_complex
 "[0][1]overlay=x='(W-w)/2':y='H-h-30':shortest=1" -c:v mpeg4 -c:a aac -b:a
 64k -movflags +faststart -f mp4 t:\out.mp4
 ffmpeg version 3.2.git Copyright (c) 2000-2016 the FFmpeg developers
   built with gcc 6.3.0 (x86_64-posix-sjlj-rev1, Built by MinGW-W64
 project)
   configuration: --disable-ffplay --disable-ffprobe --disable-ffserver
 --disable-hwaccels --disable-devices --disable-encoders --enable-
 encoder=mpeg4 --enable-encoder=aac --disable-demuxers --enable-demuxer=mov
 --enable-demuxer=image_png_pipe --disable-muxers --enable-muxer=mp4
   libavutil      55. 43.100 / 55. 43.100
   libavcodec     57. 70.100 / 57. 70.100
   libavformat    57. 61.100 / 57. 61.100
   libavdevice    57.  2.100 / 57.  2.100
   libavfilter     6. 68.100 /  6. 68.100
   libswscale      4.  3.101 /  4.  3.101
   libswresample   2.  4.100 /  2.  4.100
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 't:\Handmade road bike. (promo
 video).mp4':
   Metadata:
     major_brand     : isom
     minor_version   : 512
     compatible_brands: isomiso2avc1mp41
     encoder         : Lavf56.40.101
   Duration: 00:00:15.74, start: 0.000000, bitrate: 2711 kb/s
     Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv,
 bt709/unknown/bt709), 1920x1080 [SAR 1:1 DAR 16:9], 2508 kb/s, 25 fps, 25
 tbr, 12800 tbn, 50 tbc (default)
     Metadata:
       handler_name    : VideoHandler
     Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz,
 stereo, fltp, 200 kb/s (default)
     Metadata:
       handler_name    : SoundHandler
 Input #1, png_pipe, from 't:\text.png':
   Duration: N/A, bitrate: N/A
     Stream #1:0: Video: png, rgba(pc), 1920x1080 [SAR 1:1 DAR 16:9], 25
 fps, 25 tbr, 25 tbn, 25 tbc
 File 't:\out.mp4' already exists. Overwrite ? [y/N] y
 Output #0, mp4, to 't:\out.mp4':
   Metadata:
     major_brand     : isom
     minor_version   : 512
     compatible_brands: isomiso2avc1mp41
     encoder         : Lavf57.61.100
     Stream #0:0: Video: mpeg4 ( [0][0][0] / 0x0020), yuv420p, 1920x1080
 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 25 fps, 12800 tbn, 25 tbc (default)
     Metadata:
       encoder         : Lavc57.70.100 mpeg4
     Side data:
       cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
     Stream #0:1(und): Audio: aac (LC) ([64][0][0][0] / 0x0040), 48000 Hz,
 stereo, fltp, 64 kb/s (default)
     Metadata:
       handler_name    : SoundHandler
       encoder         : Lavc57.70.100 aac
 Stream mapping:
   Stream #0:0 (h264) -> overlay:main (graph 0)
   Stream #1:0 (png) -> overlay:overlay (graph 0)
   overlay (graph 0) -> Stream #0:0 (mpeg4)
   Stream #0:1 -> #0:1 (aac (native) -> aac (native))
 Press [q] to stop, [?] for help
 [mp4 @ 000000000033a5a0] Starting second pass: moving the moov atom to the
 beginning of the file
 frame=  393 fps= 32 q=31.0 Lsize=    2545kB time=00:00:15.72
 bitrate=1326.3kbits/s speed=1.27x
 video:2409kB audio:126kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 0.398423%
 [aac @ 000000000332f3c0] Qavg: 317.130
 Exiting normally, received signal 2.
 }}}

--
Ticket URL: <https://trac.ffmpeg.org/ticket/6292>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list