视频源类型标签是可选的吗?如果是这样,我应该将src内联而不是嵌套吗?

1.2*_*tts 5 html html5 html5-video

我正在使用以下内容来显示视频播放器:

<video id="VideoPlayer816" controls="true" >    
    <source src="me-breaking-dancing-naked-covered-in-peanut-butter-and-jelly-num-33.mp4">
</video>
Run Code Online (Sandbox Code Playgroud)

我必须type="video/mp4"source标签中贴上吗?使用前面的代码,它在Firefox中可以正常工作。

我不确定是否每次都会使用相同的视频类型,所以如果浏览器可以识别出我是否不包含它,我就不想对其进行硬编码或对扩展名进行正则表达式*。

根据caniuse的说法,所有浏览器都支持h264mp4类型,即http://caniuse.com/#feat=mpeg4

我可以安全地离开type标签吗?还是应该将src内联,因为我希望浏览器为我找出类型?

* 扩展有很多问题,有时没有问题,有时不正确。一些专业软件完全忽略扩展名类型,而是使用文件头。

如果我无法控制视频的名称和扩展名,我宁愿使用浏览器来确定视频类型。提示:用户将能够从手机或笔记本电脑上上传快速的视频类型。

Sve*_*nov 6

根据WHATWG HTML生活标准

type属性提供媒体资源的类型,以帮助用户代理在获取媒体资源之前确定它是否可以播放该媒体资源。如果指定,则其值必须是有效的MIME类型。

换句话说:该type属性是可选的。如果指定,则其目的是帮助浏览器确定是否可以播放资源。

在处理多个源时type,指定(就此而言source)最有意义。例如:

<video>
  <source src="foo.webm" type="video/webm">
  <source src="foo.ogg" type="video/ogg"> 
</video>
Run Code Online (Sandbox Code Playgroud)

如果浏览器支持ogg但不支持,webm则浏览器将甚至不向要求一个字节foo.webm。相反,它将立即请求foo.ogg。这样可以节省至少一个HTTP请求,并显着缩短加载时间。

如果只有一个,source则省略type(或使用MediaElement src属性)更有意义,并避免可能的错误type值。恕我直言,type在这种情况下唯一指定的点是加快不支持源的检测。例如:

<video>
  <source src="foo.ogg" type="video/ogg"> 
  Ogg not supported
</video>
Run Code Online (Sandbox Code Playgroud)

从理论上讲,如果浏览器不支持ogg,则应Ogg not supported立即显示,甚至不要求foo.ogg。例如,如果正在实施Flash回退,这可能会派上用场。