【发布时间】:2016-05-07 14:33:54
【问题描述】:
我正在从不以恒定速率变化的内容(手机屏幕虚拟显示)构建视频,实际上我只有在发生这种变化时才会收到帧。根据标准,视频中的帧速率不一致是否合法?例如有 PTS 为 0s、0.066s、0.1333s、0.2s 的帧,然后是 20s 的下一帧等?
似乎有些播放器 (Chrome) 正在努力正确播放它,当遇到这样的时间间隔时,它有时会从视频的开头开始显示帧。我应该自己复制最后一帧以保持恒定的帧速率吗?有没有办法指示编解码器 (ffmpeg) 在检测到此类间隙时以恒定速率注入“跳帧”。
谢谢
【问题讨论】:
-
你是在执行 ffmpeg 命令还是通过 API?
-
是的,MP4 具有可变帧速率是合法的。
-
@Mulvya 除了合法之外,是否存在已知的播放器兼容性问题?正如我所提到的,我发现 Chrome 内置播放器存在问题。至于命令行或 API,如果它在现实世界中确实存在问题,并且需要修复,那么两个选项都在桌面上:1. 录制时使用 ffmpeg API 生成恒定 fps 2. 使用 VFR 录制,然后有后端服务器转码(使用 ffmpeg?)以注入丢失的帧。
标签: video ffmpeg mp4 h.264 mpeg