Android react-native-video 无法在 m3u8 视频中播放

Android react-native-video doesn't playback in m3u8 video

  1. 我的问题是我无法通过react-native-video播放m3u8碎片视频。但是来自不同资源的另一个测试 m3u8 确实有效。我认为我的转码 CMAF m3u8 已损坏,因此无法正常工作,但它可以通过 react-native-video 在 ios 上工作,我尝试通过 demo.theoplayer 对其进行测试并且它工作正常。

  2. 我通过 AWS MediaConvert 从 mp4 转码为 CMAF m3u8 创建作业模板并配置一些设置。

  3. 我的代码很简单:

<Video
   style={{ flex: 1, backgroundColor: 'black' }}
   source={{uri: 'https://d7m8ah93fnh1v.cloudfront.net/media/ROOM/03bc46a8-eb9f-4f94-950e-55da3c9b4a77/567e932f-d964-43c5-8866-247a9e777d35/567e932f-d964-43c5-8866-247a9e777d35.m3u8'}} 
/>

我们的建议是确定这是流格式问题还是播放器方面的问题。为此,我们建议使用 Apple 的 'stream validator' 工具验证流,该工具是 Apple 网站提供的 'HLS tools' 包的一部分。我们还建议在其他播放器(如 JWplayer、Shaka 播放器等)中检查流的播放情况。仅供参考,我在 bitmovin 测试播放器和 hls.js 中尝试了您的来源 URL,它对我来说播放效果很好两个。

如果播放问题是特定于 react-native 视频播放器的(这似乎很可能),那么有两条途径可以追求:[a] 与 React 团队一起打开一个错误;和 [b] 检查 React 播放器的推荐设置,然后尝试修改您的编码设置以生成 React 播放器可以毫无问题地处理的流。