[FFmpeg-trac] #10350(undetermined:new): Movie filter initializes in a broken state when called with loop=0

FFmpeg trac at avcodec.org
Tue May 9 01:22:46 EEST 2023


#10350: Movie filter initializes in a broken state when called with loop=0
-------------------------------------+-------------------------------------
             Reporter:  Dennis E.    |                     Type:  defect
  Mungai                             |
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:               |               Blocked By:
  libavfilter,movie                  |
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 **Summary of the bug:**

 As stated: The {{{movie}}} filter will not output any packets when started
 with {{{loop=0}}} argument.


 **How to reproduce:**

 Here is a simple sample command demonstrating the issue:

 {{{
 ffmpeg -nostdin -an -sn -y \
 -i 'x264-test.ts' \
 -filter_complex \
 "[0:v]drawtext=text=\\
 :expansion=strftime:fontcolor=white:fontsize=0:fontfile=/usr/share/fonts/truetype/dejavu/DejaVuMathTeXGyre.ttf:x=w/2-tw/2:y=h/2-th/2[video];movie=/home/brainiarc7/Desktop/src/logo/test1_%d.png:loop=0[logo];\
 [video][logo]overlay=x=0:y=0:alpha=0:format=yuv420:repeatlast=1[overlay];\
 [overlay]scale=640:360[v0] " \
 -map '[v0]' -b:v 1250k -c:v libx264 -pix_fmt yuv420p \
 -sc_threshold 0 -keyint_min 50 -bf 0 -g 50 -minrate 1250k \
 -maxrate 1250k -bufsize 1250k -preset medium -r 25 \
 -f mpegts \
 "ovtest.ts"
 }}}


 **Output:**

 The process simply "hangs" and no output is generated, regardless of the
 muxer(s) used:

 {{{
 Input #0, mpegts, from 'x264-test.ts':
   Duration: 00:04:56.84, start: 1.455400, bitrate: 5281 kb/s
   Program 1
     Metadata:
       service_name    : Service01
       service_provider: FFmpeg
   Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B),
 yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 59.94 fps,
 29.97 tbr, 90k tbn
   Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz,
 stereo, fltp, 163 kb/s
 Stream mapping:
   Stream #0:0 (h264) -> drawtext:default
   scale:default -> Stream #0:0 (libx264)
 [libx264 @ 0x555ddde1ce80] using SAR=1/1
 [libx264 @ 0x555ddde1ce80] using cpu capabilities: MMX2 SSE2Fast SSSE3
 SSE4.2 AVX FMA3 BMI2 AVX2
 [libx264 @ 0x555ddde1ce80] profile High, level 3.0, 4:2:0, 8-bit
 Output #0, mpegts, to 'ovtest.ts':
   Metadata:
     encoder         : Lavf60.4.100
   Stream #0:0: Video: h264, yuv420p(tv, bt709, progressive), 640x360 [SAR
 1:1 DAR 16:9], q=2-31, 1250 kb/s, 25 fps, 90k tbn
     Metadata:
       encoder         : Lavc60.6.100 libx264
     Side data:
       cpb: bitrate max/min/avg: 1250000/0/1250000 buffer size: 1250000
 vbv_delay: N/A
 frame=    0 fps=0.0 q=0.0 size=       0kB time=-577014:32:22.77 bitrate=
 -0.0kbits/s speed=N/A
 }}}

 The ffmpeg process must then be killed manually, and will remain hung
 indefinitely unless killed.

 When the {{{loop=0}}} argument to the movie filter is omitted, the command
 runs *but* the dependent filter chain right after with overlay receive no
 input, and thus no logo overlay is inserted:

 {{{
 ffmpeg -nostdin -an -sn -y \
 -i 'x264-test.ts' \
 -filter_complex \
 "[0:v]drawtext=text=\\
 :expansion=strftime:fontcolor=white:fontsize=0:fontfile=/usr/share/fonts/truetype/dejavu/DejaVuMathTeXGyre.ttf:x=w/2-tw/2:y=h/2-th/2[video];movie=/home/brainiarc7/Desktop/src/logo/test1_%d.png[logo];\
 [video][logo]overlay=x=0:y=0:alpha=0:format=yuv420:repeatlast=1[overlay];\
 [overlay]scale=640:360[v0] " \
 -map '[v0]' -b:v 1250k -c:v libx264 -pix_fmt yuv420p \
 -sc_threshold 0 -keyint_min 50 -bf 0 -g 50 -minrate 1250k \
 -maxrate 1250k -bufsize 1250k -preset medium -r 25 \
 -f mpegts \
 "ovtest.ts"
 }}}

 **Output:**

 {{{
 ffmpeg version N-110069-gd5a3bdf434 Copyright (c) 2000-2023 the FFmpeg
 developers
   built with gcc 11 (Ubuntu 11.3.0-1ubuntu1~22.04)
   configuration: --pkg-config-flags=--static --enable-static --disable-
 shared --prefix=/home/brainiarc7 --bindir=/home/brainiarc7/bin --enable-
 cuda-nvcc --enable-cuvid --enable-libnpp --extra-
 cflags='-I/home/brainiarc7/ffmpeg_build/include -I/usr/local/cuda/include/
 -march=native' --extra-cxxflags='-march=native' --extra-
 ldflags='-L/home/brainiarc7/ffmpeg_build/lib -L/usr/local/cuda/lib64/'
 --enable-nvenc --enable-libass --enable-libfreetype --disable-stripping
 --enable-gpl --cpu=native --enable-libfdk-aac --enable-libx264 --enable-
 libx265 --enable-openssl --enable-librtmp --enable-libzvbi --enable-
 version3 --enable-opencl --enable-pic --enable-librav1e --enable-
 libshaderc --disable-libglslang --enable-vulkan --enable-vulkan-encode
 --enable-libsrt --enable-libsvtav1 --enable-libvpx --enable-libplacebo
 --enable-librav1e --nvccflags='-arch=native' --extra-libs='-lz -lm -ldl'
 --enable-nonfree
   libavutil      58.  3.100 / 58.  3.100
   libavcodec     60.  6.100 / 60.  6.100
   libavformat    60.  4.100 / 60.  4.100
   libavdevice    60.  2.100 / 60.  2.100
   libavfilter     9.  4.100 /  9.  4.100
   libswscale      7.  2.100 /  7.  2.100
   libswresample   4. 11.100 /  4. 11.100
   libpostproc    57.  2.100 / 57.  2.100
 Input #0, mpegts, from 'x264-test.ts':
   Duration: 00:04:56.84, start: 1.455400, bitrate: 5281 kb/s
   Program 1
     Metadata:
       service_name    : Service01
       service_provider: FFmpeg
   Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B),
 yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 59.94 fps,
 29.97 tbr, 90k tbn
   Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz,
 stereo, fltp, 163 kb/s
 Stream mapping:
   Stream #0:0 (h264) -> drawtext:default
   scale:default -> Stream #0:0 (libx264)
 [libx264 @ 0x55e2f52772c0] using SAR=1/1
 [libx264 @ 0x55e2f52772c0] using cpu capabilities: MMX2 SSE2Fast SSSE3
 SSE4.2 AVX FMA3 BMI2 AVX2
 [libx264 @ 0x55e2f52772c0] profile High, level 3.0, 4:2:0, 8-bit
 Output #0, mpegts, to 'ovtest.ts':
   Metadata:
     encoder         : Lavf60.4.100
   Stream #0:0: Video: h264, yuv420p(tv, bt709, progressive), 640x360 [SAR
 1:1 DAR 16:9], q=2-31, 1250 kb/s, 25 fps, 90k tbn
     Metadata:
       encoder         : Lavc60.6.100 libx264
     Side data:
       cpb: bitrate max/min/avg: 1250000/0/1250000 buffer size: 1250000
 vbv_delay: N/A
 [Parsed_movie_1 @ 0x55e2f518c4c0] EOF timestamp not reliable.77 bitrate=
 -0.0kbits/s speed=N/A
 frame= 7422 fps=274 q=-1.0 Lsize=   47602kB time=00:04:56.84
 bitrate=1313.7kbits/s dup=0 drop=1474 speed=  11x
 video:44750kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 6.373472%
 [libx264 @ 0x55e2f52772c0] frame I:149   Avg QP:25.16  size: 23724
 [libx264 @ 0x55e2f52772c0] frame P:7273  Avg QP:28.69  size:  5815
 [libx264 @ 0x55e2f52772c0] mb I  I16..4:  7.6% 56.8% 35.6%
 [libx264 @ 0x55e2f52772c0] mb P  I16..4:  3.0%  8.2%  1.7%  P16..4: 45.0%
 17.0%  9.8%  0.0%  0.0%    skip:15.2%
 [libx264 @ 0x55e2f52772c0] 8x8 transform intra:62.5% inter:64.2%
 [libx264 @ 0x55e2f52772c0] coded y,uvDC,uvAC intra: 49.9% 78.3% 45.4%
 inter: 28.8% 51.2% 12.5%
 [libx264 @ 0x55e2f52772c0] i16 v,h,dc,p: 35% 26% 14% 24%
 [libx264 @ 0x55e2f52772c0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 13% 25%  6%
 7%  8%  6%  7%  6%
 [libx264 @ 0x55e2f52772c0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 27% 15% 19%  6%
 7%  8%  6%  6%  5%
 [libx264 @ 0x55e2f52772c0] i8c dc,h,v,p: 52% 17% 22%  9%
 [libx264 @ 0x55e2f52772c0] Weighted P-Frames: Y:12.3% UV:8.9%
 [libx264 @ 0x55e2f52772c0] ref P L0: 68.8% 17.5%  9.6%  3.7%  0.4%
 [libx264 @ 0x55e2f52772c0] kb/s:1234.81
 }}}

 The same command works on a very old ffmpeg version, ie 4.3.2.
 Anything newer than this is a show-stopper.
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/10350>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list