[FFmpeg-user] Force target DTS == source DTS -- How?
Mark Filipak
markfilipak.imdb at gmail.com
Wed Jan 10 22:46:26 EET 2024
On 1/10/24 13:55, Devin Heitmueller wrote:
> On Wed, Jan 10, 2024 at 1:42 PM Mark Filipak <markfilipak.imdb at gmail.com> wrote:
>>
>> Thanks, Devin, but nope, they're a lot closer but they're still not the same.
>>
>> set FORCE=-bsf:v setts=dts=DTS:pts=PTS
>> set SOURCE=h:\BDMV\STREAM\00305.m2ts
>> : IS: 0, 1044806, 1048560, 3753, 640646, 0x900a1a7a, S=1, 1
>>
>> ffmpeg -to 39.122 -copyts -i %SOURCE% -map 0 %FORCE% -c copy -sn -dn c:\target_2.m2ts
>> : RESULT: 0, 1170806, 1174560, 3753, 640646, 0x900a1a7a, S=1, 1
>>
>> ffmpeg -to 39.122 -copyts -i %SOURCE% -map 0 -c copy -sn -dn c:\target_1.m2ts
>> : RESULT: 0, 1170806, 1174560, 3753, 640646, 0x900a1a7a, S=1, 1
>
> While I'm not sure why you're not getting the expected output, you can
> add "-debug_ts" to your ffmpeg command line as a global option and it
> will show the timestamps for the packets at every stage (i.e.
> demux/rebasing/decoding/encoding/muxing). That should allow you to
> track down where in the pipeline the timestamp is changing.
I have some beautified debug to paste in here, but first I need to say that here is where the packet
CRCs are really needed. Too bad they're not listed by '-debug_ts'.
Here is the first video packet: type pkt_pts pkt_dts duration
[vist#0:0/h264...] demuxer video 1048560 1044806 3753
[vist#0:0/h264...] demuxer+tsfixup video 1048560 1044806 3753
demuxer+ffmpeg video 1048560 1044806 3753 off:0
[aost#0:1/copy...] muxer <- audio pkt_pts:1048560 pkt_dts:1048560 duration:960 size:1084
As shown in my previous post, PTS=1048560 is being changed to PTS=1174560
Confirmed: 1048560 is the lowest PTS.
Confirmed: 1174560 doesn't appear anywhere.
So, the change from 1048560 to 1174560 remains mysterious.
More information about the ffmpeg-user
mailing list