HTML 视频标签在 Google Chrome 中将 MOV 文件读取为音频文件

问题描述

这是从我的 iPhone 8 复制的 MOV 视频文件 URL。
https://www.yangfamily.tw/attachments/IMG_3049.MOV

然后我尝试在 Chrome 上播放这个视频,html 代码如下:

<video width="320" height="240" controls>
  <source src="https://www.yangfamily.tw/attachments/IMG_3049.MOV">
  Your browser does not support the video tag.
</video>

好的,已经加载成功了。 但是没有显示框架,只显示控件。

然后我右键单击控件,菜单显示它是一个AUdio文件,而不是视频文件

Right clicked on the controls

这确实是一个视频文件,我可以播放这个视频文件并在任何其他播放器上成功显示帧。 为什么这个 MOV 视频文件在谷歌浏览器中被读取为音频文件(Chrome 版本:90.0.4430.93 64 位)

有什么想法吗?

解决方法

在您的 <source> 标签中,您需要添加 type='video/mp4'

像这样:

<source src="https://www.yangfamily.tw/attachments/IMG_3049.MOV" type='video/mp4'>

,

此视频编码为 h.265 HVEC。

ffprobe 是一个免费的开源工具(在线版本:https://ffprobe.a.video/probe?url=https%3A%2F%2Fwww.yangfamily.tw%2Fattachments%2FIMG_3049.MOV

当我查看编解码器时:

codec_long_name : H.265 / HEVC (High Efficiency Video Coding)

h265 仅在 Safari 中受支持。它是专利/特许权使用费。您应该将视频重新编码为 h264 - 并提供该版本(99.9% 浏览器支持)。

Chrome 可以播放音轨:

codec_long_name : AAC (Advanced Audio Coding)

这就是为什么您只能在 Chrome 中获得音频。