2013-03-07 261 views
30

我正在通过HTML5 video元素提供视频。我发现有关适用于m4v视频的MIME类型的冲突信息。大多数演示在标记中的source标记中将type属性设置为video/mp4。我读过的一些文章指出,网页服务器Mimetype为video/m4v,而其他文章则为video/mp4。哪个是对的?M4V Mimetype - video/mp4或video/m4v?

见例如,这篇文章表明video/m4v MIME类型:http://html5center.sourceforge.net/make-your-html5-video-play-on-mobile-devices

而这篇文章表明video/mp4http://www.coolestguyplanettech.com/use-html-5-video-on-all-browsers/

回答

49

标准媒体类型是video/mp4

标准mp4容器格式通常用于AAC音频和H.264视频+ AAC音频。这些媒体类型具有不同的媒体类型audio/mp4video/mp4,但是通常您需要不同的音频和视频应用程序,并且在某些系统上只能将默认应用程序与文件扩展名相关联。因此,在一些圈子中,在mp4容器中分别使用扩展.m4a.m4v来分别用于音频和视频(+音频)。但是,这不会影响媒体类型,媒体类型已使用音频或视频前缀区分这些媒体类型。

然而,苹果公司开始使用自己的媒体类型video/x-m4v从他们的商店购买视频,这些视频位于mp4容器中,并使用.m4v扩展名。这被设置为默认在iTunes中打开视频。有时候这是必要的,因为视频使用DRM,AC-3杜比数字音频或mp4容器不常用的其他功能,但iTunes for files with a .m4v extension支持这些功能。如果你依赖这种能力,那么你可能想使用这种媒体类型而不是标准媒体类型。

没有x-的媒体类型在RFC中被标准化并由IANA跟踪。没有媒体类型的名称video/m4vhas been standardized。非标准媒体​​类型的前缀为x-

-1

其实这完全取决于其视频容器所使用。大多数浏览器都支持webm和/或mp4文件格式。提供这两个源文件的组合可确保浏览器查看文件。如果你想包含它,还有.ogg格式。

不太确定m4v格式,但它听起来像它不是一个常用的网络。无论如何,我会说视频/ m4v MimeType和MP4作为视频/ MP4 MimeType服务m4v。

+0

容器是m4v,对不起,如果不明确。视频编解码器是H.264,音频编解码器是mp4a。但我不认为这会影响模型,我相信只有容器会。 – 2013-03-07 17:53:38

5

我只为特殊项目编写HTML5,但是我遇到了一个我偶然能够解决的问题。在我的块,我在写视频这样的代码:

 <source src="Videos/myvideo.mp4" type="video/mp4"> 
     <source src="Videos/myvideo.webm" type="video/webm"> 

这里是我的问题:如果我把MP4线第一,谷歌Chrome将播放视频的一部分,但仍然会有没有声音。如果我先将webm行放入,Chrome浏览器将正确播放视频和声音,但Apple Safari根本无法检测到视频。即使我在type =语句中添加了编解码器信息,它也没有任何作用。

我正要陷入困境并尝试使用Flash,但是我碰巧遇到了这个问题,主要是偶然。在mp4的行中,我用type =“video/m4v”替换了type =“video/mp4”。它完全解决了这个问题!注:我做了不改变视频文件扩展从mp4到m4v - 我只在类型=语句中使用m4v。

我找不到任何文件告诉我这样做,我只是对.mp4和.m4v文件扩展之间的区别感兴趣,并开始玩耍。我使用Linux(Xubuntu),并使用Openshot Video Editor将我的视频创建为webm和H.264 mp4文件。也许Openshot的内部运作造成了这个问题,但无论如何 - 这就是我解决这个问题的方法。我的MP4视频播放完美。我希望这可以帮助别人 - 明尼苏达州约尔