[FFmpeg-user] framecrc
Mark Filipak
markfilipak.imdb at gmail.com
Mon Nov 13 05:33:30 EET 2023
On 11/12/23 04:57, Paul B Mahol wrote:
> On Sun, Nov 12, 2023 at 8:36 AM Mark Filipak <markfilipak.imdb at gmail.com>
> wrote:
>
>> Previous Subject: "rewrite tags in a source's PES headers -- How?"
>>
>> On 11/11/23 13:41, Paul B Mahol wrote:
>>> On Sat, Nov 11, 2023 at 7:29 PM Mark Filipak <markfilipak.imdb at gmail.com
>>>
>>> wrote:
>>>
>>>> Here's what I'm doing:
>>>> -bsf:v setts=time_base=1/24000:pts=N*1001:dts=N*1001
>>>>
>>>> Here's the result:
>>>> frame pts dts
>>>> 0 0 2002 <= should be 0
>>>> 1 3003 <= should be 1001 3003 <= should be 1001
>>>> 2 4004 <= should be 2002 4004 <= should be 2002
>>>> 3 2002 <= should be 3003 5005 <= should be 3003
>>>> 4 5005 <= should be 4004 6006 <= should be 4004
>>>> 5 1001 <= should be 5005 7007 <= should be 5005
>>>> 6 8008 <= should be 6006 8008 <= should be 6006
>>>> 7 9009 <= should be 7007 9009 <= should be 7007
>>>> 8 7007 <= should be 8008 10010 <= should be 8008
>>>> 9 10010 <= should be 9009 11011 <= should be 9009
>>>> 10 6006 <= should be 10010 12012 <= should be 10010
>>>> 11 13013 <= should be 11011 13013 <= should be 11011
>>>> 12 12012 <= should be 12012 14014 <= should be 12012
>>>> 13 14014 <= should be 13013 15015 <= should be 13013
>>>> 14 11011 <= should be 14014 16016 <= should be 14014
>>>> 15 17017 <= should be 15015 17017 <= should be 15015
>>>> 16 18018 <= should be 16016 18018 <= should be 16016
Why are the target PTSs out of order?
Why are there no 0 or 1001 DTSs?
>>>> The source video is 'NTSC'-soft.
>>>> Can this be explained?
>>>> Can it be countered?
>>>>
>>>> PTSs in frames 1..5 are +2 +2 -1 +1 -4
>>>> PTSs in frames 6..10 are +2 +2 -1 +1 -4
>>>> PTSs in frames 11..15 are +2 +0 +1 -3 +2
>>>> I'm baffled.
>>>>
>>>
>>> N is packet number, and it goes in different order.
>>
>> Oh, yes, out of order/out of sequence.
>>
>>> Can be confirmed with:
>>>
>>> ffmpeg -i <video> -c copy -f framecrc -
>>
>> Thank you, Paul. Good of you. How do I interpret the framecrc table?
>>
>> stream_index packet_duration
>> | packet_dts | packet_size
>> | | packet_pts | | 0xCRC
>> | |________ |_________________ |___ |____ |_________
>> 1 0 0 2880 768 0xb16c8010
>> 1 2880 2880 2880 768 0x1b728309
>> 1 5760 5760 2880 768 0x966977f8
>> 1 8640 8640 2880 768 0x6e078511
>> 0 10878 22890 3003 62500 0x5877c6d3
>> 1 11520 11520 2880 768 0xe49b880c
>> [framecrc@ 0000000002a9b140] Timestamps are unset ... stream 0 ...
>> 1 14400 14400 2880 768 0x0a217046
>> 0 15382 15382 3003 18300 0xd4f063a2 F=0x0
>> 1 17280 17280 2880 768 0xc13a7e27
>> 0 18385 18385 4504 17924 0x14ae7839 F=0x0
>> 1 20160 20160 2880 768 0x91017a25
>> 0 22890 0x8000000000000000 4504 37160 0xa54ad420 F=0x0
>> 1 23040 23040 2880 768 0xcd087be2
>> 0 25893 25893 4504 18920 0x6230931b F=0x0
>> 1 25920 25920 2880 768 0xca8a79b6
>> 1 28800 28800 2880 768 0x1d5e7a84
>> 0 30398 30398 3003 17172 0xebbc5af9 F=0x0
>> 1 31680 31680 2880 768 0x1c3e7f7d
>> 0 33401 0x8000000000000000 3003 33636 0x2bf50e31 F=0x0
>> 1 34560 34560 2880 768 0x815d7b63
>> 1 37440 37440 2880 768 0x1ac6762d
>> 0 37905 37905 3003 16144 0x5fabbc96 F=0x0
>> 1 40320 40320 2880 768 0x7e2f8d29
>> 0 40908 40908 4504 14960 0xe0a8abb9 F=0x0
>> 1 43200 43200 2880 768 0x951c8f4c
>> 0 45412 0x8000000000000000 4504 34072 0x6bf61d8c F=0x0
>> 1 46080 46080 2880 768 0xf42e82a7
>> 0 48415 48415 4504 14788 0xcc5c4f38 F=0x0
>> : : : : : :
>> 0 136171401 136171401 3003 23924 0xe65b80f5 F=0x0
>> 1 136172160 136172160 2880 768 0x3b687c8c
>> 0 136174404 0x8000000000000000 3003 52328 0x7a17da08 F=0x0
>> 0 136178908 136178908 3003 23932 0x5bee6d60 F=0x0
>> 0 136181911 136181911 4504 23452 0xc4a6eb3a F=0x0
>>
>> Why is the above so different from the packets VOBEdit shows and that I
>> manually parse?
>> I thought all VOB packets were 2048 bytes.
>> Are the packets above a different type of packet?
>>
> Again, lacks of deeper understanding of FFmpeg subject.
So, what are the answers? Does anyone know?
> The above command demuxes all packets, including audio/video/subtitle.
I knew that of course. Stream 0 is video. Stream 1 is audio. There are no subtitles.
The framecrc table makes no sense unless its 'packets' and the source's TS packets are much
different things. Is the framecrc table from the MP4 muxer instead of from the source frames?
>> The video is 'NTSC'-soft (24/1.001fps). '3003' means ffprobe 'sees'
>> 30/1.001fps.
>> How can I stop the decoder doing telecine?
>
> No decoder does telecine.
Well, that's good to know. Thanks. So, the library decoders ignore soft telecine, eh?
More information about the ffmpeg-user
mailing list