On Tue, 30 Sep 2014 12:01:33 +0300 Petri Hintukainen <phint...@gmail.com> wrote:
> Hello, > > Missing DTS combined with non-monotonic PTS seems to cause some > problems. This is with the file from ticket #2208 (I added dumping > timestamps to demuxer and muxer): > > > $ ../ffmpeg -i orig/track_06\ -\ Subtitle.sup -scodec copy 6.sup > ffmpeg version N-66546-gea74007 Copyright (c) 2000-2014 the FFmpeg > developers > built on Sep 30 2014 11:10:08 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1) > configuration: > libavutil 54. 7.101 / 54. 7.101 > libavcodec 56. 1.101 / 56. 1.101 > libavformat 56. 7.101 / 56. 7.101 > libavdevice 56. 1.100 / 56. 1.100 > libavfilter 5. 1.102 / 5. 1.102 > libswscale 3. 1.100 / 3. 1.100 > libswresample 1. 1.100 / 1. 1.100 > IN pts 00255314 dts 00000000 > Input #0, sup, from 'orig/track_06 - Subtitle.sup': > Duration: N/A, start: 2.836822, bitrate: N/A > Stream #0:0: Subtitle: hdmv_pgs_subtitle, 1920x1080 > Output #0, sup, to '6.sup': > Metadata: > encoder : Lavf56.7.101 > Stream #0:0: Subtitle: hdmv_pgs_subtitle, 1920x1080 > Stream mapping: > Stream #0:0 -> #0:0 (copy) > Press [q] to stop, [?] for help > OUT pts 00000000 dts 00000000 > IN pts 00255037 dts 00000000 > OUT pts 00000000 dts 00000000 > IN pts 00249205 dts 00000000 > [sup @ 0x241f4e0] Application provided invalid, non monotonically > increasing dts to muxer in stream 0: -277 >= -6109 > av_interleaved_write_frame(): Invalid argument > size= 0kB time=00:00:00.00 bitrate=N/A > video:0kB audio:0kB subtitle:1kB other streams:0kB global headers:0kB > muxing overhead: unknown > Conversion failed! The DTS in this file are indeed decreasing sometimes. First packet: pts=255314 pts_time=2.836822 dts=255314 dts_time=2.836822 Second packet: pts=255037 pts_time=2.833744 dts=255037 dts_time=2.833744 > > Also note that timestamps are re-positioned to start from 0. This may be > problematic, it requires manually synchronizing subtitles to the video. "Rebasing" the timestamps is apparently the normal operation of ffmpeg.c, there's probably a way to make it stop doing that. > Remuxing from the original .m2ts file works just well: > > > $ ffmpeg -i orig/00038.m2ts -map 0:6 -scodec copy 6.sup > ffmpeg version N-66546-gea74007 Copyright (c) 2000-2014 the FFmpeg developers > built on Sep 30 2014 11:10:08 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1) > configuration: > libavutil 54. 7.101 / 54. 7.101 > libavcodec 56. 1.101 / 56. 1.101 > libavformat 56. 7.101 / 56. 7.101 > libavdevice 56. 1.100 / 56. 1.100 > libavfilter 5. 1.102 / 5. 1.102 > libswscale 3. 1.100 / 3. 1.100 > libswresample 1. 1.100 / 1. 1.100 > [NULL @ 0x1bf9ba0] start time for stream 6 is not set in > estimate_timings_from_pts > [NULL @ 0x1c146e0] start time for stream 7 is not set in > estimate_timings_from_pts > [NULL @ 0x1c151c0] start time for stream 8 is not set in > estimate_timings_from_pts > [mpegts @ 0x1bf1ca0] Could not find codec parameters for stream 6 (Subtitle: > hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)): unspecified size > Consider increasing the value for the 'analyzeduration' and 'probesize' > options > [mpegts @ 0x1bf1ca0] Could not find codec parameters for stream 7 (Subtitle: > hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)): unspecified size > Consider increasing the value for the 'analyzeduration' and 'probesize' > options > [mpegts @ 0x1bf1ca0] Could not find codec parameters for stream 8 (Subtitle: > hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)): unspecified size > Consider increasing the value for the 'analyzeduration' and 'probesize' > options > Input #0, mpegts, from 'orig/00038.m2ts': > Duration: 00:00:43.90, start: 11.650667, bitrate: 35145 kb/s > Program 1 > Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448), yuv420p, > 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc > Stream #0:1[0x1100]: Audio: truehd (AC-3 / 0x332D4341), 48000 Hz, 7.1, > s32 (24 bit) > Stream #0:2[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), > fltp, 640 kb/s > Stream #0:3[0x1101]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, > fltp, 320 kb/s > Stream #0:4[0x1102]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, > fltp, 320 kb/s > Stream #0:5[0x1200]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / > 0x0090), 1920x1080 > Stream #0:6[0x1201]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090) > Stream #0:7[0x1202]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090) > Stream #0:8[0x1203]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090) > Output #0, sup, to '6.sup': > Metadata: > encoder : Lavf56.7.101 > Stream #0:0: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090) > Stream mapping: > Stream #0:6 -> #0:0 (copy) > Press [q] to stop, [?] for help > OUT pts 00255255 dts 00249146 > OUT pts 00254978 dts 00249146 > OUT pts 00249146 dts 00249146 > OUT pts 00249699 dts 00249146 > OUT pts 00249699 dts 00249699 > ... > > > Also, remuxing this file again (.sup->.sup) with ffmpeg works. Well, > except that timestamps are again repositioned. > > > Is this something that can be handled in muxer ? > Not sure what's going on here at all. Normally, DTS as stored in a file should never decrease, except on timestamp resets, which doesn't happen here. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel