0

上下文是使用 libav avconv 或 ffmpeg 在 Raspberry Pi 3 上从 1080i MPEG2 TS 转码为 1080p@30fps H264 MP4。两者都使用几乎相同的 omx.c 源文件并共享相同的结果。

性能不足30fps(约22fps),不适合在不降低帧率的情况下进行实时转码。

通过为关键代码添加时间戳,我注意到以下内容:

  1. OMX_EmptyThisBuffer 可能需要 10-20 毫秒才能返回。规范/文档表明这应该小于 5 毫秒。这几乎可以解释绩效赤字。有人可以解释为什么这个 OMX 调用不符合规范吗?

  2. 在 omx.c 中,使用 zerocopy 选项来优化图像复制性能。但是此代码的先决条件(连续平面和步幅对齐)从未得到满足,因此优化从未生效。有人可以解释如何使用这种零拷贝优化吗?

关于 h264_omx 编码器的附加问题:它似乎接受 MP4 或原始 H264 输出格式。添加其他格式(例如 TS)有多难?

谢谢

4

0 回答 0