使用ios进行HTTP直播

Nik*_*414 11 iphone http-live-streaming

我的应用程序被苹果拒绝,他们给出了一个理由

我们发现您的应用不使用HTTP实时流媒体协议(基线流为64 kbps)来广播流式视频

然后我搜索解决方案和互联网上的所有解决方案建议我必须使用.U8F8和.ts扩展名进行直播,但我的应用程序有mp4格式.我已经用于MPMoviePlayerController流媒体了.

所以我的问题是:

  1. 我必须将mp4视频转换为M8U8吗?
  2. 我必须使用MPMoviePlayer吗?
  3. 我可以在运行时将mp4视频转换为M8U8格式以及如何实现实时流式传输
  4. 是否有可用于HTTP直播的示例代码?

提前致谢.

小智 11

我只能评论预先录制的视频,而不是直播...

我必须将mp4视频转换为M8U8吗?

我想你的意思是.m3u8.基本上,您需要获取.mp4文件并:

  1. 将其编码为友好的比特率以获得移动带宽.您可以使用Apple的Compressor*应用程序,它具有HTTP Live Streaming的预设.如果你正在玩的话,选择大约1000kbps的东西.

  2. 使用Apple的mediafilesegmenter将输出切片.你最终会得到很多小的.ts文件和一个列出它们的清单(.m3u8).

  3. 点击播放器中的.m3u8文件(initWithContentURL ...)即可关闭.

  4. 重复上面的步骤1和2并指定不同的带宽.我们去了Compressor的预设.

  5. 您将最终得到不同版本的视频,每个带宽1个,使用Apple的variantplaylistcreator工具创建一个主播放列表文件,该文件将指向您的播放器每个带宽,以便它可以自动切换.

  6. 将所有.ts文件和.m3u8文件粘贴在网络上,并使用mediastreamvalidator工具检查主播放列表文件是否正常并正确指向每个版本.

确保在主播放列表文件中首先获得合适的质量比特率,因为这是首先播放的版本.我们去了大约1000kbps的标记.

我必须使用MPMoviePlayer吗?

我不能评论其他库,我们使用MPMoviePlayer.

我可以在运行时将mp4视频转换为M8U8格式以及如何实现实时流式传输

您可以使用实时流,但对于预先录制的视频,可以在此之前完成.将所有文件置于在线状态,验证播放列表(.m3u8)并使用主.m3u8文件播放视频.

是否有可用于HTTP直播的示例代码?

在我们的实现中,iOS中的客户端完成所有工作(例如,根据可用带宽切换流).因此,您只需要确保所有文件都在正确的位置.

Compressor - http://www.apple.com/finalcutpro/compressor/ 可从Apple开发人员网站下载的mediafilesegmenter和mediastreamvalidator工具命令行工具.

这些文章包含您需要了解的所有内容:https : //developer.apple.com/library/ios/#documentation/networkinginternet/conceptual/streamingmediaguide/Introduction/Introduction.html https://developer.apple.com/library/ios /#technotes/tn2288/_index.html#//apple_ref/doc/uid/DTS40012238

在Safari中打开它:https: //developer.apple.com/resources/http-streaming/examples/advanced-stream.html - 每个'Gear'是不同的比特率流

在文本编辑器中打开此.m3u8文件以获取示例主播放列表文件:https://devimages.apple.com.edgekey.net/resources/http-streaming/examples/bipbop_16x9/bipbop_16x9_variant.m3u8

希望一切都有道理:)