所有主流浏览器的视频编解码器

时间:2015-11-24 13:30:47

标签: html5 video cross-browser video.js video-codecs

我正在使用

  

视频/ MP4

格式并在'视频js' 中使用,这在Chrome中运行良好,但在Firefox中存在问题。在控制台中出现以下错误:

指定"输入"属性"视频/ mp4"不受支持。媒体资源加载失败。

Chrome,Firefix,IE和Safari等所有主流浏览器是否支持任何单一视频编解码器。

提前致谢。

2 个答案:

答案 0 :(得分:3)

MP4是一种容器格式,因此您在其中放置的编解码器也很重要。

Firefox支持MP4 H.264用于视频,AACMP3用于音频,仅当您有第三方解码器时才支持。如果您正在寻找一种格式来统治它们,那么您就不会幸运,因为目前还没有。

您处理此问题的方法是将相同的内容文件转码为多种格式,并在播放器中使用后备机制。

请参阅Mozilla上的Media Formats页面,了解支持的内容和位置。例如。 WebM / VP9 VP8Vorbis / 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

答案 1 :(得分:2)

在非穷举测试中,我发现mp4容器中的aac音频的h264视频(用ffmpeg转码)至少适用于以下浏览器:

  • Android和Windows 10上的Chrome 80
  • iPadOS和iOS 13.4以及MacOS 10.15上的Safari
  • Windows 10上的Internet Explorer 11
  • Android和Windows 10上的Firefox 74
  • Windows 10上的Edge 80

我在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音轨的视频无法播放音频。