
我正在嘗試使用 .m2ts 檔案從 M2TS 檔案中提取字幕時間戳ffprobe
。這不能按預期工作。已知 M2TS 檔案在第 4 軌中包含 1001 個字幕,但我得到了大約 4000 個時間戳。此外,這些時間戳以一種奇怪的方式相關且未排序。
我正在使用的命令列:
ffprobe -show_entries packet=stream_index,pts,duration -of compact=p=0:nk=1 input.m2ts > ts.txt
ts.txt
然後包含如下所示的區塊(為了方便閱讀,我插入了空白行):
4|57795041|N/A|
4|57795000|N/A|
4|57789168|N/A|
4|57789250|N/A|
4|57789250|N/A|
4|57982728|N/A|
4|57982687|N/A|
4|57982686|N/A|
4|63380621|N/A|
4|63380580|N/A|
4|63374748|N/A|
4|63374830|N/A|
4|63374830|N/A|
... and so on
每個區塊對應一個字幕。區塊中的時間戳未排序。區塊中的最後兩個時間戳相同或最多相差 1 個刻度。時基是90000 ticks / s
.
我確信我的問題是由於我不了解如何ffprobe
工作以及如何將字幕時間戳嵌入到容器中。有人可以簡單解釋一下如何以正確的方式提取字幕時間戳嗎?我只對 PTS 時間戳感興趣。
然後,我將幀資訊添加到輸出中,並使其列印該部分和鍵:
ffprobe -show_entries packet=stream_index,pts,duration:frame -of compact input.m2ts > ts.txt
這沒有幫助;下面顯示了輸出的範例:
packet|stream_index=4|pts=76826553|duration=N/A|
packet|stream_index=4|pts=76826144|duration=N/A|
packet|stream_index=4|pts=76826143|duration=N/A|
subtitle|
除了更詳細之外,現在還有其他subtitle
部分條目,但它們不包含資料。當然,現在還有額外的frame
部分條目,但我沒有顯示它們,因為它們都與字幕無關。
最後,我想說的是,ffprobe
總的來說,似乎是提取 PTS 時間戳的合適工具:我以相同方式提取的音訊和視訊時間戳記都是正確的。只是字幕時間戳造成了問題。