0

我正在使用AWS Elemental MediaConvert编码为CMAF,据我所知,这将允许单一格式流式传输到所有设备。但是,我在让 HLS 流媒体与任何播放器一起工作时遇到问题。

破折号正在工作:

https://bitmovin.com/demos/stream-test?format=dash&manifest=https%3A%2F%2Fstream-test1234.s3.amazonaws.com%2Fpreview%2F05f3e320-c5b6-11e9-97ce-35297279db3d.mpd

HLS 不是:

https://bitmovin.com/demos/stream-test?format=hls&manifest=https%3A%2F%2Fstream-test1234.s3.amazonaws.com%2Fpreview%2F05f3e320-c5b6-11e9-97ce-35297279db3d.m3u8

获取明显错误:

1210/SOURCE_HLS_STREAM_ERROR
1202/SOURCE_MANIFEST_INVALID

我与宣传 CMAF 支持的 shaka播放器有类似的问题:

https://codesandbox.io/s/pedantic-haze-y6qxq(取消注释manifestUri以测试 HLS)

错误似乎也与清单有关:

HLS playlist has both Master and Media/Segment tags.

.m3u8 文件的内容:

#EXTM3U
#EXT-X-VERSION:6
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-STREAM-INF:BANDWIDTH=1231785,AVERAGE-BANDWIDTH=1214202,VIDEO-RANGE=SDR,CODECS="avc1.4d401f,mp4a.40.2",RESOLUTION=1280x720,FRAME-RATE=25.000,AUDIO="program_audio_0"
05f3e320-c5b6-11e9-97ce-35297279db3d.m3u8
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="program_audio_0",LANGUAGE="eng",NAME="Alternate Audio",AUTOSELECT=YES,DEFAULT=YES,URI="05f3e320-c5b6-11e9-97ce-35297279db3d.m3u8"

关于什么是错的任何想法?我只是使用了 MediaConvert 提供的默认 CMAF 设置。

4

1 回答 1

2

我知道这真的很老了,但是我遇到了同样的问题并想通了...

事实证明,当只执行 HLS 时,MediaConvert 需要Output Groups > Apple HLS > Output Settings > Name modifier在文件名中添加名称修饰符,最重要的是,HLS 媒体清单。但是,当使用 CMAF 输出时,相同的字段存在于Output Groups > CMAF > H.254 (or whatever you choose) > Output Settings > Name modifier,但不是必需的。因此,如果您不输入名称修饰符,则 HLS 主清单和 HLS 媒体清单将被赋予相同的名称。这会导致 HLS 主清单覆盖 HLS 媒体清单,然后还引用自身,因为它们都被赋予了相同的名称。

我已经向 AWS 反馈报告了这个错误,但谁知道这需要多长时间或者他们是否会解决。我鼓励其他有此问题的人也这样做。

于 2021-01-12T17:24:49.117 回答