当编码H264时,为什么我会丢失PTS信息



我有一个视频文件,并带有此视频流:

ffmpeg -i original.avi

流#0:0:0:视频:H264(Main)(H264/0x34363248),YUV420P(电视, BT709,进步),1920x1080 [SAR 1:1 DAR 16:9],4204 kb/s,59.94 FPS,59.94 TBR,59.94 TBN,59.94 TBC

我可以通过运行来获取PTS信息:

ffprobe -v 0 -of csv=p=0 -select_streams v -show_entries packet=pts_time original.avi

,我按线路获得了每个帧的PTS:

0.016683
0.116783
0.033367
0.050050
0.166833
0.083417
0.100100
0.216883
...

现在,我需要将视频编码为H264,然后才能获取相同的PTS信息,因此我使用了:

ffmpeg -i original.avi -vcodec libx264 output.avi

使用此视频流:

流#0:0:视频:H264(高)(H264/0x34363248), YUV420p(进度),1920x1080 [SAR 1:1 DAR 16:9],2289 kb/s,59.94 FPS,59.94 TBR,59.94 TBN,119.88 TBC

但是,当我尝试从output.avi获取PTS信息时,我只会得到:

N/A
N/A
N/A
N/A
N/A
N/A
...

为了保留PTS信息,我应该更改命令?

avi并不真正支持H.264。

有一些使其起作用的骇客,但是您会产生一些副作用也就不足为奇了。考虑使用MP4或MKV。

最新更新