我正在开发一个小型iPhone应用程序,它使用常规套接字通过网络连接流式传输电影内容。视频格式为H.264
。然而,我在播放/解码数据方面遇到了困难。我一直在考虑使用FFMPEG
,但许可证使其不适合该项目。我一直在研究Apple的AVFoundation
框架(特别是AVPlayer
),它似乎能够处理h264内容,但是我只能找到使用url启动电影的方法 - 而不是通过证明从网络流式传输的内存缓冲区。
我一直在做一些测试,无论如何都要使用以下方法:
AVPlayer
播放电影。每次在网络上接收数据时,都会使用fopen和append-mode将其写入文件。然后使用更新的数据重新加载/重新创建AVPlayer
的资产。这种方法似乎存在两个问题:首先,当第一个资产被卸载并且新加载时,屏幕会短暂变黑。其次,我不知道比赛的确切位置,所以我不确定如何找到合适的位置开始播放新资产。AVQueuedPlayer
,其中第二个资产在播放器中插入/排队,然后在缓冲完成时调用。然后可以在没有黑屏的情况下卸载第一个资产。然而,使用这种方法,找出从哪里开始播放新资产更麻烦(比第一种方法)。 有没有人做过这样的事情并让它发挥作用?有没有正确的方法使用AVFoundation
?
答案 0 :(得分:0)
执行此操作的官方方法是HTTP Live Streaming格式,它支持多种质量级别(以及其他内容)并自动在它们之间切换(例如:如果用户从WiFi移动到移动电话)。
您可以在此处找到文档:Apple Http Streaming Docs