S3 视频在边缘播放并响应原生但不是 chrome 或 firefox

时间:2021-03-10 11:20:32

标签: amazon-s3 html5-video

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

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

由于来自其他用户的 vieos 工作正常,我假设它与加密和 S3 规范有关,有没有人遇到过这个问题并找到了解决方案?

编辑:忘记放示例链接 https://video-reetags.s3.eu-west-3.amazonaws.com/compressed/aed0a512a419334fe5d0c0c6fb4094a21610642052.mp4

1 个答案:

答案 0 :(得分:2)

<块引用>

由于来自其他用户的视频工作正常,我假设它与加密和/或 S3 规范有关...

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

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

使用 React-Native 和其他(本机)视频播放器可以播放视频,因为它们依赖于运行播放器应用程序的操作系统来解码视频。如果浏览器品牌未购买 HEVC 许可,则该浏览器无法播放。

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