iphone - 使用 ios 进行 HTTP 直播

标签 iphone http-live-streaming

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

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 进行流式传输。

所以我的问题是:

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

提前致谢。

最佳答案

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

Do I have to convert mp4 video to M8U8?

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

  1. 将其编码为适合移动带宽的比特率。为此,您可以使用 Apple 的 Compressor* 应用程序,它具有 HTTP 实时流媒体预设。如果您正在玩游戏,请选择 1000kbps 左右的速度。

  2. 使用 Apple 的媒体文件分段器对输出进行切片。您最终会得到许多小 .ts 文件和列出它们的 list (.m3u8)。

  3. 点击播放器中的 .m3u8 文件(initWithContentURL...)即可开始。

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

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

  6. 将所有 .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/

相关文章:

image-processing - 如何从 http 网络摄像头直播中捕获图像

iphone - 在 iOS 中使用耳机插孔同时播放和录制音频?

iphone - 重用自定义绘制的注释 View

iphone - NSAutoLayoutConstraints 中 Constraints 属性的含义

iphone - 如何确定当前位置是否在 KML 定义的区域内?

ffmpeg - 来自 mp3 文件目录的 Mac 上带有元数据的音频 HLS?

video - HLS - ffmpeg 失败,无法为输出文件 #0 写入 header (编解码器参数不正确?): No such file or directory

iphone - ABRecordCopyValue 和 ABPropertyID 崩溃

audio - ffmpeg 仅分段我的音频文件的第一部分

java - RTSP 到 HLS(带音频)