12

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

我们发现您的应用未使用 HTTP Live Streaming 协议(基线流为 64 kbps)来广播流式视频

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

所以我的问题是:

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

提前致谢。

4

3 回答 3

11

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

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

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

  1. 将其编码为适用于移动带宽的友好比特率。为此,您可以使用 Apple 的 Compressor* 应用程序,它具有 HTTP 实时流媒体预设。如果您正在玩,请选择大约 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 - 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

于 2012-10-14T13:57:29.153 回答
2

如果您的 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
于 2012-11-01T06:27:07.877 回答
1

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

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

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

于 2013-03-08T07:12:05.513 回答