Re: [FFmpeg-user] disabling scene detection
> On Mar 10, 2020, at 1:04 AM, Gyan Doshi wrote: > > > >> On 10-03-2020 12:49 pm, Alex Teslik wrote: >> Hello, >> >> I have an image sequence of line drawings where the drawings change >> abruptly. Ffmpeg is resetting the frame numbers that I am burning in using >> the >> drawtext option every time there is an abrupt change. Here is the command I >> am >> using, and the output: >> >> ffmpeg.exe -y -r 10 -i final-%d.png -vf >> "drawtext=fontfile='C\:/WINDOWS/fonts/arialbd.ttf':text=% >> {frame_num}:start_number=1:fontcolor=black:fontsize=15:x=10:y=10,fps=10" - >> pix_fmt rgb24 -c:v qtrle -r 10 test.mov >> ffmpeg version git-2020-02-18-ebee808 Copyright (c) 2000-2020 the FFmpeg >> developers >> built with gcc 9.2.1 (GCC) 20200122 >> configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable- >> fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d >> -- >> enable-libbluray --enable-libfreetype --enable-libmp3lame --enable- >> libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable- >> libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable- >> libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable- >> libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg >> -- >> enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis >> --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid >> --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuvid --enable- >> d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth -- >> enable-libopenmpt --enable-amf >> libavutil 56. 41.100 / 56. 41.100 >> libavcodec 58. 70.100 / 58. 70.100 >> libavformat58. 38.101 / 58. 38.101 >> libavdevice58. 9.103 / 58. 9.103 >> libavfilter 7. 76.100 / 7. 76.100 >> libswscale 5. 6.100 / 5. 6.100 >> libswresample 3. 6.100 / 3. 6.100 >> libpostproc55. 6.100 / 55. 6.100 >> Input #0, image2, from 'final-%d.png': >> Duration: 00:00:04.96, start: 0.00, bitrate: N/A >> Stream #0:0: Video: png, gray(pc), 240x196 [SAR 7559:7559 DAR 60:49], 25 >> fps, 25 tbr, 25 tbn, 25 tbc >> Stream mapping: >> Stream #0:0 -> #0:0 (png (native) -> qtrle (native)) >> Press [q] to stop, [?] for help >> Output #0, mov, to 'test.mov': >> Metadata: >> encoder : Lavf58.38.101 >> Stream #0:0: Video: qtrle (rle / 0x20656C72), rgb24, 240x196 [SAR 1:1 >> DAR >> 60:49], q=2-31, 200 kb/s, 10 fps, 10240 tbn, 10 tbc >> Metadata: >> encoder : Lavc58.70.100 qtrle >> frame= 124 fps=0.0 q=-0.0 Lsize= 635kB time=00:00:12.30 bitrate= >> 422.9kbits/s dup=3 drop=0 speed=92.5x >> video:634kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB >> muxing >> overhead: 0.25% >> >> >> The images start at 1 and sequentially increment. But when the image changes >> dramatically, the frame numbering starts over at 1 again. So out of 124 >> images >> I get 4 sequences burned in: >> >> 1-82 >> 1-5 >> 1-25 >> 1-9 > > > This is almost certainly not due to scene detection (neither the filtering > framework or drawtext filter has any provision for that). > > What this is, is the filtergraph being reinitialized when some property of > the input changes - for video/images, the candidates are resolution or the > pixel format. > > That can be suppressed, > > ffmpeg.exe -y -framerate 10 -reinit_filter 0 -i final-%d.png -vf > "scale,format=rgb24,drawtext=fontfile='C\:/WINDOWS/fonts/arialbd.ttf':text=% > {frame_num}:start_number=1:fontcolor=black:fontsize=15:x=10:y=10" - > pix_fmt rgb24 -c:v qtrle -r 10 test.mov > > > (scale filter prefixed since only some filters can handle changing input > without reinit). For image and capture input, -framerate is preferable. > > Gyan > ___ > ffmpeg-user mailing list > ffmpeg-user@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-user > > To unsubscribe, visit link above, or email > ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe". > Hi Gyan, Thank you so much. That switch was very helpful. I couldn’t find any documentation on it, so it was a great suggestion. It pointed to a problem where some of the frames in my image sequence were silently converted to the Grey colorspace instead of sRGB. This was an issue in imagemagick, which was generating my frames. I forced imagemagick to output consistently in sRGB, and that combined with the switch you provided made everything work correctly. All my frames have the correct number burned in now . Thanks! ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-user] disabling scene detection
On 10-03-2020 12:49 pm, Alex Teslik wrote: Hello, I have an image sequence of line drawings where the drawings change abruptly. Ffmpeg is resetting the frame numbers that I am burning in using the drawtext option every time there is an abrupt change. Here is the command I am using, and the output: ffmpeg.exe -y -r 10 -i final-%d.png -vf "drawtext=fontfile='C\:/WINDOWS/fonts/arialbd.ttf':text=% {frame_num}:start_number=1:fontcolor=black:fontsize=15:x=10:y=10,fps=10" - pix_fmt rgb24 -c:v qtrle -r 10 test.mov ffmpeg version git-2020-02-18-ebee808 Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9.2.1 (GCC) 20200122 configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable- fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d -- enable-libbluray --enable-libfreetype --enable-libmp3lame --enable- libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable- libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable- libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable- libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg -- enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuvid --enable- d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth -- enable-libopenmpt --enable-amf libavutil 56. 41.100 / 56. 41.100 libavcodec 58. 70.100 / 58. 70.100 libavformat58. 38.101 / 58. 38.101 libavdevice58. 9.103 / 58. 9.103 libavfilter 7. 76.100 / 7. 76.100 libswscale 5. 6.100 / 5. 6.100 libswresample 3. 6.100 / 3. 6.100 libpostproc55. 6.100 / 55. 6.100 Input #0, image2, from 'final-%d.png': Duration: 00:00:04.96, start: 0.00, bitrate: N/A Stream #0:0: Video: png, gray(pc), 240x196 [SAR 7559:7559 DAR 60:49], 25 fps, 25 tbr, 25 tbn, 25 tbc Stream mapping: Stream #0:0 -> #0:0 (png (native) -> qtrle (native)) Press [q] to stop, [?] for help Output #0, mov, to 'test.mov': Metadata: encoder : Lavf58.38.101 Stream #0:0: Video: qtrle (rle / 0x20656C72), rgb24, 240x196 [SAR 1:1 DAR 60:49], q=2-31, 200 kb/s, 10 fps, 10240 tbn, 10 tbc Metadata: encoder : Lavc58.70.100 qtrle frame= 124 fps=0.0 q=-0.0 Lsize= 635kB time=00:00:12.30 bitrate= 422.9kbits/s dup=3 drop=0 speed=92.5x video:634kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.25% The images start at 1 and sequentially increment. But when the image changes dramatically, the frame numbering starts over at 1 again. So out of 124 images I get 4 sequences burned in: 1-82 1-5 1-25 1-9 This is almost certainly not due to scene detection (neither the filtering framework or drawtext filter has any provision for that). What this is, is the filtergraph being reinitialized when some property of the input changes - for video/images, the candidates are resolution or the pixel format. That can be suppressed, ffmpeg.exe -y -framerate 10 -reinit_filter 0 -i final-%d.png -vf "scale,format=rgb24,drawtext=fontfile='C\:/WINDOWS/fonts/arialbd.ttf':text=% {frame_num}:start_number=1:fontcolor=black:fontsize=15:x=10:y=10" - pix_fmt rgb24 -c:v qtrle -r 10 test.mov (scale filter prefixed since only some filters can handle changing input without reinit). For image and capture input, -framerate is preferable. Gyan ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".
[FFmpeg-user] disabling scene detection
Hello, I have an image sequence of line drawings where the drawings change abruptly. Ffmpeg is resetting the frame numbers that I am burning in using the drawtext option every time there is an abrupt change. Here is the command I am using, and the output: ffmpeg.exe -y -r 10 -i final-%d.png -vf "drawtext=fontfile='C\:/WINDOWS/fonts/arialbd.ttf':text=% {frame_num}:start_number=1:fontcolor=black:fontsize=15:x=10:y=10,fps=10" - pix_fmt rgb24 -c:v qtrle -r 10 test.mov ffmpeg version git-2020-02-18-ebee808 Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9.2.1 (GCC) 20200122 configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable- fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d -- enable-libbluray --enable-libfreetype --enable-libmp3lame --enable- libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable- libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable- libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable- libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg -- enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuvid --enable- d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth -- enable-libopenmpt --enable-amf libavutil 56. 41.100 / 56. 41.100 libavcodec 58. 70.100 / 58. 70.100 libavformat58. 38.101 / 58. 38.101 libavdevice58. 9.103 / 58. 9.103 libavfilter 7. 76.100 / 7. 76.100 libswscale 5. 6.100 / 5. 6.100 libswresample 3. 6.100 / 3. 6.100 libpostproc55. 6.100 / 55. 6.100 Input #0, image2, from 'final-%d.png': Duration: 00:00:04.96, start: 0.00, bitrate: N/A Stream #0:0: Video: png, gray(pc), 240x196 [SAR 7559:7559 DAR 60:49], 25 fps, 25 tbr, 25 tbn, 25 tbc Stream mapping: Stream #0:0 -> #0:0 (png (native) -> qtrle (native)) Press [q] to stop, [?] for help Output #0, mov, to 'test.mov': Metadata: encoder : Lavf58.38.101 Stream #0:0: Video: qtrle (rle / 0x20656C72), rgb24, 240x196 [SAR 1:1 DAR 60:49], q=2-31, 200 kb/s, 10 fps, 10240 tbn, 10 tbc Metadata: encoder : Lavc58.70.100 qtrle frame= 124 fps=0.0 q=-0.0 Lsize= 635kB time=00:00:12.30 bitrate= 422.9kbits/s dup=3 drop=0 speed=92.5x video:634kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.25% The images start at 1 and sequentially increment. But when the image changes dramatically, the frame numbering starts over at 1 again. So out of 124 images I get 4 sequences burned in: 1-82 1-5 1-25 1-9 How can I turn off the scene detection so that it stops resetting the frame counter? Thanks. ___ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".