我的应用程序被苹果拒绝,他们给出了一个理由
我们发现您的应用不使用HTTP直播流协议(基线流为64 kbps)来广播流式视频
然后我搜索解决方案和互联网上的所有解决方案建议我必须使用.U8F8和.ts扩展名进行直播,但我的应用程序有mp4格式。我已经习惯了 MPMoviePlayerController
用于流媒体
所以我的问题是:
- 我必须将mp4视频转换为M8U8吗?
- 我必须使用吗?
MPMoviePlayer
?
- 我可以在运行时将mp4视频转换为M8U8格式以及如何实现实时流式传输
- 是否有可用于HTTP直播的示例代码?
提前致谢。
我只能评论预先录制的视频,而不是直播...
我必须将mp4视频转换为M8U8吗?
我想你的意思是.m3u8。基本上,您需要获取.mp4文件并:
将其编码为友好的比特率以获得移动带宽。您可以使用Apple的Compressor *应用程序,它具有HTTP Live Streaming的预设。如果你在玩游戏,请选择1000kbps左右的东西。
使用Apple的mediafilesegmenter将输出切片。你最终会得到许多小的.ts文件和一个列出它们的清单(.m3u8)。
点击播放器中的.m3u8文件(initWithContentURL ...)即可关闭。
重复上面的步骤1和2并指定不同的带宽。我们去了Compressor的预设。
您将最终得到不同版本的视频,每个带宽1个,使用Apple的variantplaylistcreator工具创建一个主播放列表文件,该文件将指向您的播放器每个带宽,以便它可以自动切换。
将所有.ts文件和.m3u8文件粘贴在网络上,并使用mediastreamvalidator工具检查主播放列表文件是否正常并正确指向每个版本。
确保在主播放列表文件中首先获得合适的质量比特率,因为这是首先播放的版本。我们去了大约1000kbps的标记。
我必须使用MPMoviePlayer吗?
我不能评论其他库,我们使用MPMoviePlayer。
我可以在运行时将mp4视频转换为M8U8格式以及如何实现实时流式传输
您可以使用实时流,但对于预先录制的视频,可以在之前完成所有操作。将所有文件置于在线状态,验证播放列表(.m3u8)并使用主.m3u8文件播放视频。
是否有可用于HTTP直播的示例代码?
在我们的实现中,iOS中的客户端完成所有工作(例如,根据可用带宽切换流)。因此,您只需要确保所有文件都在正确的位置。
压缩机 - http://www.apple.com/finalcutpro/compressor/
mediafilesegmenter和mediastreamvalidator工具可从Apple开发人员网站下载命令行工具。
这些文章包含您需要知道的一切:
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
希望一切都有道理:)
如果您的MP4文件长度超过10分钟,则需要使用HLS来传输文件。
对于直播流,您可以使用此类软件对其进行实时编码:
http://www.mcommstv.com/products/mcomms-transcode
如果是VoD文件,则使用您喜欢的H.264 / AAC编码器对其进行预编码。
请记住包含文件的多个比特率版本,包括64kbps。如果您不包含64kbps流,Apple将拒绝该应用程序。我们通常使用:
64K
120K
240K
480K
800kbps
1200kbps
您在多速率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 formnat。
在运行时我找不到任何插件。我搜索得很少。
我们可以使用视频标记在HTML5中使用此URL。
我们也可以上传点播视频。