ios – Http直播:EXT-X-DISCONTINUITY标签使得之后的所有片段只有音频

ios – Http直播:EXT-X-DISCONTINUITY标签使得之后的所有片段只有音频,第1张

概述我正在iOS设备系列上播放HTTP Live Streaming,在iOS 5和6上使用Apple的AVPlayer库. 由于我正在播放广告内容,在内容剪辑之间,我正在使用#EXT-X-DISCONTINUITY标签,正如帮助回答上一个问题的真棒人所建议的那样. 这已经适用于单个比特率,但是仅当使用具有子播放列表的变体播放列表用于多个比特率时才会出现问题.我只是在第一个不连续标签之后才获得带有音频 @H_404_6@ 我正在iOS设备系列上播放http live Streaming,在iOS 5和6上使用Apple的AVPlayer库.

由于我正在播放广告内容,在内容剪辑之间,我正在使用#EXT-X-disCONTINUITY标签,正如帮助回答上一个问题的真棒人所建议的那样.

这已经适用于单个比特率,但是仅当使用具有子播放列表的变体播放列表用于多个比特率时才会出现问题.我只是在第一个不连续标签之后才获得带有音频的黑屏,即使在广告结束后它也永远无法恢复. (我可以听到广告).

这已在iPhone 4,4S,5和iPod touch第4代上经过测试和复制. iphone 4在iOS 5上,其余的是iOS 6.它发生在大多数时间,但不是每次都发生.但是可以肯定的是,我想强调的是,只有当我的变体播放列表包含多个比特率子播放列表时才会发生这种情况.

这是我使用的播放列表的一个示例(这是400kbps版本,我有一个
具有相应播放列表的200和800kbps版本看起来与以下内容完全相同,但将所有’400’替换为’200’和’800′. (嗯,实际的播放列表更长,但这是一个例子).

#EXTM3U#EXT-X-TARGETDURATION:10#EXT-X-MEDIA-SEQUENCE:0#EXTINF:10,400-clipA-0.ts#EXTINF:10,400-clipA-1.ts#EXTINF:5,400-clipA-2.ts#EXT-X-disCONTINUITY#EXTINF:10,400-advert0.ts#EXTINF:3,400-advert1.ts#EXT-X-disCONTINUITY#EXTINF:10,400-clipB-0.ts#EXTINF:10,400-clipB-1.ts#EXTINF:5,400-clipB-2.ts#EXT-X-ENDList

我有在儿童播放列表之间选择的变体播放列表:

#EXTM3U#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=240000clips-200.m3u8#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=440000clips-400.m3u8#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=840000clips-800.m3u8

请注意,发生的事情(大约75%的时间)是,当我播放时,视频将在第一个不连续标签(广告之前)之后变为黑色并且永远不会再次恢复,尽管我可以听到音频广告.例如,如果我只使用一个比特率变体制作我的变体播放列表:

#EXTM3U#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=280000clips-200.m3u8

然后我根本没有遇到这个问题!很奇怪.此外,如果我删除所有不连续标签并仍保留变量播放列表中的其他比特率,那么它(通常)工作正常,但有时它会因某种原因跳过整个.ts文件,可能是因为它需要那些不连续标签.

此外,与我们最初驻留的Amazon S3存储桶相比,直接在Amazon Cloudfront上播放文件时,这种情况更常发生.

其他一些可能有用的信息:我的原始文件(剪辑和广告)都是从iPhone 4获取的.mov文件,每个文件的分辨率相同.然后我的输出(.ts文件)都是从这些产生的 – 对于每个比特率类,我在剪辑和广告中都有相同的编码设置.否则,输出的分辨率和帧率都相同.

最后一件事,Apple提供的mediasegmentvalIDator在我用它来检查时没有给出任何警告.

我非常感谢你们提供的任何帮助!这对我来说是一个令人费解的问题:-(

解决方法 我要检查的事情(不是以任何特定的顺序,只是我想到的顺序).

>这些细分实际上是M3U8声称的长度
>音频和视频流的长度是否相同
> advert0.ts是否以视频关键帧开头(那是一个巨大的!)
>视频和音频编解码器和参数是否相同(特别是音频 – 根本不能改变)
>流是否在其他兼容HLS的设备或应用程序上播放?例如,您可以使用VLC播放流吗?
>有没有什么办法可以看到服务器日志,看看你在故障发生之前和之后正在播放什么级别,如果是这样,这可能指向一个答案(例如,如果设备是水平切换不连续,也许您可以减少第一个分段块的分段大小,以便获得一个额外的分段,从而提供更早切换的机会.

对不起,我没有一个答案,但有很多微小的东西可以让你惹恼.

总结

以上是内存溢出为你收集整理的ios – Http直播:EXT-X-DISCONTINUITY标签使得之后的所有片段只有音频全部内容,希望文章能够帮你解决ios – Http直播:EXT-X-DISCONTINUITY标签使得之后的所有片段只有音频所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1071332.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存