相关疑难解决方法(0)

FFmpeg:无需重新编码即可重新创建时间戳

我有一个包含 H264 视频 (25 FPS) 的 MP4 文件。某些时间戳不正确(出于某些原因......)。我可以处理文件并只重新生成时间戳而不重新编码吗?我试过这个

ffmpeg -r 25 -i infile -c copy outfile
Run Code Online (Sandbox Code Playgroud)

但即使“-r”的文档说:

作为输入选项,忽略存储在文件中的任何时间戳, 而是假设恒定帧速率 fps 生成时间戳。

我也试过提到的建议,这里的底部:

ffmpeg -fflags +genpts -i infile -c copy outfile
Run Code Online (Sandbox Code Playgroud)

这也不会更改输出文件中的时间戳。还有其他方法可以执行此任务吗?时间戳是一种元数据,所以我认为它应该以某种方式成为可能。

ffmpeg timestamp

10
推荐指数
2
解决办法
3万
查看次数

正确修复使用旧版 x264 编码的视频

由于旧版 x264 中的一个错误,h.264 视频流具有以下三个属性:

  1. 使用 x264 build 150 或更早版本编码
  2. 使用 4:4:4 色度子采样
  3. 比特流不包含 x264 版本信息

许多视频播放器将无法正常播放。新版本的视频播放器mpv有专门的选项

--vd-lavc-assume-old-x264
Run Code Online (Sandbox Code Playgroud)

专门解决这个问题(见:https : //mpv.io/manual/master/)。

FFmpeg 错误跟踪器上,建议将适当的 SEI.h264 添加到视频流(我猜是包含 x264 版本信息)。我不想依赖此类黑客,所以我的问题是:是否有一种“正确”的方式(理想情况下使用 ffmpeg)来修复文件,就好像它们首先是用新的(固定)版本的 x264 编码的一样

显然我想保持(或多或少)视频质量文件大小。如果需要重新编码,那么除了修复旧 x264 实现的错误行为外,它应该什么都不改变。(更多信息:错误报告给出了一个损坏文件的示例。据推测,旧 x264 中的错误可能是在这里引入的。)

h.264 ffmpeg

6
推荐指数
1
解决办法
1644
查看次数

标签 统计

ffmpeg ×2

h.264 ×1

timestamp ×1