我从 IP 摄像头(通过 Live555)接收原始 H.264 NALU,我想使用硬件对其进行解码,因为 FFmpeg 很棒,但速度太慢(摄像头传感器很大)。
我看到的唯一解决方案是将 NALU 写入某些电影容器文件(例如 MPEG-4),然后使用AVAssetReader
.
我在杂草丛中吗?是否有人成功从流中解码 H.264 NALU?有没有人有任何将 NALU 写入 MPEG-4 文件的提示?其他想法?
就像 Matt 提到的那样,没有直接访问 Apple 的 H264 解码器的权限。
但是,我在 ffmpeg 和 h264 解码方面取得了成功。就像你提到的,我已经用 LGPL 构建了 ffmpeg,我能够将 H264 流一直解码为实时高清流,在 ipad 和 iphone 上都没有延迟。ffmpeg 不需要什么花哨的东西,你可以找到一堆标准的解码 c++ 代码,它们在 iOS 上运行得很好。此外,在我的例子中,H264 NALU 是通过 RTP/RTSP 实时交付的。
另外,如果我是你,我会通过 xcode 工具运行你的应用程序,以真正看到你的瓶颈在哪里,但我会非常惊讶它在 ffmpeg 解码步骤中。希望这些信息有帮助。
不幸的是,您目前无法执行此操作。随意向 Apple 提交有关希望这种对硬件解码器的访问权限的雷达。它肯定会被解决为重复的:-)。我认为这是出于许可原因,他们无法授予对硬件编解码器的这种访问权限。
因此,您将不得不使用软件解码器。请注意,如果您要发布到 App Store,那么您需要具有非 GPL 许可证的东西(除非您也想开源您的应用程序)。