如何在所有主流浏览器上播放 mp4 视频?
How to play mp4 video all major browsers?
有什么方法可以让 .mp4
视频在所有主流浏览器中都能正常播放吗?我听说 videojs 可以帮助我,但我不确定。如果浏览器不支持视频格式,这个库会自动将 flash 设置为回调吗?有人用过吗?请帮忙
.mp4
是否会 "work" 取决于 OS 和浏览器。 Cross-OS/browser 支持是通过提供多个来源实现的。
<video>
<source src="foobar.mp4" type="video/mp4" />
<!-- some other alternative sources -->
<source src="foobar.ogv" type="video/ogv" />
</video>
在某种程度上,您可能会说 mp4 已经可以在大多数主流浏览器中使用,但不幸的是,事情并没有那么简单。
mp4 是 'container' 并且其中的视频和音频可能使用各种编解码器进行编码,您需要检查您的浏览器是否支持这些编解码器(大多数支持 h.264),甚至使用不同设置的相同编解码器(例如,基线与主线配置文件)。
还有一些技术可以将元数据移动到 mp4 文件的开头,以允许它在整个文件下载之前立即流式传输 - 否则您的视频可能无法播放(或者甚至可能无法播放).参见:http://multimedia.cx/eggs/improving-qt-faststart/
事实上,创建一个不能在任何主流浏览器中播放的 mp4 是可能的。
正如 Keizom 所说,当前的最佳做法是提供多个视频源,其格式已知可与当前主流浏览器兼容。
竞争环境随着浏览器和视频格式的发展而不断变化也是毫无意义的——例如,不久前使用或回退到 Silverlight 的视频播放器现在将不再适用于一些最流行的浏览器,因为它们不再支持 Silverlight。
要查看当前图片,您需要查看一些根据浏览器变化定期更新的网站。两个很好的例子是:
- http://camendesign.com/code/video_for_everybody/test.html
- https://developer.mozilla.org/en-US/docs/Web/HTML/Supported_media_formats
您仍然可以实现这一点,同时允许您的用户仅上传一种格式(流行的视频托管网站就是这样做的)。您只需将他们上传的视频转换为支持您想要访问的浏览器集所需的最小格式集。
请注意,如果您担心在不同设备和不同网络条件下的播放质量,那么您实际上可能必须提供每种视频格式的多个比特率版本(以便客户端可以根据网络条件在比特率之间切换变化)。
当然,这会使您的服务器端更加复杂,并且还会使用相当多的计算能力,因此您需要确定您的用例是否适合这样做 investment/effort。
有什么方法可以让 .mp4
视频在所有主流浏览器中都能正常播放吗?我听说 videojs 可以帮助我,但我不确定。如果浏览器不支持视频格式,这个库会自动将 flash 设置为回调吗?有人用过吗?请帮忙
.mp4
是否会 "work" 取决于 OS 和浏览器。 Cross-OS/browser 支持是通过提供多个来源实现的。
<video>
<source src="foobar.mp4" type="video/mp4" />
<!-- some other alternative sources -->
<source src="foobar.ogv" type="video/ogv" />
</video>
在某种程度上,您可能会说 mp4 已经可以在大多数主流浏览器中使用,但不幸的是,事情并没有那么简单。
mp4 是 'container' 并且其中的视频和音频可能使用各种编解码器进行编码,您需要检查您的浏览器是否支持这些编解码器(大多数支持 h.264),甚至使用不同设置的相同编解码器(例如,基线与主线配置文件)。
还有一些技术可以将元数据移动到 mp4 文件的开头,以允许它在整个文件下载之前立即流式传输 - 否则您的视频可能无法播放(或者甚至可能无法播放).参见:http://multimedia.cx/eggs/improving-qt-faststart/
事实上,创建一个不能在任何主流浏览器中播放的 mp4 是可能的。
正如 Keizom 所说,当前的最佳做法是提供多个视频源,其格式已知可与当前主流浏览器兼容。
竞争环境随着浏览器和视频格式的发展而不断变化也是毫无意义的——例如,不久前使用或回退到 Silverlight 的视频播放器现在将不再适用于一些最流行的浏览器,因为它们不再支持 Silverlight。
要查看当前图片,您需要查看一些根据浏览器变化定期更新的网站。两个很好的例子是:
- http://camendesign.com/code/video_for_everybody/test.html
- https://developer.mozilla.org/en-US/docs/Web/HTML/Supported_media_formats
您仍然可以实现这一点,同时允许您的用户仅上传一种格式(流行的视频托管网站就是这样做的)。您只需将他们上传的视频转换为支持您想要访问的浏览器集所需的最小格式集。
请注意,如果您担心在不同设备和不同网络条件下的播放质量,那么您实际上可能必须提供每种视频格式的多个比特率版本(以便客户端可以根据网络条件在比特率之间切换变化)。
当然,这会使您的服务器端更加复杂,并且还会使用相当多的计算能力,因此您需要确定您的用例是否适合这样做 investment/effort。