我有一个视频文件,有这个视频流:
ffmpeg -i original.avi
流#0:0:视频:h264(主)(H264 / 0x34363248),yuv420p(tv,bt709,逐行),1920x1080 [SAR 1:1 DAR 16:9],4204 kb / s,59.94 fps,59.94 tbr, 59.94亿,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。