ios - AVPlayer 未在 HLS 视频流中播放音频

标签 ios avplayer http-live-streaming shaka

我已经使用 shaka packager 创建了 HLS list 和分段 mp4 片段。该 list 在 ios 和 Safari 浏览器中运行良好。但是,当输入到 AVPlayer 时,它只播放视频而不播放音频。

mediastreamvalidator 工具已验证流并且未显示任何错误。

hls_manifest.m3u8

#EXTM3U
## Generated with https://github.com/google/shaka-packager version 2d025da-release
#EXT-X-MEDIA:TYPE=AUDIO,URI="hls_manifest_a.m3u8",GROUP-ID="audio",LANGUAGE="en",NAME="ENGLISH",CHANNELS="2"
#EXT-X-STREAM-INF:BANDWIDTH=3264562,CODECS="avc1.42c01e,mp4a.40.2",RESOLUTION=1280x720,AUDIO="audio"
hls_manifest_v.m3u8

hls_manifest_a.m3u8

#EXTM3U
#EXT-X-VERSION:6
## Generated with https://github.com/google/shaka-packager version 2d025da-release
#EXT-X-TARGETDURATION:7
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="a/seg_0.mp4"
#EXTINF:5.016,
a/seg_1.m4s
#EXTINF:4.992,
a/seg_2.m4s
#EXTINF:4.992,
a/seg_3.m4s
#EXTINF:5.016,
a/seg_4.m4s
#EXTINF:0.697,
a/seg_5.m4s
#EXT-X-ENDLIST

hls_manifest_v.m3u8

#EXTM3U
#EXT-X-VERSION:6
## Generated with https://github.com/google/shaka-packager version 2d025da-release
#EXT-X-TARGETDURATION:7
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MAP:URI="v/seg_0.mp4"
#EXTINF:6.208,
v/seg_1.m4s
#EXTINF:4.333,
v/seg_2.m4s
#EXTINF:6.750,
v/seg_3.m4s
#EXTINF:3.375,
v/seg_4.m4s
#EXT-X-ENDLIST

我错过了什么?

最佳答案

在这里,我正在回答我自己的问题。发生此问题的原因是 Shaka Packager(生成 HLS 片段的工具)未将 AUTOSELECT=Yes 选项添加到主 .m3u8 文件中的音轨。因此,AVPlayer 在播放视频文件时跳过了音轨。这已在里程碑 v2.0 中修复

关于ios - AVPlayer 未在 HLS 视频流中播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49516135/

相关文章:

ios - AVPlayer 播放完毕退出全屏

ffmpeg - 使用 ffmpeg 下载 Internet 站点上发布的 HLS 格式视频时的间隔选项

ios - 我可以将项目文件中的 Xcode 5.1.1 内容传输到 Xcode 6 中吗

iphone - 是否可以在不启动核心定位的情况下询问用户当前位置

objective-c - 将音频路由到 OS X 上的特定设备输出

avplayer - Fairplay 播放不工作

ffmpeg - 使用 ffmpeg 完全 GPU 加速(解码、去隔行、缩放、编码)HLS 可变流

javascript - Android HLS 或 MPEG-DASH javascript

ios - Swift 4 中传递给不带参数的调用的参数

ios - 如何在 Swift 中将 int 值附加到字符串数组中?