从 react-native 上传的 .mp4 文件无法在 chrome 中播放

.mp4 file uploaded from react-native won't play in chrome

我有一种情况,我通过 expo / react-native 录制了一段视频并将其上传到 s3 存储桶。但是,当我在浏览器中访问 s3 link 时,视频将无法播放。但是,如果我先下载该视频,它将在 VLC 媒体播放器中播放。我不确定为什么视频无法在 chrome(或任何其他浏览器)中播放。预期的行为是 link 将在浏览器中播放。

重现步骤:

  1. 通过 react-native 录制视频(这会将视频保存为 .mov 文件)
  2. "Convert" 通过使用 Expo 的 FileSystem.moveAsync() 将文件重命名为 .mp4
  3. 将文件更改为 .mp4
  4. 上传到 s3(mime 类型 video/mp4)
  5. 在浏览器中打开s3 link:

但是,如果我下载视频并在 VLC 中打开它,它会正常播放。有谁知道发生了什么事?

注意 - 我受到此 SO 的启发,只需更改文件的扩展名即可将 .mov 转换为 .mp4 How can I convert mov to mp4 on ios device

Link 到文件: https://sandbox-of-sandboxes.s3.amazonaws.com/iKmlKprIs.mp4

文件使用 HEVC 编解码器编码。并非所有浏览器都普遍支持 HEVC。您必须将文件转换为 AVC/h.264