我正在通过HTML5 video元素提供视频。我发现有关m4v视频的适当MIME类型的信息存在冲突。大多数演示在标记的source标记中将type属性设置为video/mp4。我读过的一些文章指出了web服务器Mimetype的video/m4v,而其他文章则指出了video/mp4。哪一个是正确的?
例如,请参阅本文indicating video/m4v mimetype:http://html5center.sourceforge.net/make-your-html5-video-play-on-mobile-devices
这篇文章指出了video/mp4:http://www.coolestguyplanettech.com/use-html-5-video-on-all-browsers/
发布于 2013-03-08 02:58:37
标准媒体类型为video/mp4。
标准mp4容器格式通常用于AAC音频和H.264视频+ AAC音频。它们有不同的媒体类型,audio/mp4和video/mp4,但是您通常希望音频和视频使用不同的应用程序,并且在某些系统上只能将默认应用程序与文件扩展名相关联。因此,在一些圈子中,在mp4容器中分别对音频和视频(+音频)使用扩展.m4a和.m4v已经变得流行起来。但是,这不会影响媒体类型,媒体类型已经使用音频或视频前缀来区分它们。
然而,一个转折是,苹果开始使用自己的媒体类型video/x-m4v来存储来自商店的视频,这些视频位于mp4容器中,并使用.m4v扩展。默认设置为在iTunes中打开视频。有时这是必要的,因为视频使用数字版权管理、AC-3杜比数字音频或其他功能,这些功能在mp4容器中通常不受支持,但在iTunes for files with a .m4v extension中受支持。如果您依赖于这些功能,那么您可能希望使用此媒体类型,而不是标准媒体类型。
没有x-的媒体类型在RFC中标准化,并由IANA跟踪。没有名称为video/m4v has been standardized的介质类型。非标准媒体类型具有x-前缀。
发布于 2014-10-15 12:38:22
我只为特殊项目编写HTML5,但我遇到了一个问题,我很偶然地解决了这个问题。在我的代码块中,我像这样编写视频代码:
<source src="Videos/myvideo.mp4" type="video/mp4">
<source src="Videos/myvideo.webm" type="video/webm">这就是我的问题:如果我把声音行放在第一位,Google Chrome会播放视频部分,但会出现no mp4 。如果我把webm行放在第一位,Google Chrome会正确地播放视频和声音,但Apple Safari根本不会检测到视频。即使我在type=语句中添加了编解码器信息,也没有任何效果。
我正要放弃并尝试使用Flash,但我偶然发现了解决方案,大部分都是偶然的。在mp4行中,我将type="video/mp4“替换为type="video/m4v”。它完全解决了这个问题!注意:我没有将视频文件扩展名从mp4更改为m4v --我只在type=语句中使用了m4v。
我找不到任何文档告诉我这样做,我只是对.mp4和.m4v文件扩展名之间的区别感兴趣,并开始尝试。我使用Linux ( my Xubuntu),我用Openshot视频编辑器将我的视频创建为webm和H.264两种mp4文件。也许Openshot的内部工作机制导致了这个问题,但不管怎样--这就是我解决这个问题的方法。我的mp4视频播放得很好。我希望这对其他人有帮助-- MinnesotaJon
发布于 2021-04-05 04:12:40
8年后,在Linux上的Brave Version 1.22.70 Chromium: 89.0.4389.105 (Offizieller Build) (64-Bit)和Firefox 86.0.1 (64-Bit)上进行了实际测试,回答了这个问题。
<video controls="" controlslist="" preload="metadata">
<source type="video/m4v" src="https://example.com/v.m4v">
</video>不起作用。
但是video/x-m4v和video/mp4都使用我正在测试的m4v文件。我想最好是根据公认的答案使用x-m4v。
https://stackoverflow.com/questions/15277147
复制相似问题