我在用
视频/mp4
格式并在“video js”中使用,这在 chrome 中运行良好,但在 Firefox 中存在问题。在控制台中出现以下错误:
不支持“video/mp4”的指定“type”属性。媒体资源 # 加载失败。
Chrome、Firefix、IE 和 Safari 等所有主要浏览器是否都支持任何单一的视频编解码器。
提前致谢。
我在用
视频/mp4
格式并在“video js”中使用,这在 chrome 中运行良好,但在 Firefox 中存在问题。在控制台中出现以下错误:
不支持“video/mp4”的指定“type”属性。媒体资源 # 加载失败。
Chrome、Firefix、IE 和 Safari 等所有主要浏览器是否都支持任何单一的视频编解码器。
提前致谢。
MP4
是一种容器格式,因此放入其中的编解码器也很重要。
Firefox仅在您有可用的第三方解码器时才MP4
支持H.264
视频和AAC
/或音频。MP3
如果您正在寻找一种单一的格式来统治它们,那么您就不走运了,因为目前没有。
您处理此问题的方式是将相同的内容文件转码为多种格式,并在播放器中使用回退机制。
请参阅 Mozilla 上的媒体格式页面,了解支持的内容和位置。例如。WebM
使用VP9
/ VP8
, Vorbis
/Opus
可在 Firefox 上运行。
通常,回退通过将同一文件的所有不同版本指定为<video>
标签的源来工作。浏览器将选择它可以播放的第一个。
来自HTML5 Rocks的示例:
<video controls>
<source src="devstories.webm" type='video/webm;codecs="vp8, vorbis"'/>
<source src="devstories.mp4" type='video/mp4;codecs="avc1.42E01E, mp4a.40.2"'/>
</video>
如果浏览器无法播放WebM
,它将退回到MP4
.
在我的非详尽测试中,我发现 mp4 容器中带有 aac 音频的 h264 视频(使用 ffmpeg 转码)至少适用于以下浏览器:
我在 Ubuntu 18.04 上使用以下 ffmpeg 参数对来自数码摄像机的视频文件进行了编码:
ffmpeg -i before.mov -y -loglevel 31 -filter:v fps=fps=30 -movflags +faststart \
-f mp4 -vcodec libx264 -vf scale=1280:-1 -acodec aac -b:a 128k \
-b :v 1000k -preset faster 'after.mp4'
编辑
我发现,奇怪的是,一个 mp3 音频文件在 Safari/MacOS 中的音频标签中播放。但是带有 mp3 音轨的视频不会播放音频。