#9210(undetermined:new): Concat images produces wrong timings when duration is in milliseconds
#9210: Concat images produces wrong timings when duration is in milliseconds -------------------------------------+------------------------------------- Reporter: demet64 | Type: defect Status: new | Priority: normal Component: | Version: undetermined | unspecified Keywords: | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+------------------------------------- This issue was also mentioned here: https://www.reddit.com/r/ffmpeg/comments/e1o3hv/ffconcat_filter_with_millise... and here: https://forum.videohelp.com/threads/397470-Converting-a -sequence-of-images-to-video-with-variable-framerate Summary of the bug: How to reproduce: {{{ % ffmpeg -i input ... output ffmpeg version built on ... }}} Patches should be submitted to the ffmpeg-devel mailing list and not this bug tracker. -- Ticket URL: <https://trac.ffmpeg.org/ticket/9210> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
#9210: Concat images produces wrong timings when duration is in milliseconds -------------------------------------+------------------------------------- Reporter: demet64 | Owner: (none) Type: defect | Status: new Priority: normal | Component: | undetermined Version: unspecified | Resolution: Keywords: | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+------------------------------------- Description changed by demet64: Old description:
This issue was also mentioned here: https://www.reddit.com/r/ffmpeg/comments/e1o3hv/ffconcat_filter_with_millise... and here: https://forum.videohelp.com/threads/397470-Converting-a -sequence-of-images-to-video-with-variable-framerate
Summary of the bug: How to reproduce: {{{ % ffmpeg -i input ... output ffmpeg version built on ... }}} Patches should be submitted to the ffmpeg-devel mailing list and not this bug tracker.
New description: This issue was also mentioned here: https://www.reddit.com/r/ffmpeg/comments/e1o3hv/ffconcat_filter_with_millise... and here: https://forum.videohelp.com/threads/397470-Converting-a -sequence-of-images-to-video-with-variable-framerate Summary of the bug: How to reproduce: A concat file like this {{{ file 000000.jpg duration 116ms file 000001.jpg duration 116ms file 000002.jpg duration 116ms file 000003.jpg duration 116ms file 000004.jpg duration 116ms file 000005.jpg duration 116ms file 000006.jpg duration 116ms file 000007.jpg duration 116ms file 000008.jpg duration 116ms file 000009.jpg duration 1002ms file 000010.jpg duration 116ms file 000011.jpg duration 116ms file 000012.jpg duration 116ms file 000013.jpg duration 1129ms file 000014.jpg duration 73ms file 000015.jpg duration 73ms file 000016.jpg duration 116ms file 000017.jpg duration 116ms file 000018.jpg duration 2184ms file 000018.jpg }}} The output: {{{ ffprobe -f concat -i concat.txt -show_frames | findstr "pkt_pts" pkt_pts=0 pkt_pts_time=0.000000 pkt_pts=3 pkt_pts_time=0.120000 pkt_pts=6 pkt_pts_time=0.240000 pkt_pts=9 pkt_pts_time=0.360000 pkt_pts=12 pkt_pts_time=0.480000 pkt_pts=15 pkt_pts_time=0.600000 pkt_pts=17 pkt_pts_time=0.680000 pkt_pts=20 pkt_pts_time=0.800000 pkt_pts=23 pkt_pts_time=0.920000 pkt_pts=26 pkt_pts_time=1.040000 pkt_pts=51 pkt_pts_time=2.040000 pkt_pts=54 pkt_pts_time=2.160000 pkt_pts=57 pkt_pts_time=2.280000 pkt_pts=60 pkt_pts_time=2.400000 pkt_pts=88 pkt_pts_time=3.520000 pkt_pts=90 pkt_pts_time=3.600000 pkt_pts=92 pkt_pts_time=3.680000 pkt_pts=95 pkt_pts_time=3.800000 pkt_pts=98 pkt_pts_time=3.920000 pkt_pts=152 pkt_pts_time=6.080000 }}} The output looks correct at first, but timestamps are rounded, and for some reasons the duration here {{{ pkt_pts_time=0.600000 pkt_pts=17 pkt_pts_time=0.680000 }}} is 80ms instead of 120ms (and expected 116ms) It's not the problem of ffprobe, when converting to webm, for example, or gif {{{ ffmpeg -i concat.txt -c:v libvpx-vp9 -lossless 1 out.webm }}} timings would be like showed above. The other case: {{{ file 000000.jpg duration 50ms file 000001.jpg duration 60ms file 000002.jpg duration 50ms file 000003.jpg duration 60ms file 000004.jpg duration 50ms file 000005.jpg duration 60ms file 000006.jpg duration 50ms file 000007.jpg duration 60ms file 000008.jpg duration 60ms file 000009.jpg duration 50ms file 000010.jpg duration 60ms file 000011.jpg duration 50ms file 000012.jpg duration 60ms file 000013.jpg duration 50ms file 000014.jpg duration 60ms file 000015.jpg duration 50ms file 000016.jpg duration 60ms file 000017.jpg duration 60ms file 000018.jpg duration 50ms file 000019.jpg duration 60ms file 000020.jpg duration 50ms file 000021.jpg duration 60ms file 000022.jpg duration 50ms file 000023.jpg duration 60ms file 000023.jpg }}} Output: {{{ pkt_pts=0 pkt_pts_time=0.000000 pkt_pts=1 pkt_pts_time=0.040000 pkt_pts=3 pkt_pts_time=0.120000 pkt_pts=4 pkt_pts_time=0.160000 pkt_pts=6 pkt_pts_time=0.240000 pkt_pts=7 pkt_pts_time=0.280000 pkt_pts=8 pkt_pts_time=0.320000 pkt_pts=10 pkt_pts_time=0.400000 pkt_pts=11 pkt_pts_time=0.440000 pkt_pts=13 pkt_pts_time=0.520000 pkt_pts=14 pkt_pts_time=0.560000 pkt_pts=15 pkt_pts_time=0.600000 pkt_pts=17 pkt_pts_time=0.680000 pkt_pts=18 pkt_pts_time=0.720000 pkt_pts=19 pkt_pts_time=0.760000 pkt_pts=21 pkt_pts_time=0.840000 pkt_pts=22 pkt_pts_time=0.880000 pkt_pts=24 pkt_pts_time=0.960000 pkt_pts=25 pkt_pts_time=1.000000 pkt_pts=26 pkt_pts_time=1.040000 pkt_pts=28 pkt_pts_time=1.120000 pkt_pts=29 pkt_pts_time=1.160000 pkt_pts=31 pkt_pts_time=1.240000 pkt_pts=32 pkt_pts_time=1.280000 pkt_pts=33 pkt_pts_time=1.320000 }}} -- -- Ticket URL: <https://trac.ffmpeg.org/ticket/9210#comment:1> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
#9210: Concat images produces wrong timings when duration is in milliseconds -------------------------------------+------------------------------------- Reporter: demet64 | Owner: (none) Type: defect | Status: new Priority: normal | Component: | undetermined Version: unspecified | Resolution: Keywords: | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+------------------------------------- Comment (by mkver): It seems as if this is due to rounding to a timebase of 1/25 somewhere. The exact timestamps in your example would be 0, 116, 232, 348, 464, 580, 696... which get rounded to 0, 120, 240, 360, 480, 600, 680... when using a timebase of 1/25. -- Ticket URL: <https://trac.ffmpeg.org/ticket/9210#comment:2> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
#9210: Concat images produces wrong timings when duration is in milliseconds -------------------------------------+------------------------------------- Reporter: demet64 | Owner: (none) Type: defect | Status: new Priority: normal | Component: | undetermined Version: unspecified | Resolution: Keywords: | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+------------------------------------- Comment (by demet64):
It seems as if this is due to rounding to a timebase of 1/25 somewhere.
This is what person from reddit thread I mentioned says too. The problem is that it happens on input stream and it seems there's no way you can specify timebase of the input stream (like you can set {{{-r}}} option on input for example) -- Ticket URL: <https://trac.ffmpeg.org/ticket/9210#comment:3> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
#9210: Concat images produces wrong timings when duration is in milliseconds -------------------------------------+------------------------------------- Reporter: demet64 | Owner: (none) Type: defect | Status: new Priority: normal | Component: | undetermined Version: unspecified | Resolution: Keywords: | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+------------------------------------- Comment (by Carl Eugen Hoyos): Please (test current FFmpeg git head and) provide the command line you tested together with the complete, uncut console output and the necessary input files to make this a valid ticket. -- Ticket URL: <https://trac.ffmpeg.org/ticket/9210#comment:4> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
#9210: Concat images produces wrong timings when duration is in milliseconds -------------------------------------+------------------------------------- Reporter: demet64 | Owner: (none) Type: defect | Status: new Priority: normal | Component: | undetermined Version: unspecified | Resolution: Keywords: concat | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+------------------------------------- Changes (by Carl Eugen Hoyos): * keywords: => concat -- Ticket URL: <https://trac.ffmpeg.org/ticket/9210#comment:5> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
#9210: Concat images produces wrong timings when duration is in milliseconds -------------------------------------+------------------------------------- Reporter: demet64 | Owner: (none) Type: defect | Status: new Priority: normal | Component: | undetermined Version: unspecified | Resolution: Keywords: concat | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+------------------------------------- Changes (by demet64): * Attachment "ffmpeg-20210501-201727.log" added. -- Ticket URL: <https://trac.ffmpeg.org/ticket/9210> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
#9210: Concat images produces wrong timings when duration is in milliseconds -------------------------------------+------------------------------------- Reporter: demet64 | Owner: (none) Type: defect | Status: new Priority: normal | Component: | undetermined Version: unspecified | Resolution: Keywords: concat | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+------------------------------------- Changes (by demet64): * Attachment "concat.txt" added. -- Ticket URL: <https://trac.ffmpeg.org/ticket/9210> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
#9210: Concat images produces wrong timings when duration is in milliseconds -------------------------------------+------------------------------------- Reporter: demet64 | Owner: (none) Type: defect | Status: new Priority: normal | Component: | undetermined Version: unspecified | Resolution: Keywords: concat | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+------------------------------------- Comment (by demet64): I don't know if input images are necessary. I tried the same concat file with different sets of pictures and it didn't have any impact on timecodes. -- Ticket URL: <https://trac.ffmpeg.org/ticket/9210#comment:6> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
#9210: Concat images produces wrong timings when duration is in milliseconds -------------------------------------+------------------------------------- Reporter: demet64 | Owner: (none) Type: defect | Status: new Priority: normal | Component: | undetermined Version: unspecified | Resolution: Keywords: concat | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+------------------------------------- Comment (by Andre LaBranche): The unwanted 25 fps does seem to be coming from `concat`. I tested that along with `image2` and found that `image2` honors the frame rate passed as a cli option. Here's a script that creates some sample images, does a concat run and an image2 run, and collects reports for each. {{{ #!/bin/zsh OUT=$(mktemp -d) CATFILE=${OUT}/catfile.txt pushd ${OUT} echo "generating some sample images with Imagemagik's 'convert' tool" for i in {1..60} do IMG=image-$(printf "%03d" ${i}).jpg convert -size 600x300 -gravity center -background black \ -fill purple label:${i} -units PixelsPerInch -density 254 ${IMG} echo "file '${IMG}'" >> ${CATFILE} echo "duration 0.016" >> ${CATFILE} done echo "Wrote sample ffmpeg concat input file: ${CATFILE}" CONCAT_CMD='ffmpeg -f concat -i ${CATFILE} -report concat.mkv 2> /dev/null' export FFREPORT=file=ffprobe-concat.log echo "Probing concat with:\n${CONCAT_CMD}" eval ${CONCAT_CMD} echo "Wrote video ${OUT}/concat.mkv" echo "Reading frame rate of concat.mkv..." ffprobe -v error -show_format -show_streams concat.mkv | grep 'frame_rate' IMAGE2_CMD="ffmpeg -f image2 -framerate 60 -i image-%03d.jpg image2.mkv 2> /dev/null" echo "\nProbing image2 with:\n${IMAGE2_CMD}" export FFREPORT=file=ffprobe-image2.log eval ${IMAGE2_CMD} echo "Wrote video ${OUT}/image2.mkv" echo "Reading frame rate of concat.mkv..." ffprobe -v error -show_format -show_streams image2.mkv | grep 'frame_rate' echo "\nFull reports for each run: " ls -1 ${OUT}/ffprobe*.log open ${OUT} popd }}} When run on my machine, it looks like this: {{{ andre@boom % ./duration_snooping.sh generating some sample images with Imagemagik's 'convert' tool Wrote sample ffmpeg concat input file: /var/folders/sc/q27bbsbn105gr0d08r3nd2jr0000gn/T/tmp.jAH5RBjv/catfile.txt Probing concat with: ffmpeg -f concat -i ${CATFILE} -report concat.mkv 2> /dev/null Wrote video /var/folders/sc/q27bbsbn105gr0d08r3nd2jr0000gn/T/tmp.jAH5RBjv/concat.mkv Reading frame rate of concat.mkv... r_frame_rate=25/1 avg_frame_rate=25/1 Probing image2 with: ffmpeg -f image2 -framerate 60 -i image-%03d.jpg image2.mkv 2> /dev/null Wrote video /var/folders/sc/q27bbsbn105gr0d08r3nd2jr0000gn/T/tmp.jAH5RBjv/image2.mkv Reading frame rate of concat.mkv... r_frame_rate=60/1 avg_frame_rate=60/1 Full reports for each run: /var/folders/sc/q27bbsbn105gr0d08r3nd2jr0000gn/T/tmp.jAH5RBjv/ffprobe- concat.log /var/folders/sc/q27bbsbn105gr0d08r3nd2jr0000gn/T/tmp.jAH5RBjv/ffprobe- image2.log }}} Here are the two reports from the above run: * https://youbeill.in/scrap/ffprobe-image2.log * https://youbeill.in/scrap/ffprobe-concat.log -- Ticket URL: <https://trac.ffmpeg.org/ticket/9210#comment:7> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
#9210: Concat images produces wrong timings when duration is in milliseconds -------------------------------------+------------------------------------- Reporter: demet64 | Owner: (none) Type: defect | Status: new Priority: normal | Component: | undetermined Version: unspecified | Resolution: Keywords: concat | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+------------------------------------- Comment (by Nicolas George): Replying to [comment:7 Andre LaBranche]:
The unwanted 25 fps does seem to be coming from `concat`. I tested that along with `image2` and found that `image2` honors the frame rate passed as a cli option.
image2 honors the `frame_rate` option, but you never gave that option to the `image2` instances below the concat demuxer. I would not oppose a patch to concat to add a `time_base` option. -- Ticket URL: <https://trac.ffmpeg.org/ticket/9210#comment:8> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
#9210: Concat images produces wrong timings when duration is in milliseconds -------------------------------------+------------------------------------ Reporter: demet64 | Owner: (none) Type: enhancement | Status: new Priority: wish | Component: avformat Version: git-master | Resolution: Keywords: concat | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+------------------------------------ Changes (by Carl Eugen Hoyos): * priority: normal => wish * type: defect => enhancement * version: unspecified => git-master * component: undetermined => avformat -- Ticket URL: <https://trac.ffmpeg.org/ticket/9210#comment:9> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
#9210: Concat images produces wrong timings when duration is in milliseconds -------------------------------------+------------------------------------ Reporter: demet64 | Owner: (none) Type: enhancement | Status: new Priority: wish | Component: avformat Version: git-master | Resolution: Keywords: concat | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+------------------------------------ Changes (by sycxyc): * cc: sycxyc (added) -- Ticket URL: <https://trac.ffmpeg.org/ticket/9210#comment:10> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
#9210: Concat images produces wrong timings when duration is in milliseconds -------------------------------------+------------------------------------ Reporter: demet64 | Owner: (none) Type: enhancement | Status: new Priority: wish | Component: avformat Version: git-master | Resolution: Keywords: concat | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+------------------------------------ Comment (by Brian): Can reproduce. {{{#!pwsh ❯ ffmpeg -version ffmpeg version N-118926-gd435b641a2-20250325 Copyright (c) 2000-2025 the FFmpeg developers built with gcc 14.2.0 (crosstool-NG 1.27.0.18_7458341) configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg- config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --disable-w32threads --enable-pthreads --enable-iconv --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-libxml2 --enable-lzma --enable-fontconfig --enable-libharfbuzz --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable- avisynth --enable-chromaprint --enable-libdav1d --enable-libdavs2 --enable-libdvdread --enable-libdvdnav --disable-libfdk-aac --enable- ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme --enable- libkvazaar --enable-libaribcaption --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp --enable-libzmq --enable-lv2 --enable-libvpl --enable-openal --enable- libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable- librubberband --enable-schannel --enable-sdl2 --enable-libsnappy --enable- libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable- libuavs3d --disable-libdrm --enable-vaapi --enable-libvidstab --enable- vulkan --enable-libshaderc --enable-libplacebo --disable-libvvenc --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-libs=-lgomp --extra-ldflags=-pthread --extra- ldexeflags= --cc=x86_64-w64-mingw32-gcc --cxx=x86_64-w64-mingw32-g++ --ar=x86_64-w64-mingw32-gcc-ar --ranlib=x86_64-w64-mingw32-gcc-ranlib --nm=x86_64-w64-mingw32-gcc-nm --extra-version=20250325 libavutil 59. 60.100 / 59. 60.100 libavcodec 61. 33.102 / 61. 33.102 libavformat 61. 9.107 / 61. 9.107 libavdevice 61. 4.100 / 61. 4.100 libavfilter 10. 9.100 / 10. 9.100 libswscale 8. 13.103 / 8. 13.103 libswresample 5. 4.100 / 5. 4.100 libpostproc 58. 4.100 / 58. 4.100 ❯ apngasm -v APNG Assembler v3.1.1 (frontend v3.1.0) ❯ ffmpeg -hide_banner -loglevel error -filter_complex color=white:1x1,format=rgb24 -vframes 1 white-pixel.png ❯ $durations = @( 120 90 90 120 90 90 90 90 120 90 ) ❯ apngasm ($durations | ForEach-Object { 'white-pixel.png'; $_ }) -o white-pixel-apngasm.apng .\white-pixel.png => Delay=(120/1000) sec .\white-pixel.png => Delay=(90/1000) sec .\white-pixel.png => Delay=(90/1000) sec .\white-pixel.png => Delay=(120/1000) sec .\white-pixel.png => Delay=(90/1000) sec .\white-pixel.png => Delay=(90/1000) sec .\white-pixel.png => Delay=(90/1000) sec .\white-pixel.png => Delay=(90/1000) sec .\white-pixel.png => Delay=(120/1000) sec .\white-pixel.png => Delay=(90/1000) sec 10 Frames white-pixel-apngasm.apng APNG assembled successfully => white-pixel-apngasm.apng ❯ "ffconcat version 1.0`n$(($durations | ForEach-Object { 'file white- pixel.png'; "duration $_`ms" }) -join "`n")" | Set-Content ffconcat.txt -NoNewline ❯ ffmpeg -hide_banner -loglevel trace -i ffconcat.txt -loop 0 white-pixel- ffmpeg.apng Splitting the commandline. Reading option '-hide_banner' ... matched as option 'hide_banner' (do not show program banner) with argument '1'. Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'trace'. Reading option '-i' ... matched as input url with argument 'ffconcat.txt'. Reading option '-loop' ... matched as AVOption 'loop' with argument '0'. Reading option 'white-pixel-ffmpeg.apng' ... matched as output url. Finished splitting the commandline. Parsing a group of options: global . Applying option hide_banner (do not show program banner) with argument 1. Applying option loglevel (set logging level) with argument trace. Successfully parsed a group of options. Parsing a group of options: input url ffconcat.txt. Successfully parsed a group of options. Opening an input file: ffconcat.txt. [AVFormatContext @ 0000000000149b40] Opening 'ffconcat.txt' for reading [file @ 0000000000149f80] Setting default whitelist 'file,crypto,data' Probing concat score:100 size:373 [concat @ 0000000000149b40] Format concat probed with size=2048 and score=100 [AVFormatContext @ 0000000000156140] Opening 'white-pixel.png' for reading Probing image2 score:50 size:90 Probing png_pipe score:99 size:90 [png_pipe @ 0000000000156140] Format png_pipe probed with size=2048 and score=99 [png_pipe @ 0000000000156140] Before avformat_find_stream_info() pos: 0 bytes read:90 seeks:0 nb_streams:1 [png_pipe @ 0000000000156140] stream 0: start_time: NOPTS duration: NOPTS [png_pipe @ 0000000000156140] format: start_time: NOPTS duration: NOPTS (estimate from bit rate) bitrate=0 kb/s [png_pipe @ 0000000000156140] After avformat_find_stream_info() pos: 90 bytes read:90 seeks:0 frames:1 [concat @ 0000000000149b40] Before avformat_find_stream_info() pos: 373 bytes read:373 seeks:0 nb_streams:1 [concat @ 0000000000149b40] file:0 stream:0 pts:0 pts_time:0 dts:0 dts_time:0 -> pts:0 pts_time:0 dts:0 dts_time:0 [concat @ 0000000000149b40] All info found [concat @ 0000000000149b40] stream 0: start_time: 0 duration: NOPTS [concat @ 0000000000149b40] format: start_time: 0 duration: 0.99 (estimate from stream) bitrate=3 kb/s [concat @ 0000000000149b40] After avformat_find_stream_info() pos: 373 bytes read:373 seeks:0 frames:1 Input #0, concat, from 'ffconcat.txt': Duration: 00:00:00.99, start: 0.000000, bitrate: 3 kb/s Stream #0:0, 1, 1/25: Video: png, 1 reference frame, rgb24(pc, gbr/unknown/unknown), 1x1 [SAR 1:1 DAR 1:1], 0/1, 25 fps, 25 tbr, 25 tbn Successfully opened the file. Parsing a group of options: output url white-pixel-ffmpeg.apng. Successfully parsed a group of options. Opening an output file: white-pixel-ffmpeg.apng. [out#0/apng @ 0000000000104040] No explicit maps, mapping streams automatically... [vost#0:0/apng @ 000000000014e600] Created video stream from input stream 0:0 detected 16 logical cores [file @ 00000000001cb240] Setting default whitelist 'file,crypto,data' Successfully opened the file. Stream mapping: Stream #0:0 -> #0:0 (png (native) -> apng (native)) [vost#0:0/apng @ 000000000014e600] Starting thread... [vf#0:0 @ 00000000000e3840] Starting thread... [vist#0:0/png @ 0000000000154740] [dec:png @ 000000000018a040] Starting thread... [in#0/concat @ 0000000000149780] Starting thread... Press [q] to stop, [?] for help [AVIOContext @ 0000000000156640] Statistics: 90 bytes read, 0 seeks [AVFormatContext @ 0000000000156140] Opening 'white-pixel.png' for reading Probing image2 score:50 size:90 Probing png_pipe score:99 size:90 [png_pipe @ 0000000000156140] Format png_pipe probed with size=2048 and score=99 [png_pipe @ 0000000000156140] Before avformat_find_stream_info() pos: 0 bytes read:90 seeks:0 nb_streams:1 [png_pipe @ 0000000000156140] stream 0: start_time: NOPTS duration: NOPTS [png_pipe @ 0000000000156140] format: start_time: NOPTS duration: NOPTS (estimate from bit rate) bitrate=0 kb/s [png_pipe @ 0000000000156140] After avformat_find_stream_info() pos: 90 bytes read:90 seeks:0 frames:1 [concat @ 0000000000149b40] file:1 stream:0 pts:0 pts_time:0 dts:0 dts_time:0 -> pts:3 pts_time:0.12 dts:3 dts_time:0.12 [AVIOContext @ 0000000000156400] Statistics: 90 bytes read, 0 seeks [AVFormatContext @ 0000000000156140] Opening 'white-pixel.png' for reading Probing image2 score:50 size:90 Probing png_pipe score:99 size:90 [png_pipe @ 0000000000156140] Format png_pipe probed with size=2048 and score=99 [png_pipe @ 0000000000156140] Before avformat_find_stream_info() pos: 0 bytes read:90 seeks:0 nb_streams:1 [png_pipe @ 0000000000156140] stream 0: start_time: NOPTS duration: NOPTS [png_pipe @ 0000000000156140] format: start_time: NOPTS duration: NOPTS (estimate from bit rate) bitrate=0 kb/s [png_pipe @ 0000000000156140] After avformat_find_stream_info() pos: 90 bytes read:90 seeks:0 frames:1 [concat @ 0000000000149b40] file:2 stream:0 pts:0 pts_time:0 dts:0 dts_time:0 -> pts:5 pts_time:0.2 dts:5 dts_time:0.2 [AVIOContext @ 0000000000156400] Statistics: 90 bytes read, 0 seeks [AVFormatContext @ 0000000000154a00] Opening 'white-pixel.png' for reading Probing image2 score:50 size:90 Probing png_pipe score:99 size:90 [png_pipe @ 0000000000154a00] Format png_pipe probed with size=2048 and score=99 [png_pipe @ 0000000000154a00] Before avformat_find_stream_info() pos: 0 bytes read:90 seeks:0 nb_streams:1 [png_pipe @ 0000000000154a00] stream 0: start_time: NOPTS duration: NOPTS [png_pipe @ 0000000000154a00] format: start_time: NOPTS duration: NOPTS (estimate from bit rate) bitrate=0 kb/s [png_pipe @ 0000000000154a00] After avformat_find_stream_info() pos: 90 bytes read:90 seeks:0 frames:1 [concat @ 0000000000149b40] file:3 stream:0 pts:0 pts_time:0 dts:0 dts_time:0 -> pts:8 pts_time:0.32 dts:8 dts_time:0.32 [AVIOContext @ 0000000000156140] Statistics: 90 bytes read, 0 seeks [AVFormatContext @ 0000000000154a00] Opening 'white-pixel.png' for reading Probing image2 score:50 size:90 Probing png_pipe score:99 size:90 [png_pipe @ 0000000000154a00] Format png_pipe probed with size=2048 and score=99 [png_pipe @ 0000000000154a00] Before avformat_find_stream_info() pos: 0 bytes read:90 seeks:0 nb_streams:1 [png_pipe @ 0000000000154a00] stream 0: start_time: NOPTS duration: NOPTS [png_pipe @ 0000000000154a00] format: start_time: NOPTS duration: NOPTS (estimate from bit rate) bitrate=0 kb/s [png_pipe @ 0000000000154a00] After avformat_find_stream_info() pos: 90 bytes read:90 seeks:0 frames:1 [concat @ 0000000000149b40] file:4 stream:0 pts:0 pts_time:0 dts:0 dts_time:0 -> pts:11 pts_time:0.44 dts:11 dts_time:0.44 [AVIOContext @ 0000000000156140] Statistics: 90 bytes read, 0 seeks [AVFormatContext @ 00000000049a5c00] Opening 'white-pixel.png' for reading Probing image2 score:50 size:90 Probing png_pipe score:99 size:90 [png_pipe @ 00000000049a5c00] Format png_pipe probed with size=2048 and score=99 [png_pipe @ 00000000049a5c00] Before avformat_find_stream_info() pos: 0 bytes read:90 seeks:0 nb_streams:1 [png_pipe @ 00000000049a5c00] stream 0: start_time: NOPTS duration: NOPTS [png_pipe @ 00000000049a5c00] format: start_time: NOPTS duration: NOPTS (estimate from bit rate) bitrate=0 kb/s [png_pipe @ 00000000049a5c00] After avformat_find_stream_info() pos: 90 bytes read:90 seeks:0 frames:1 [concat @ 0000000000149b40] file:5 stream:0 pts:0 pts_time:0 dts:0 dts_time:0 -> pts:13 pts_time:0.52 dts:13 dts_time:0.52 [AVIOContext @ 0000000000156140] Statistics: 90 bytes read, 0 seeks [AVFormatContext @ 00000000049a5cc0] Opening 'white-pixel.png' for reading Probing image2 score:50 size:90 Probing png_pipe score:99 size:90 [png_pipe @ 00000000049a5cc0] Format png_pipe probed with size=2048 and score=99 [png_pipe @ 00000000049a5cc0] Before avformat_find_stream_info() pos: 0 bytes read:90 seeks:0 nb_streams:1 [png_pipe @ 00000000049a5cc0] stream 0: start_time: NOPTS duration: NOPTS [png_pipe @ 00000000049a5cc0] format: start_time: NOPTS duration: NOPTS (estimate from bit rate) bitrate=0 kb/s [png_pipe @ 00000000049a5cc0] After avformat_find_stream_info() pos: 90 bytes read:90 seeks:0 frames:1 [concat @ 0000000000149b40] file:6 stream:0 pts:0 pts_time:0 dts:0 dts_time:0 -> pts:15 pts_time:0.6 dts:15 dts_time:0.6 [AVIOContext @ 0000000000156140] Statistics: 90 bytes read, 0 seeks [AVFormatContext @ 000000000014d8c0] Opening 'white-pixel.png' for reading Probing image2 score:50 size:90 Probing png_pipe score:99 size:90 [png_pipe @ 000000000014d8c0] Format png_pipe probed with size=2048 and score=99 [png_pipe @ 000000000014d8c0] Before avformat_find_stream_info() pos: 0 bytes read:90 seeks:0 nb_streams:1 [png_pipe @ 000000000014d8c0] stream 0: start_time: NOPTS duration: NOPTS [png_pipe @ 000000000014d8c0] format: start_time: NOPTS duration: NOPTS (estimate from bit rate) bitrate=0 kb/s [png_pipe @ 000000000014d8c0] After avformat_find_stream_info() pos: 90 bytes read:90 seeks:0 frames:1 [concat @ 0000000000149b40] file:7 stream:0 pts:0 pts_time:0 dts:0 dts_time:0 -> pts:17 pts_time:0.68 dts:17 dts_time:0.68 [AVIOContext @ 0000000000156140] Statistics: 90 bytes read, 0 seeks [AVFormatContext @ 000000000014d8c0] Opening 'white-pixel.png' for reading Probing image2 score:50 size:90 Probing png_pipe score:99 size:90 [png_pipe @ 000000000014d8c0] Format png_pipe probed with size=2048 and score=99 [png_pipe @ 000000000014d8c0] Before avformat_find_stream_info() pos: 0 bytes read:90 seeks:0 nb_streams:1 [png_pipe @ 000000000014d8c0] stream 0: start_time: NOPTS duration: NOPTS [png_pipe @ 000000000014d8c0] format: start_time: NOPTS duration: NOPTS (estimate from bit rate) bitrate=0 kb/s [png_pipe @ 000000000014d8c0] After avformat_find_stream_info() pos: 90 bytes read:90 seeks:0 frames:1 [concat @ 0000000000149b40] file:8 stream:0 pts:0 pts_time:0 dts:0 dts_time:0 -> pts:20 pts_time:0.8 dts:20 dts_time:0.8 [AVIOContext @ 0000000000156140] Statistics: 90 bytes read, 0 seeks [AVFormatContext @ 000000000014da00] Opening 'white-pixel.png' for reading Probing image2 score:50 size:90 Probing png_pipe score:99 size:90 [png_pipe @ 000000000014da00] Format png_pipe probed with size=2048 and score=99 [png_pipe @ 000000000014da00] Before avformat_find_stream_info() pos: 0 bytes read:90 seeks:0 nb_streams:1 [png_pipe @ 000000000014da00] stream 0: start_time: NOPTS duration: NOPTS [png_pipe @ 000000000014da00] format: start_time: NOPTS duration: NOPTS (estimate from bit rate) bitrate=0 kb/s [png_pipe @ 000000000014da00] After avformat_find_stream_info() pos: 90 bytes read:90 seeks:0 frames:1 [concat @ 0000000000149b40] file:9 stream:0 pts:0 pts_time:0 dts:0 dts_time:0 -> pts:23 pts_time:0.92 dts:23 dts_time:0.92 [in#0/concat @ 0000000000149780] EOF while reading input [in#0/concat @ 0000000000149780] Terminating thread with return code 0 (success) [vist#0:0/png @ 0000000000154740] [dec:png @ 000000000018a040] Decoder thread received EOF packet [graph -1 input from stream 0:0 @ 0000000000102a00] w:1 h:1 pixfmt:rgb24 tb:1/25 fr:25/1 sar:1/1 csp:gbr range:pc [format @ 0000000000102e40] Setting 'pix_fmts' to value 'rgb24|rgba|rgb48be|rgba64be|pal8|gray|ya8|gray16be|ya16be' [AVFilterGraph @ 000000000499aac0] query_formats: 4 queried, 9 merged, 0 already done, 0 delayed Output #0, apng, to 'white-pixel-ffmpeg.apng': Metadata: encoder : Lavf61.9.107 Stream #0:0, 0, 1/25: Video: apng, 1 reference frame, rgb24(pc, gbr/unknown/unknown, progressive), 1x1 [SAR 1:1 DAR 1:1], 0/1, q=2-31, 200 kb/s, 25 fps, 25 tbn Metadata: encoder : Lavc61.33.102 apng [out#0/apng @ 0000000000104040] Starting thread... [vist#0:0/png @ 0000000000154740] [dec:png @ 000000000018a040] Decoder returned EOF, finishing [vist#0:0/png @ 0000000000154740] [dec:png @ 000000000018a040] Terminating thread with return code 0 (success) [out_#0:0 @ 00000000001025c0] EOF on sink link out_#0:0:default. [vf#0:0 @ 00000000000e3840] Filtergraph returned EOF, finishing [vf#0:0 @ 00000000000e3840] All consumers returned EOF [vost#0:0/apng @ 000000000014e600] [enc:apng @ 0000000000150740] Encoder thread received EOF [vost#0:0/apng @ 000000000014e600] Terminating thread with return code 0 (success) [out#0/apng @ 0000000000104040] All streams finished [out#0/apng @ 0000000000104040] Terminating thread with return code 0 (success) [vf#0:0 @ 00000000000e3840] Terminating thread with return code 0 (success) [AVIOContext @ 0000000004970100] Statistics: 742 bytes written, 1 seeks, 1 writeouts [out#0/apng @ 0000000000104040] Output file #0 (white-pixel-ffmpeg.apng): [out#0/apng @ 0000000000104040] Output stream #0:0 (video): 10 frames encoded; 10 packets muxed (656 bytes); [out#0/apng @ 0000000000104040] Total: 10 packets (656 bytes) muxed [out#0/apng @ 0000000000104040] video:1KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 13.109756% frame= 10 fps=0.0 q=-0.0 Lsize= 1KiB time=00:00:00.96 bitrate= 6.2kbits/s speed=62.9x [in#0/concat @ 0000000000149780] Input file #0 (ffconcat.txt): [in#0/concat @ 0000000000149780] Input stream #0:0 (video): 10 packets read (900 bytes); 10 frames decoded; 0 decode errors; [in#0/concat @ 0000000000149780] Total: 10 packets (900 bytes) demuxed [AVIOContext @ 0000000000156140] Statistics: 90 bytes read, 0 seeks [AVIOContext @ 0000000000155900] Statistics: 373 bytes read, 0 seeks ❯ ffprobe -hide_banner -loglevel error -show_frames -i white-pixel- ffmpeg.apng | rg 'duration_time=\K[\d.]+' -oP 0.120000 0.080000 0.120000 0.120000 0.080000 0.080000 0.080000 0.120000 0.120000 0.120000 ❯ ffprobe -hide_banner -loglevel error -show_frames -i white-pixel- apngasm.apng | rg 'duration_time=\K[\d.]+' -oP 0.120000 0.090000 0.090000 0.120000 0.090000 0.090000 0.090000 0.090000 0.120000 0.090000 }}} I also found that for some reason the last frame has a good bit of delay added to it, regardless of whether or not ffconcat's used (I believe there's already an open ticket for this). What's odd's that other frames also exhibit a bit of frametime variance here. {{{#!pwsh ❯ ffmpeg -hide_banner -loglevel trace -i white-pixel-apngasm.apng -loop 0 white-pixel-apngasm-to-ffmpeg.apng Splitting the commandline. Reading option '-hide_banner' ... matched as option 'hide_banner' (do not show program banner) with argument '1'. Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'trace'. Reading option '-i' ... matched as input url with argument 'white-pixel- apngasm.apng'. Reading option '-loop' ... matched as AVOption 'loop' with argument '0'. Reading option 'white-pixel-apngasm-to-ffmpeg.apng' ... matched as output url. Finished splitting the commandline. Parsing a group of options: global . Applying option hide_banner (do not show program banner) with argument 1. Applying option loglevel (set logging level) with argument trace. Successfully parsed a group of options. Parsing a group of options: input url white-pixel-apngasm.apng. Successfully parsed a group of options. Opening an input file: white-pixel-apngasm.apng. [AVFormatContext @ 000000000070fc00] Opening 'white-pixel-apngasm.apng' for reading [file @ 0000000000710040] Setting default whitelist 'file,crypto,data' Probing apng score:100 size:754 Probing png_pipe score:99 size:754 [apng @ 000000000070fc00] Format apng probed with size=2048 and score=100 [apng @ 000000000070fc00] num_frames: 10, num_play: 0 [apng @ 000000000070fc00] Before avformat_find_stream_info() pos: 67 bytes read:754 seeks:0 nb_streams:1 [apng @ 000000000070fc00] decode_fctl_chunk: sequence_number: 0, width: 1, height: 1, x_offset: 0, y_offset: 0, delay_num: 120, delay_den: 1000, dispose_op: 0, blend_op: 0 [apng @ 000000000070fc00] decode_fctl_chunk: sequence_number: 1, width: 1, height: 1, x_offset: 0, y_offset: 0, delay_num: 90, delay_den: 1000, dispose_op: 0, blend_op: 0 [apng @ 000000000070fc00] decode_fctl_chunk: sequence_number: 3, width: 1, height: 1, x_offset: 0, y_offset: 0, delay_num: 90, delay_den: 1000, dispose_op: 0, blend_op: 0 [apng @ 000000000070fc00] decode_fctl_chunk: sequence_number: 5, width: 1, height: 1, x_offset: 0, y_offset: 0, delay_num: 120, delay_den: 1000, dispose_op: 0, blend_op: 0 [apng @ 000000000070fc00] decode_fctl_chunk: sequence_number: 7, width: 1, height: 1, x_offset: 0, y_offset: 0, delay_num: 90, delay_den: 1000, dispose_op: 0, blend_op: 0 [apng @ 000000000070fc00] decode_fctl_chunk: sequence_number: 9, width: 1, height: 1, x_offset: 0, y_offset: 0, delay_num: 90, delay_den: 1000, dispose_op: 0, blend_op: 0 [apng @ 000000000070fc00] decode_fctl_chunk: sequence_number: 11, width: 1, height: 1, x_offset: 0, y_offset: 0, delay_num: 90, delay_den: 1000, dispose_op: 0, blend_op: 0 [apng @ 000000000070fc00] decode_fctl_chunk: sequence_number: 13, width: 1, height: 1, x_offset: 0, y_offset: 0, delay_num: 90, delay_den: 1000, dispose_op: 0, blend_op: 0 [apng @ 000000000070fc00] decode_fctl_chunk: sequence_number: 15, width: 1, height: 1, x_offset: 0, y_offset: 0, delay_num: 120, delay_den: 1000, dispose_op: 0, blend_op: 0 [apng @ 000000000070fc00] decode_fctl_chunk: sequence_number: 17, width: 1, height: 1, x_offset: 0, y_offset: 0, delay_num: 90, delay_den: 1000, dispose_op: 0, blend_op: 0 [apng @ 000000000070fc00] rfps: 9.916667 0.019617 [apng @ 000000000070fc00] rfps: 10.000000 0.015556 [apng @ 000000000070fc00] rfps: 10.083333 0.012358 [apng @ 000000000070fc00] rfps: 10.166667 0.010023 [apng @ 000000000070fc00] rfps: 10.250000 0.008551 [apng @ 000000000070fc00] rfps: 10.333333 0.007943 Last message repeated 1 times [apng @ 000000000070fc00] rfps: 10.416667 0.008198 Last message repeated 1 times [apng @ 000000000070fc00] rfps: 10.500000 0.009317 Last message repeated 1 times [apng @ 000000000070fc00] rfps: 10.583333 0.011298 [apng @ 000000000070fc00] rfps: 10.666667 0.014143 [apng @ 000000000070fc00] rfps: 10.750000 0.017851 [apng @ 000000000070fc00] rfps: 22.583333 0.017851 [apng @ 000000000070fc00] rfps: 22.666667 0.014143 [apng @ 000000000070fc00] rfps: 22.750000 0.011298 [apng @ 000000000070fc00] rfps: 22.833333 0.009317 Last message repeated 1 times [apng @ 000000000070fc00] rfps: 22.916667 0.008198 Last message repeated 1 times [apng @ 000000000070fc00] rfps: 23.000000 0.007943 Last message repeated 1 times [apng @ 000000000070fc00] rfps: 23.083333 0.008551 [apng @ 000000000070fc00] rfps: 23.166667 0.010023 [apng @ 000000000070fc00] rfps: 23.250000 0.012358 [apng @ 000000000070fc00] rfps: 23.333333 0.015556 [apng @ 000000000070fc00] rfps: 23.416667 0.019617 [apng @ 000000000070fc00] rfps: 33.000000 0.006906 Last message repeated 1 times [apng @ 000000000070fc00] rfps: 44.000000 0.014143 [apng @ 000000000070fc00] rfps: 56.000000 0.014143 [apng @ 000000000070fc00] stream 0: start_time: NOPTS duration: NOPTS [apng @ 000000000070fc00] format: start_time: NOPTS duration: NOPTS (estimate from bit rate) bitrate=0 kb/s [apng @ 000000000070fc00] After avformat_find_stream_info() pos: 742 bytes read:754 seeks:0 frames:10 Input #0, apng, from 'white-pixel-apngasm.apng': Duration: N/A, bitrate: N/A Stream #0:0, 10, 1/100000: Video: apng, 1 reference frame, ya8(pc, gbr/unknown/unknown), 1x1, 0/1, 10.25 fps, 33 tbr, 100k tbn Successfully opened the file. Parsing a group of options: output url white-pixel-apngasm-to-ffmpeg.apng. Successfully parsed a group of options. Opening an output file: white-pixel-apngasm-to-ffmpeg.apng. [out#0/apng @ 00000000006ccfc0] No explicit maps, mapping streams automatically... [vost#0:0/apng @ 0000000000713b40] Created video stream from input stream 0:0 detected 16 logical cores [file @ 00000000006b9bc0] Setting default whitelist 'file,crypto,data' Successfully opened the file. Stream mapping: Stream #0:0 -> #0:0 (apng (native) -> apng (native)) [vost#0:0/apng @ 0000000000713b40] Starting thread... [vf#0:0 @ 00000000006d0280] Starting thread... [vist#0:0/apng @ 0000000000715140] [dec:apng @ 0000000000714440] Starting thread... [in#0/apng @ 000000000070f940] Starting thread... Press [q] to stop, [?] for help [in#0/apng @ 000000000070f940] EOF while reading input [in#0/apng @ 000000000070f940] Terminating thread with return code 0 (success) [vist#0:0/apng @ 0000000000715140] [dec:apng @ 0000000000714440] Decoder thread received EOF packet [graph -1 input from stream 0:0 @ 000000000078e500] w:1 h:1 pixfmt:ya8 tb:1/100000 fr:33/1 sar:0/1 csp:gbr range:pc [format @ 000000000078f1c0] Setting 'pix_fmts' to value 'rgb24|rgba|rgb48be|rgba64be|pal8|gray|ya8|gray16be|ya16be' [AVFilterGraph @ 000000000078b980] query_formats: 4 queried, 9 merged, 0 already done, 0 delayed Output #0, apng, to 'white-pixel-apngasm-to-ffmpeg.apng': Metadata: encoder : Lavf61.9.107 Stream #0:0, 0, 1/33: Video: apng, 1 reference frame, ya8(pc, gbr/unknown/unknown, progressive), 1x1, 0/1, q=2-31, 200 kb/s, 33 fps, 33 tbn Metadata: encoder : Lavc61.33.102 apng [out#0/apng @ 00000000006ccfc0] Starting thread... [vist#0:0/apng @ 0000000000715140] [dec:apng @ 0000000000714440] Decoder returned EOF, finishing [vist#0:0/apng @ 0000000000715140] [dec:apng @ 0000000000714440] Terminating thread with return code 0 (success) [out_#0:0 @ 000000000078e840] EOF on sink link out_#0:0:default. [vf#0:0 @ 00000000006d0280] Filtergraph returned EOF, finishing [vf#0:0 @ 00000000006d0280] All consumers returned EOF [vost#0:0/apng @ 0000000000713b40] [enc:apng @ 0000000000718b40] Encoder thread received EOF [vost#0:0/apng @ 0000000000713b40] Terminating thread with return code 0 (success) [out#0/apng @ 00000000006ccfc0] All streams finished [vf#0:0 @ 00000000006d0280] Terminating thread with return code 0 (success) [out#0/apng @ 00000000006ccfc0] Terminating thread with return code 0 (success) [AVIOContext @ 000000000076ce40] Statistics: 732 bytes written, 1 seeks, 1 writeouts [out#0/apng @ 00000000006ccfc0] Output file #0 (white-pixel-apngasm-to- ffmpeg.apng): [out#0/apng @ 00000000006ccfc0] Output stream #0:0 (video): 10 frames encoded; 10 packets muxed (646 bytes); [out#0/apng @ 00000000006ccfc0] Total: 10 packets (646 bytes) muxed [out#0/apng @ 00000000006ccfc0] video:1KiB audio:0KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 13.312693% frame= 10 fps=0.0 q=-0.0 Lsize= 1KiB time=00:00:01.00 bitrate= 5.9kbits/s speed= 171x [in#0/apng @ 000000000070f940] Input file #0 (white-pixel-apngasm.apng): [in#0/apng @ 000000000070f940] Input stream #0:0 (video): 10 packets read (675 bytes); 10 frames decoded; 0 decode errors; [in#0/apng @ 000000000070f940] Total: 10 packets (675 bytes) demuxed [AVIOContext @ 0000000000713140] Statistics: 754 bytes read, 0 seeks ❯ ffprobe -hide_banner -loglevel error -show_frames -i white-pixel- apngasm-to-ffmpeg.apng | rg 'duration_time=\K[\d.]+' -oP 0.121210 0.090910 0.090910 0.121210 0.090910 0.090910 0.090910 0.090910 0.121210 0.121210 }}} -- Ticket URL: <https://trac.ffmpeg.org/ticket/9210#comment:11> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
#9210: Malapropos timebase preset for "concat" demuxer? ------------------------------------+------------------------------------ Reporter: demet64 | Owner: (none) Type: defect | Status: new Priority: normal | Component: avformat Version: git-master | Resolution: Keywords: concat | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 1 | ------------------------------------+------------------------------------ Changes (by MasterQuestionable): * analyzed: 0 => 1 * cc: MasterQuestionable (added) * priority: wish => normal * summary: Concat images produces wrong timings when duration is in milliseconds => Malapropos timebase preset for "concat" demuxer? * type: enhancement => defect Comment: ͏ https://old.reddit.com/r/ffmpeg/comments/e1o3hv/ffconcat_filter_with_millise... ͏ . ͏ Maybe such input shouldn't have any time base at all? ͏ https://github.com/MasterInQuestion/talk/discussions/3#issuecomment-15468200... ͏ Refer also: ͏ https://trac.ffmpeg.org/ticket/11146#comment:21 ͏ https://trac.ffmpeg.org/ticket/11247#comment:12 -- Ticket URL: <https://trac.ffmpeg.org/ticket/9210#comment:12> FFmpeg <https://ffmpeg.org> FFmpeg issue tracker
participants (1)
-
FFmpeg