我的应用程序被苹果拒绝,他们给出了原因
We found that your app does not use the HTTP Live Streaming protocol, with a baseline stream of 64 kbps, to broadcast streaming video
然后我搜索解决方案,通过互联网,所有解决方案都表明我必须使用 .U8F8 和 .ts 扩展名进行直播,但我的应用程序具有 mp4 格式。我已经使用 MPMoviePlayerController
进行流式传输。
所以我的问题是:
- 我必须将 mp4 视频转换为 M8U8 吗?
- 我必须使用
MPMoviePlayer
吗? - 能否在运行时将mp4视频转换为M8U8格式以及如何实现直播
- 是否有可用于 HTTP 直播的示例代码?
提前致谢。
最佳答案
我只能评论预先录制的视频,不能评论直播...
Do I have to convert mp4 video to M8U8?
我认为你的意思是.m3u8。基本上,您需要获取 .mp4 文件并且:
将其编码为适合移动带宽的比特率。为此,您可以使用 Apple 的 Compressor* 应用程序,它具有 HTTP 实时流媒体预设。如果您正在玩游戏,请选择 1000kbps 左右的速度。
使用 Apple 的媒体文件分段器对输出进行切片。您最终会得到许多小 .ts 文件和列出它们的 list (.m3u8)。
点击播放器中的 .m3u8 文件(initWithContentURL...)即可开始。
重复上述步骤 1 和 2 并指定不同的带宽。我们选择了 Compressor 中的预设。
您最终会得到不同版本的视频,每个带宽 1 个版本,使用 Apple 的variantplaylistcreator 工具创建一个主播放列表文件,该文件会将您的播放器指向每个带宽,以便它可以自动切换。
将所有 .ts 文件和 .m3u8 文件粘贴到网上,并使用 mediastreamvalidator 工具检查您的主播放列表文件是否正常并正确指向每个版本。
确保主播放列表文件中的第一位具有良好的质量比特率,因为这是首先播放的版本。我们追求 1000kbps 左右的速度。
Do I have to use MPMoviePlayer?
我无法评论其他库,我们使用了 MPMoviePlayer。
Can I convert mp4 video to M8U8 format during run-time and how to implement live streaming
对于直播,您可以,但对于预先录制的视频,您可以提前完成所有操作。将您的所有文件放到网上,验证您的播放列表 (.m3u8) 并使用主 .m3u8 文件播放您的视频。
Is there any example code available for HTTP live streaming?
在我们的实现中,iOS 中的客户端完成所有工作(例如,根据可用带宽切换流)。因此,您只需要事先确保所有文件都位于正确的位置即可。
压缩机 - https://www.apple.com/final-cut-pro/compressor/ mediafilesegmenter 和 mediastreamvalidator 工具命令行工具可从 Apple 开发者网站下载。
这些文章包含您需要了解的一切: https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/Introduction/Introduction.html https://developer.apple.com/library/archive/technotes/tn2288/_index.html#//apple_ref/doc/uid/DTS40012238
在 Safari 中打开它: https://developer.apple.com/streaming/examples/advanced-stream.html - 每个“齿轮”都是不同的比特率流
在文本编辑器中破解此 .m3u8 文件作为示例主播放列表文件:https://devimages.apple.com.edgekey.net/resources/http-streaming/examples/bipbop_16x9/bipbop_16x9_variant.m3u8
关于iphone - 使用 ios 进行 HTTP 直播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11643513/