我使用mkvmerge将mp4 CFR视频与包含VFR时间戳的文本文件结合起来。使用的命令是
mkvmerge --timestamps 0:timestamps.txt input_video.mp4 -o output_video.mkv其中文本文件timestamps.txt是v2时间戳格式。以下是前几个条目
# timecode format v2
0
6
21
36
53
71
87
103
123我想把这些时间戳印回来
ffprobe -v 0 -show_entries packet=pts,duration -of compact=p=0:nk=1 -select_streams v output_video.mkv但我收到了杂乱的参赛作品
0|6
6|15
21|15
36|17
53|18
123|15
87|16
71|16
103|20例如,如果我用PyAV读取框架,我将得到正确的顺序值。
import av
c = av.open("output_video.mkv")
for frame in c.decode(video=0):
print(frame.pts)输出:
0
6
21
36
53
71
87
103
123我用得不对吗?任何帮助都是非常欢迎的!
发布于 2021-12-22 04:41:36
如果视频流具有B帧,那么作为B帧参考的未来P帧首先被编码并按该顺序存储。它们在解码后被重新排序。
对于or探针,packet中的条目按解码或存储顺序排列。在frames中,它们被解码并按表示顺序排列。
https://stackoverflow.com/questions/70437124
复制相似问题