我真的很喜欢这个问题,因为我没有在互联网上看到有关iOS视频编码的足够信息,但是我们可以观察到大量应用成功解决视频流问题的应用程序(skype,qik,justin。电视等)
我将开发一个应用程序,它应该将从摄像机获得的视频帧发送到网络服务器,并以h.263(h.264或MPEG-4,它正在决定)编码。为此,我需要一些视频编码库。显然,ffmpeg可以处理这个任务,但它是在LGPL许可下,这可能会导致在AppStore中提交应用程序时出现一些问题。另一方面,有一些applications,似乎使用ffmpeg库,但只有Timelapser在应用程序描述中明确说明了这一事实。这是否意味着,其他应用程序没有使用ffmpeg或仅隐藏此信息?
请分享您对此主题的想法和经验。我很开心。
答案 0 :(得分:9)
在谷歌搜索并在该领域进行一些研究后,我发现了这个库http://www.foxitsolutions.com/iphone_h264_sdk.html。他们真的使用硬件编码。我用仪器检查了演示示例,他们告诉我,在编码时,使用~12%的cpu并且不断调用syscall read()
。由此可以得出结论,他们的库使用标准AVFoundation的AVAssetWriter
写入临时文件,并且(很可能)并发线程用于读取此临时文件以检索编码的帧。
另外,请查看http://www.videolan.org/developers/x264.html。它属于GPL,但仍然有用。