S3 视频在 edge 中播放并反应本机但不是 chrome 或 firefox

S3 video play in edge and react native but not chrome or firefox

我工作的应用程序的一位用户遇到问题,她上传的所有视频都无法在 HTML5 视频播放器中播放,iOS 的 Edge 和 Safari 除外(如果它在那里工作,我认为它可以在其他浏览器中工作)

视频可以在我们的 react-native app 中播放,也可以下载后播放,但不能直接使用 S3 或 cloudfront link

由于其他用户的视频有效,我假设它与加密和 S3 规范有关,有没有人遇到过这个问题并找到了解决方案?

编辑:忘记放一个样本 link https://video-reetags.s3.eu-west-3.amazonaws.com/compressed/aed0a512a419334fe5d0c0c6fb4094a21610642052.mp4

Since the videos from the other users are working fine, I'm assuming it's related to encryption and/or S3 specifications...

不,问题不是加密或 S3 服务器问题。

您的 MP4 容器包含 HEVC 格式(又名 H.265)的视频,在 Chrome 或 Firefox 中不支持。由于支持 AAC 音频,您应该仍能听到声音部分。

可以使用 React-Native 和其他(本地)视频播放器播放视频,因为它们依赖 O.S 运行 播放器 App 来解码视频。如果浏览器品牌没有购买 HEVC 许可证,则该浏览器无法播放它。

解决方案:
将此类视频重新编码为包含带 AAC 音频的 H.264 的 MP4(...不是带 AAC 的 H.265)。
重新编码需要时间,但这是目前唯一的方法。用户在任何上传之前执行此操作,或者您自己的应用程序接受任何文件并在服务器端重新编码“不支持”的文件(eg: 使用 FFmpeg 或 GS​​treamer 工具)。