Opened 12 years ago
Closed 12 years ago
#2543 closed defect (duplicate)
ffmpeg fails to mux DVB subtitles into mpeg2 transport stream
Reported by: | Tim | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | undetermined |
Version: | unspecified | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
Summary of the bug:
When using ffmpeg to transcode incoming mpeg2ts, selecting a dvb_subtitle stream for remux will cause ffmpeg to report "Application provided invalid, non monotonically increasing dts to muxer in stream".
If a stream copy is used rather than a remux, ffmpeg exhibits an erratic output bitrate, in synchronization with dvb subtitle packets. I suspect this may be because of the incorrect DTS presented to the mux, though nothing is logged via debug.
However, the input stream I am using displays the DVB subtitles correctly when presented to a set top box via DVB-C.
How to reproduce:
ffmpeg -re -i [input source] -f mpegts -map 0:0 -map 0:1 -map 0:2 -map 0:5 -r 25 -flags +ildct+ilme -c:a:0 copy -c:a:1 copy -filter:v yadif=1:-1,scale=720:576,tinterlace=5 -aspect 16:9 -c:v libx264 -preset fast -b:v 4000000 -maxrate 4000000 -bufsize 4000000 -threads 0 -muxrate 4500000 -vprofile main -level 2.1 -strict experimental -c:s:0 dvb_subtitle udp://239.255.128.7:1234?pkt_size=1316
Console output:
ffmpeg version N-52835-g004779c Copyright (c) 2000-2013 the FFmpeg developers
built on May 7 2013 12:15:30 with gcc 4.4.5 (Debian 4.4.5-8)
configuration: --enable-libx264 --enable-gpl --enable-pthreads --enable-libvpx --disable-ffplay --disable-ffserver --disable-shared --enable-debug
libavutil 52. 29.100 / 52. 29.100
libavcodec 55. 7.100 / 55. 7.100
libavformat 55. 4.101 / 55. 4.101
libavdevice 55. 0.100 / 55. 0.100
libavfilter 3. 63.101 / 3. 63.101
libswscale 2. 2.100 / 2. 2.100
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 3.100 / 52. 3.100
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] non-existing PPS referenced
[h264 @ 0x2a93200] non-existing PPS 0 referenced
[h264 @ 0x2a93200] decode_slice_header error
[h264 @ 0x2a93200] no frame!
[h264 @ 0x2a93200] mmco: unref short failure
Last message repeated 5 times
[mpegts @ 0x2a8f400] max_analyze_duration 5000000 reached at 5024000 microseconds
[mpegts @ 0x2a8f400] PES packet size mismatch
Last message repeated 2 times
Input #0, mpegts, from 'tv1.ts':
Duration: 21:26:02.81, start: 168445.431478, bitrate: 1 kb/s
Program 1200
Metadata:
service_name :
service_provider:
Stream #0:0[0x10e]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 50 tbr, 90k tbn, 50 tbc
Stream #0:1[0x140](eng): Audio: aac_latm ([17][0][0][0] / 0x0011), 48000 Hz, stereo, fltp
Stream #0:2[0x145](ita): Audio: aac_latm ([17][0][0][0] / 0x0011), 48000 Hz, stereo, fltp (visual impaired)
Stream #0:3[0x1a5](eng): Audio: ac3 ([6][0][0][0] / 0x0006), 48000 Hz, 5.1(side), fltp, 384 kb/s
Stream #0:4[0x3f2](eng): Subtitle: dvb_teletext ([6][0][0][0] / 0x0006)
Stream #0:5[0x42e](eng): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006) (hearing impaired)
Duplicate formats in avfilter_merge_formats() detected
[libx264 @ 0x2b84300] interlace + weightp is not implemented
[libx264 @ 0x2b84300] using SAR=64/45
[libx264 @ 0x2b84300] frame MB size (45x36) > level limit (792)
[libx264 @ 0x2b84300] DPB size (4 frames, 2488320 bytes) > level limit (2 frames, 1824768 bytes)
[libx264 @ 0x2b84300] MB rate (40500) > level limit (19800)
[libx264 @ 0x2b84300] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX
[libx264 @ 0x2b84300] profile Main, level 2.1
Output #0, mpegts, to 'udp://239.255.128.7:1234?pkt_size=1316':
Metadata:
encoder : Lavf55.4.101
Stream #0:0: Video: h264 (libx264), yuv420p, 720x576 [SAR 64:45 DAR 16:9], q=-1--1, 4000 kb/s, 90k tbn, 25 tbc
Stream #0:1(eng): Audio: aac_latm ([17][0][0][0] / 0x0011), 48000 Hz, stereo
Stream #0:2(ita): Audio: aac_latm ([17][0][0][0] / 0x0011), 48000 Hz, stereo (visual impaired)
Stream #0:3(eng): Subtitle: dvb_subtitle (dvbsub) (hearing impaired)
Stream mapping:
Stream #0:0 -> #0:0 (h264 -> libx264)
Stream #0:1 -> #0:1 (copy)
Stream #0:2 -> #0:2 (copy)
Stream #0:5 -> #0:3 (dvbsub -> dvbsub)
Press [q] to stop, ? for help
[h264 @ 0x4f2f6c0] reference picture missing during reorder
Last message repeated 1 times
[h264 @ 0x4f2f6c0] Missing reference picture, default is 0
[h264 @ 0x4f2f6c0] decode_slice_header error
[h264 @ 0x50531e0] mmco: unref short failure
Last message repeated 1 times
[h264 @ 0x527a620] reference picture missing during reorder
[h264 @ 0x527a620] Missing reference picture, default is 65412
[h264 @ 0x52e8aa0] mmco: unref short failure
Last message repeated 1 times
Application provided invalid, non monotonically increasing dts to muxer in stream 3: 3068819 >= 659519
Application provided invalid, non monotonically increasing dts to muxer in stream 3: 3359519 >= 849419
frame= 407 fps= 23 q=-1.0 Lsize= 21708kB time=00:00:39.43 bitrate=4509.2kbits/s dup=44 drop=0
video:6808kB audio:251kB subtitle:19 global headers:0kB muxing overhead 206.692226%
[libx264 @ 0x2b84300] frame I:8 Avg QP:10.21 size:108625
[libx264 @ 0x2b84300] frame P:122 Avg QP:14.09 size: 36572
[libx264 @ 0x2b84300] frame B:277 Avg QP:17.55 size: 5922
[libx264 @ 0x2b84300] consecutive B-frames: 6.1% 6.9% 7.4% 79.6%
[libx264 @ 0x2b84300] mb I I16..4: 14.9% 0.0% 85.1%
[libx264 @ 0x2b84300] mb P I16..4: 1.8% 0.0% 8.1% P16..4: 26.1% 30.2% 21.3% 0.0% 0.0% skip:12.5%
[libx264 @ 0x2b84300] mb B I16..4: 1.4% 0.0% 0.9% B16..8: 19.4% 13.4% 2.2% direct:18.5% skip:44.2% L0:33.1% L1:39.4% BI:27.5%
[libx264 @ 0x2b84300] field mbs: intra: 22.4% inter:0.8% skip:0.9%
[libx264 @ 0x2b84300] coded y,uvDC,uvAC intra: 89.2% 94.1% 87.9% inter: 35.1% 36.9% 11.9%
[libx264 @ 0x2b84300] i16 v,h,dc,p: 32% 14% 34% 20%
[libx264 @ 0x2b84300] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 17% 11% 6% 7% 9% 6% 9% 6%
[libx264 @ 0x2b84300] i8c dc,h,v,p: 41% 20% 28% 11%
[libx264 @ 0x2b84300] ref P L0: 71.4% 28.4% 0.1% 0.1%
[libx264 @ 0x2b84300] ref B L0: 86.4% 13.6% 0.0% 0.0%
[libx264 @ 0x2b84300] ref B L1: 96.1% 3.9%
[libx264 @ 0x2b84300] kb/s:3425.57
Please note that for purposes of diagnosis, I have commented out "return AVERROR(EINVAL);" from line 460 of libavformat/mux.c so ffmpeg proceeds with the mux with the broken timestamp. This results in the set top box presenting the subtitle ~20 seconds from where it should be.
It is also worth noting, that analysis of this source SPTS with an Acterna DTS330 indicates that the timestamps across video, audio and dvb subtitle streams are correct. I can only suspect that ffmpeg is extracting an incorrect timestamp.
I can provide source stream captures.
Change History (4)
comment:1 by , 12 years ago
comment:2 by , 12 years ago
I can only confirm that it is present in the git version listed above, and version 1.2.
comment:3 by , 12 years ago
Priority: | important → normal |
---|
Is there a difference between this ticket and #2024 ?
comment:4 by , 12 years ago
Resolution: | → duplicate |
---|---|
Status: | new → closed |
Please reopen if you believe that this is not a duplicate of ticket #2024.
Is this a regression? (Did it work with an older version of FFmpeg?)