我有构建iOS应用程序的经验,但没有视频经验。我想构建一个将实时视频流式传输到服务器的iPhone应用程序。一旦进入服务器,我将实时向消费者提供该视频。
我读了很多材料。有人可以告诉我,如果以下是正确的,并为我填写空白。
答案 0 :(得分:5)
你是正确的,在iPhone上使用硬件编码器的唯一方法是使用AVAssetWriter类将编码视频写入文件。不幸的是,AVAssetWriter不会将moov原子写入文件(解码编码视频所需),直到文件关闭。
因此,将编码视频流式传输到服务器的一种方法是将10秒的视频块写入文件,关闭它,然后将该文件发送到服务器。我已经读过这个方法可以在文件的关闭和打开引起的播放中没有间隙,但我自己没有尝试过。
我找到了另一种流视频here的方法。
此示例打开2个AVAssetWriters。然后在第一帧写入两个文件,但立即关闭其中一个文件,以便写入moov原子。然后使用moov原子数据,第二个文件可以用作管道以获得编码视频数据流。此示例仅适用于发送视频数据,但它非常干净且易于理解,帮助我弄清楚如何处理iPhone上的许多视频问题。