【问题标题】:Why do I lose PTS information when encoding to H264?为什么在编码为 H264 时会丢失 PTS 信息?
【发布时间】:2019-07-22 05:07:04
【问题描述】:

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

ffmpeg -i original.avi

流 #0:0:视频:h264(主)(H264 / 0x34363248),yuv420p(电视, bt709,渐进式),1920x1080 [SAR 1:1 DAR 16:9],4204 kb/s,59.94 fps, 59.94 tbr, 59.94 tb, 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 tb, 119.88 tbc

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

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

为了保留 PTS 信息,我应该在命令中进行哪些更改?

【问题讨论】:

  • 我猜 avi 格式与它有关。不管怎样,你试过-fflags +genpts 吗?

标签: encoding ffmpeg h.264 pts


【解决方案1】:

AVI 并不真正支持 H.264。

有一些技巧可以让它发挥作用,但你会有一些副作用也就不足为奇了。考虑改用 MP4 或 MKV。

【讨论】:

    猜你喜欢
    • 2015-06-20
    • 1970-01-01
    • 1970-01-01
    • 2023-01-09
    • 2016-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-25
    相关资源
    最近更新 更多