如何将 VP9 webm、h264 MP4 和 h265 MP4 嵌入到单个视频标签中?
How can I embed a VP9 webm, h264 MP4, and h265 MP4 into a single video tag?
我想将视频标签放入 html 页面。如果他们的设备支持 webm,我希望它加载一个 webm 视频文件,否则它会加载 h265 MP4,如果他们的设备支持 h265,否则它将退回到 h264 MP4。
<video controls preload="metadata" width="720" >
<source src="v9.webm" type="video/webm">
<source src="h265.mp4" type="video/mp4">
<source src="h264.mp4" type="video/mp4">
</video>
正确的做法是什么?它似乎没有办法表明第一个 mp4 文件是 h265 文件,第二个是 h264,因此浏览器或设备可以适当地选择它实际可以显示的格式。
我会尝试以下方法:
<video id="video" controls>
</video>
<script>
var video = document.getElementById("video");
if(video.canPlayType('video/mp4; codecs="avc1.42E01E"'))
{
video.src = "h264.mp4";
}
if(video.canPlayType('video/mp4; codecs="hev1"'))
{
video.src = "h265.mp4";
}
if(video.canPlayType('video/webm; codecs="vp9"')
{
video.src = "vp9.webm";
}
</script>
您可以将第一个答案 JavaSCript 中显示的类型和编解码器放在源属性中 - 仅保留 HTM5。 MDN reference
因此,结合这两个响应,我得到:
<video controls preload="metadata" width="720" >
<source src="v9.webm" type="video/webm; codecs='vp9'">
<source src="h265.mp4" type="video/mp4; codecs='hev1'">
<source src="h264.mp4" type="video/mp4; codecs='avc1.42E01E'">
</video>
我想将视频标签放入 html 页面。如果他们的设备支持 webm,我希望它加载一个 webm 视频文件,否则它会加载 h265 MP4,如果他们的设备支持 h265,否则它将退回到 h264 MP4。
<video controls preload="metadata" width="720" >
<source src="v9.webm" type="video/webm">
<source src="h265.mp4" type="video/mp4">
<source src="h264.mp4" type="video/mp4">
</video>
正确的做法是什么?它似乎没有办法表明第一个 mp4 文件是 h265 文件,第二个是 h264,因此浏览器或设备可以适当地选择它实际可以显示的格式。
我会尝试以下方法:
<video id="video" controls>
</video>
<script>
var video = document.getElementById("video");
if(video.canPlayType('video/mp4; codecs="avc1.42E01E"'))
{
video.src = "h264.mp4";
}
if(video.canPlayType('video/mp4; codecs="hev1"'))
{
video.src = "h265.mp4";
}
if(video.canPlayType('video/webm; codecs="vp9"')
{
video.src = "vp9.webm";
}
</script>
您可以将第一个答案 JavaSCript 中显示的类型和编解码器放在源属性中 - 仅保留 HTM5。 MDN reference
因此,结合这两个响应,我得到:
<video controls preload="metadata" width="720" >
<source src="v9.webm" type="video/webm; codecs='vp9'">
<source src="h265.mp4" type="video/mp4; codecs='hev1'">
<source src="h264.mp4" type="video/mp4; codecs='avc1.42E01E'">
</video>