Opened 5 years ago
Last modified 5 years ago
#8297 new defect
MPEG-TS with -muxrate gets confused by a start pts not 0
Reported by: | Roman Huy-Prech | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | undetermined |
Version: | git-master | Keywords: | mpegts copyts |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
Summary of the bug:
When combining -muxrate with -output_ts_offset >0 or -copyts (when the copied start ts > 0) the muxer takes that time from 0 to start ts into account and creates huge outputs (muxing overhead / bitrate grows with start ts).
Here are two outputs, first with 0 output_ts_offset, then with 200. The first one comes pretty close to the requested muxrate of 300k with 301.4k, the second one has 3318.3k.
How to reproduce:
% ffmpeg -f lavfi -i testsrc -t 20 -output_ts_offset 0 -f mpegts -muxrate 300000 -c:v libx264 -y /dev/null ffmpeg version 4.2.1 Copyright (c) 2000-2019 the FFmpeg developers built with Apple clang version 11.0.0 (clang-1100.0.33.8) configuration: --prefix=/usr/local/Cellar/ffmpeg/4.2.1_1 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags='-I/Library/Java/JavaVirtualMachines/adoptopenjdk-13.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/adoptopenjdk-13.jdk/Contents/Home/include/darwin -fno-stack-check' --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libmp3lame --enable-libopus --enable-librubberband --enable-libsnappy --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --disable-libjack --disable-indev=jack libavutil 56. 31.100 / 56. 31.100 libavcodec 58. 54.100 / 58. 54.100 libavformat 58. 29.100 / 58. 29.100 libavdevice 58. 8.100 / 58. 8.100 libavfilter 7. 57.100 / 7. 57.100 libavresample 4. 0. 0 / 4. 0. 0 libswscale 5. 5.100 / 5. 5.100 libswresample 3. 5.100 / 3. 5.100 libpostproc 55. 5.100 / 55. 5.100 Input #0, lavfi, from 'testsrc': Duration: N/A, start: 0.000000, bitrate: N/A Stream #0:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 320x240 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264)) Press [q] to stop, [?] for help [libx264 @ 0x7fe406010800] using SAR=1/1 [libx264 @ 0x7fe406010800] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 [libx264 @ 0x7fe406010800] profile High 4:4:4 Predictive, level 1.3, 4:4:4 8-bit Output #0, mpegts, to '/dev/null': Metadata: encoder : Lavf58.29.100 Stream #0:0: Video: h264 (libx264), yuv444p, 320x240 [SAR 1:1 DAR 4:3], q=-1--1, 25 fps, 90k tbn, 25 tbc Metadata: encoder : Lavc58.54.100 libx264 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1 frame= 500 fps=0.0 q=-1.0 Lsize= 731kB time=00:00:19.88 bitrate= 301.4kbits/s speed=56.4x video:83kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 776.126770% [libx264 @ 0x7fe406010800] frame I:2 Avg QP:15.01 size: 3525 [libx264 @ 0x7fe406010800] frame P:135 Avg QP:13.52 size: 455 [libx264 @ 0x7fe406010800] frame B:363 Avg QP:13.87 size: 47 [libx264 @ 0x7fe406010800] consecutive B-frames: 1.0% 0.0% 19.8% 79.2% [libx264 @ 0x7fe406010800] mb I I16..4: 71.2% 0.0% 28.8% [libx264 @ 0x7fe406010800] mb P I16..4: 3.2% 0.0% 0.8% P16..4: 7.3% 3.8% 2.6% 0.0% 0.0% skip:82.3% [libx264 @ 0x7fe406010800] mb B I16..4: 0.2% 0.0% 0.0% B16..8: 4.0% 0.1% 0.0% direct: 0.1% skip:95.7% L0:53.9% L1:41.7% BI: 4.3% [libx264 @ 0x7fe406010800] coded y,u,v intra: 9.9% 10.2% 8.9% inter: 0.7% 0.7% 0.6% [libx264 @ 0x7fe406010800] i16 v,h,dc,p: 62% 22% 2% 14% [libx264 @ 0x7fe406010800] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 28% 56% 12% 1% 1% 1% 0% 1% 0% [libx264 @ 0x7fe406010800] Weighted P-Frames: Y:0.0% UV:0.0% [libx264 @ 0x7fe406010800] ref P L0: 69.4% 6.0% 20.9% 3.7% [libx264 @ 0x7fe406010800] ref B L0: 55.2% 41.9% 2.9% [libx264 @ 0x7fe406010800] ref B L1: 97.6% 2.4% [libx264 @ 0x7fe406010800] kb/s:34.20
% ffmpeg -f lavfi -i testsrc -t 20 -output_ts_offset 200 -f mpegts -muxrate 300000 -c:v libx264 -y /dev/null ffmpeg version 4.2.1 Copyright (c) 2000-2019 the FFmpeg developers built with Apple clang version 11.0.0 (clang-1100.0.33.8) configuration: --prefix=/usr/local/Cellar/ffmpeg/4.2.1_1 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags='-I/Library/Java/JavaVirtualMachines/adoptopenjdk-13.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/adoptopenjdk-13.jdk/Contents/Home/include/darwin -fno-stack-check' --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libmp3lame --enable-libopus --enable-librubberband --enable-libsnappy --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --disable-libjack --disable-indev=jack libavutil 56. 31.100 / 56. 31.100 libavcodec 58. 54.100 / 58. 54.100 libavformat 58. 29.100 / 58. 29.100 libavdevice 58. 8.100 / 58. 8.100 libavfilter 7. 57.100 / 7. 57.100 libavresample 4. 0. 0 / 4. 0. 0 libswscale 5. 5.100 / 5. 5.100 libswresample 3. 5.100 / 3. 5.100 libpostproc 55. 5.100 / 55. 5.100 Input #0, lavfi, from 'testsrc': Duration: N/A, start: 0.000000, bitrate: N/A Stream #0:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 320x240 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264)) Press [q] to stop, [?] for help [libx264 @ 0x7f8885806e00] using SAR=1/1 [libx264 @ 0x7f8885806e00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 [libx264 @ 0x7f8885806e00] profile High 4:4:4 Predictive, level 1.3, 4:4:4 8-bit Output #0, mpegts, to '/dev/null': Metadata: encoder : Lavf58.29.100 Stream #0:0: Video: h264 (libx264), yuv444p, 320x240 [SAR 1:1 DAR 4:3], q=-1--1, 25 fps, 90k tbn, 25 tbc Metadata: encoder : Lavc58.54.100 libx264 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1 frame= 500 fps=0.0 q=-1.0 Lsize= 8053kB time=00:00:19.88 bitrate=3318.3kbits/s speed= 58x video:83kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 9545.531250% [libx264 @ 0x7f8885806e00] frame I:2 Avg QP:15.01 size: 3525 [libx264 @ 0x7f8885806e00] frame P:135 Avg QP:13.52 size: 455 [libx264 @ 0x7f8885806e00] frame B:363 Avg QP:13.87 size: 47 [libx264 @ 0x7f8885806e00] consecutive B-frames: 1.0% 0.0% 19.8% 79.2% [libx264 @ 0x7f8885806e00] mb I I16..4: 71.2% 0.0% 28.8% [libx264 @ 0x7f8885806e00] mb P I16..4: 3.2% 0.0% 0.8% P16..4: 7.3% 3.8% 2.6% 0.0% 0.0% skip:82.3% [libx264 @ 0x7f8885806e00] mb B I16..4: 0.2% 0.0% 0.0% B16..8: 4.0% 0.1% 0.0% direct: 0.1% skip:95.7% L0:53.9% L1:41.7% BI: 4.3% [libx264 @ 0x7f8885806e00] coded y,u,v intra: 9.9% 10.2% 8.9% inter: 0.7% 0.7% 0.6% [libx264 @ 0x7f8885806e00] i16 v,h,dc,p: 62% 22% 2% 14% [libx264 @ 0x7f8885806e00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 28% 56% 12% 1% 1% 1% 0% 1% 0% [libx264 @ 0x7f8885806e00] Weighted P-Frames: Y:0.0% UV:0.0% [libx264 @ 0x7f8885806e00] ref P L0: 69.4% 6.0% 20.9% 3.7% [libx264 @ 0x7f8885806e00] ref B L0: 55.2% 41.9% 2.9% [libx264 @ 0x7f8885806e00] ref B L1: 97.6% 2.4% [libx264 @ 0x7f8885806e00] kb/s:34.20
Change History (3)
comment:1 by , 5 years ago
Component: | ffmpeg → undetermined |
---|---|
Keywords: | mpegts added; mpeg-ts muxrate pts removed |
Version: | 4.2 → unspecified |
comment:2 by , 5 years ago
Yes (only pasting output of the 200 ts offsetted one, ffmpeg just built from head):
$ ./ffmpeg -f lavfi -i testsrc -t 20 -output_ts_offset 200 -f mpegts -muxrate 300000 -c:v libx264 -y /dev/null ffmpeg version N-95430-g9c820ebe90 Copyright (c) 2000-2019 the FFmpeg developers built with Apple LLVM version 10.0.1 (clang-1001.0.46.2) configuration: --prefix=/usr/local --enable-gpl --enable-nonfree --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libopus --enable-libxvid --samples=fate-suite/ libavutil 56. 35.101 / 56. 35.101 libavcodec 58. 59.102 / 58. 59.102 libavformat 58. 33.100 / 58. 33.100 libavdevice 58. 9.100 / 58. 9.100 libavfilter 7. 63.100 / 7. 63.100 libswscale 5. 6.100 / 5. 6.100 libswresample 3. 6.100 / 3. 6.100 libpostproc 55. 6.100 / 55. 6.100 Input #0, lavfi, from 'testsrc': Duration: N/A, start: 0.000000, bitrate: N/A Stream #0:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 320x240 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264)) Press [q] to stop, [?] for help [libx264 @ 0x7ffdf900a800] using SAR=1/1 [libx264 @ 0x7ffdf900a800] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 [libx264 @ 0x7ffdf900a800] profile High 4:4:4 Predictive, level 1.3, 4:4:4 8-bit Output #0, mpegts, to '/dev/null': Metadata: encoder : Lavf58.33.100 Stream #0:0: Video: h264 (libx264), yuv444p, 320x240 [SAR 1:1 DAR 4:3], q=-1--1, 25 fps, 90k tbn, 25 tbc Metadata: encoder : Lavc58.59.102 libx264 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A frame= 500 fps=0.0 q=-1.0 Lsize= 8052kB time=00:00:19.88 bitrate=3318.2kbits/s speed=57.1x video:83kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 9545.311523% [libx264 @ 0x7ffdf900a800] frame I:2 Avg QP:15.01 size: 3525 [libx264 @ 0x7ffdf900a800] frame P:135 Avg QP:13.52 size: 455 [libx264 @ 0x7ffdf900a800] frame B:363 Avg QP:13.87 size: 47 [libx264 @ 0x7ffdf900a800] consecutive B-frames: 1.0% 0.0% 19.8% 79.2% [libx264 @ 0x7ffdf900a800] mb I I16..4: 71.2% 0.0% 28.8% [libx264 @ 0x7ffdf900a800] mb P I16..4: 3.2% 0.0% 0.8% P16..4: 7.3% 3.8% 2.6% 0.0% 0.0% skip:82.3% [libx264 @ 0x7ffdf900a800] mb B I16..4: 0.2% 0.0% 0.0% B16..8: 4.0% 0.1% 0.0% direct: 0.1% skip:95.7% L0:53.9% L1:41.7% BI: 4.3% [libx264 @ 0x7ffdf900a800] coded y,u,v intra: 9.9% 10.2% 8.9% inter: 0.7% 0.7% 0.6% [libx264 @ 0x7ffdf900a800] i16 v,h,dc,p: 62% 22% 2% 14% [libx264 @ 0x7ffdf900a800] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 28% 56% 12% 1% 1% 1% 0% 1% 0% [libx264 @ 0x7ffdf900a800] Weighted P-Frames: Y:0.0% UV:0.0% [libx264 @ 0x7ffdf900a800] ref P L0: 69.4% 6.0% 20.9% 3.7% [libx264 @ 0x7ffdf900a800] ref B L0: 55.2% 41.9% 2.9% [libx264 @ 0x7ffdf900a800] ref B L1: 97.6% 2.4% [libx264 @ 0x7ffdf900a800] kb/s:34.20
comment:3 by , 5 years ago
Version: | unspecified → git-master |
---|
Note:
See TracTickets
for help on using tickets.
Is the issue reproducible with current FFmpeg git head, the only version supported here?