Iphone 使用ios的HTTP实时流媒体

Iphone 使用ios的HTTP实时流媒体,iphone,http-live-streaming,Iphone,Http Live Streaming,我的应用被苹果拒绝了,他们给出了一个理由 我们发现您的应用程序没有使用基线流为64 kbps的HTTP实时流协议来播放流视频 然后我搜索一个解决方案,通过互联网所有的解决方案都建议我必须使用.U8F8和.ts扩展名进行直播,但我的应用程序采用mp4格式。我已经使用了MPMoviePlayerController进行流媒体播放 所以我的问题是: 我必须将mp4视频转换为M8U8吗 我必须使用MPMoviePlayer吗 我可以在运行时将mp4视频转换为M8U8格式吗?如何实现实时流媒体 有没有适用

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

我们发现您的应用程序没有使用基线流为64 kbps的HTTP实时流协议来播放流视频

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

所以我的问题是:

  • 我必须将mp4视频转换为M8U8吗
  • 我必须使用MPMoviePlayer吗
  • 我可以在运行时将mp4视频转换为M8U8格式吗?如何实现实时流媒体
  • 有没有适用于HTTP实时流媒体的示例代码

  • 提前谢谢。

    我只能对预先录制的视频发表评论,不能进行流媒体直播

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

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

  • 将其编码为适合移动带宽的友好比特率。你可以使用苹果的Compressor*应用程序来实现这一点,它为HTTP实时流媒体提供了预设。如果你在玩的话,选择1000kbps左右的东西

  • 使用苹果的mediafilesegmenter将其分割成输出。您将得到许多小的.ts文件和一个清单(.m3u8),其中列出了这些文件

  • 点击播放器中的.m3u8文件(initWithContentURL…)即可关机

  • 重复上述步骤1和2,并指定不同的带宽。我们在压缩机中进行了预设

  • 你将得到不同版本的视频,每个带宽1个,使用苹果的variantplaylistcreator工具创建一个主播放列表文件,该文件将把你的播放器指向每个带宽,这样它就可以自动切换

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

  • 确保主播放列表文件中的第一个是高质量的比特率,因为这是第一个播放的版本。我们追求的是1000kbps左右的速度

    我必须使用MPMoviePlayer吗

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

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

    你可以为实时流,但为预先录制的视频做这一切之前。将所有文件联机,验证播放列表(.m3u8),并使用master.m3u8文件播放视频

    有没有适用于HTTP实时流媒体的示例代码

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

    压缩机- mediafilesegmenter和mediastreamvalidator工具命令行工具可从Apple开发者网络站点下载

    这些文章包含了您需要了解的一切:

    在Safari中打开此窗口: -每个“齿轮”都是不同的比特率流


    在文本编辑器中打开此.m3u8文件,例如主播放列表文件:

    如果MP4文件长度超过10分钟,则需要使用HLS来流式处理该文件。
    对于实时流,您可以使用如下软件对其进行实时编码:

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

    请记住包含文件的多个比特率版本,包括64kbps。如果你没有包含64kbps的数据流,苹果将拒绝该应用。我们通常使用: 64k 120k 240k 48000 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格式

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

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

    • 并且得到了链接。喜欢

      通过像这样修改它

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

    请澄清您的应用程序是在发送实时视频还是在观看实时视频?如果正在观看,您对视频流的来源有多大的控制?我的应用程序具有视频观看功能,视频长度约为1到1.30小时,并具有mp4格式。当我向苹果提交应用程序时,我使用了MPMovieplayer,但现在根据苹果的说法,我必须使用HTTP直播协议,为了实现这一点,我必须将我的视频url从mp4格式更改为m3u8格式,因此如何将我的视频url从mp4格式转换为m3u8格式,以及当我获得m3u8 url时如何在我的应用程序中播放。谢谢vipw。嗨,Nikh,我正在寻找同样的发展。我有wowza流媒体引擎和iOS媒体库,不知道如何将视频帧从媒体库iOS项目流到wowza进行实时流媒体。你能分享示例代码吗?嗨,哼哼,我正在寻找相同的发展。我有wowza流媒体引擎和iOS媒体库,不知道如何将视频帧从媒体库iOS项目流到wowza进行实时流媒体。你能分享一下示例代码吗?