使用ios进行HTTP直播



我的应用程序被苹果拒绝,他们给出了的原因

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

然后我搜索了一个解决方案,在互联网上,所有的解决方案都表明我必须使用.U8F8和.ts扩展来进行直播,但我的应用程序有mp4格式。我已经将MPMoviePlayerController用于流媒体。

所以我的问题是:

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

提前谢谢。

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

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

我想你是说.m3u8。基本上,你需要带上你的.mp4文件和:

  1. 将其编码为适用于移动带宽的友好比特率。你可以使用苹果的Compressor*应用程序,它有HTTP实时流媒体的预设。如果你在玩,可以选择1000kbps左右的数据。

  2. 使用苹果的mediafilesegmenter对输出进行切片。您最终会得到许多小的.ts文件和一个列出它们的清单(.m3u8)。

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

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

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

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

确保主播放列表文件中的第一个是质量良好的比特率,因为这是最先播放的版本。我们选择了1000kbps左右的速度。

我必须使用MPMoviePlayer吗?

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

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

你可以进行直播,但对于预先录制的视频,你可以在之前完成所有操作。将所有文件联机,验证播放列表(.m3u8),并使用主.m3u8.文件播放视频。

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

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

压缩机-https://www.apple.com/final-cut-pro/compressor/mediafilesegmenter和mediastreamvalidator工具命令行工具可从Apple开发者网站下载。

这些文章包含了您需要了解的所有信息:https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/Introduction/Introduction.htmlhttps://developer.apple.com/library/archive/technotes/tn2288/_index.html#//apple_ref/doc/uid/DTS40012238

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

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

如果MP4文件的长度超过10分钟,则需要使用HLS来流式传输文件
对于直播流,您可以使用这样的软件对其进行实时编码:http://www.mcommstv.com/products/mcomms-transcode

如果是VoD文件,请使用您喜爱的H.264/AAC编码器对其进行预编码。

请记住包含文件的多个比特率版本,包括64kbps。如果你不包含64kbps的数据流,苹果将拒绝该应用程序。我们通常使用:64k120k240k480k800 kbps1200 kbps您在多速率m3u8文件中第一个列出的比特率将在前30秒内播放,请将中等比特率放在第一位,这样当用户在慢速3G网络上时,开始流媒体不会花费太长时间。这里有一个例子:

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=120000
120k/Playlist.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=60000
60k/Playlist.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=240000
240k/Playlist.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=480000
480k/Playlist.m3u8

我们必须将任何音频文件转换为m3U8格式。

在运行时,我找不到任何插件。我找得很少。

  • 因此,我们在使用URl的同时设置了IIS服务器。

    http://www.hanselman.com/blog/CommentView.aspx?guid=86968cd5-feeb-47f2-b02e-eb4fa56379#开始

  • 并且得到了链接。喜欢http://4a75a0cce3694e29bc670b3d574fec92.cloudapp.net/push.isml/manifest

    通过像这样修改http://4a75a0cce3694e29bc670b3d574fec92.cloudapp.net/push.isml/manifest(格式=m3U8-aapl)

我们可以使用视频标签在HTML5中提供这个URL。我们还可以上传点播视频。

最新更新