[转载]为什么有些MP4文件在Chrome浏览器上播放不了?

摘要:
为什么是部分MP4呢?但MP4本身不是一种简单的视频格式,它是一个包装了视频和音频格式的壳。然后,我猜测问题的原因是这样的:Chrome浏览器见到MP4后缀的文件,使用了原生HTML5视频播放起播放,但却发现视频格式无法解码。如果Google不再支持在Chrome上原生播放MP4,那么会调用Flash播放器播放,这样反而不会出现有些MP4文件播放不了的问题。为什么Chrome不支持所有的视频编码格式?由于它违反了FFMPEG的LGPL许可协议,备受指责。

http://blog.sina.com.cn/s/blog_6bb7ebcc0101c2ja.html

Chrome浏览器支持HTML5,它支持原生播放部分的MP4格式(不用通过Flash等插件)。

为什么是部分MP4呢?MP4有非常复杂的含义(见http://en.wikipedia.org/wiki/Mp4),普通人对MP4的理解是后缀为.mp4的文件。但MP4本身不是一种简单的视频格式,它是一个包装了视频和音频格式的壳。至于里面的视频和音频使用什么编码格式是可变的。MP4的视频格式可以使用DivX也可使用H264,Chrome只支持H264。

然后,我猜测问题的原因是这样的:Chrome浏览器见到MP4后缀的文件,使用了原生HTML5视频播放起播放,但却发现视频格式无法解码。对于Firefox,它不支持原生播放MP4,于是使用了Flash,绝大部分的视频格式基本都可通过Flash播放。

这篇2011年1月的消息提到Google将放弃对H264的支持:http://www.infoq.com/cn/news/2011/01/chrome-h264。这篇是Google方面的描述:http://blog.chromium.org/2011/01/html-video-codec-support-in-chrome.html。如果Google不再支持在Chrome上原生播放MP4,那么会调用Flash播放器播放,这样反而不会出现有些MP4文件播放不了的问题。

为什么Chrome不支持所有的视频编码格式?绝大部份的视频编码格式都是要付版权费的,Google已经为H264买了单,Firefox没有Google那么有钱不愿意买。
下面是各浏览器对HTML5 Video的支持(http://en.wikipedia.org/wiki/Html_video_tag)
BrowserLatest stable release version dateFormats supported by different web browsers
OggTheora H.264 VP8(WebM)
Internet Explorer 9.0.2(August 11, 2011; 6 months ago)Manual install[note 2]9.0[23]Manual install[note 3]
Mozilla Firefox[26] 10.0.2(February 16, 2012; 10 days ago)[27]3.5[28]Manual install/Microsoft Windows only[note 4]4.0[30][31]
Google Chrome 17.0.963.56(February 15, 2012; 11 days ago)3.0[32][33]Planned for removal[34]6.0[35][36]
ChromiumN/Ar18297[37]Manual install[note 5]r47759[39]
AndroidbrowserN/A2.3[40]3.0[40]2.3[40]
Safari with Quicktime 5.1.3(February 1, 2012; 25 days ago)Manual install[note 6]3.1Manual install[41]
Opera 11.61(January 24, 2012; 33 days ago)10.50[42]No10.60[43][44]
Konqueror 4.8(25 January 2012; 32 days ago)[45]4.4[46]Manual install[note 7]Yes[48]
Epiphany 3.2.2(16 November 2011; 3 months ago)[49]2.28[50]Manual install[note 8] Yes[note 8][51]

最后,我录制了一段教学视频,指导大家怎样把各种视频转换成兼容性比较好的MP4文件。视频中使用的软件是“格式工厂”(http://www.formatoz.com/CN/index.html),这个软件基本上只是做了一个界面,其核心调用了开源软件FFMPEG。由于它违反了FFMPEG的LGPL许可协议,备受指责。使用Linux的朋友可以直接使用FFMPEG命令进行视频格式转换,命令如下:

ffmpeg -i infile.flv -vcodec libx264 o5.mp4

如果转换出的视频在某些设备还是无法播放,可以试试利用MediaCoder转换兼容性更好的MP4

参考:

http://www.w3school.com.cn/tags/av_met_canplaytype.asp
https://html.spec.whatwg.org/multipage/embedded-content.html#the-video-element

免责声明:文章转载自《[转载]为什么有些MP4文件在Chrome浏览器上播放不了?》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C语言 锁的使用总结如何在Mac OS X中开启VIM语法高亮和显示行号下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux程序包管理.md

rpm 简介 RPM包管理员(简称RPM,全称为The RPM Package Manager)是在Linux下广泛使用的软件包管理器。RPM此名词可能是指.rpm的文件格式的软件包,也可能是指其本身的软件包管理器(RPM Package Manager)。最早由Red Hat研制,现在也由开源社区开发。RPM通常随附于Linux发行版,但也有单独将R...

[无线路由] “免费”斐讯K2路由器刷OpenWRT(实战MWAN多宽带网速叠加)

(阿财首发于什么值得买)斐讯K2可以算是一个非常另类的跨界数码产品,其产品完全的醉翁之意不在酒。最多值99元的 MT7260硬件架构和用料,售价399元,金额激活K码后自动转入合作理财P2P平台,等待一个月可以全额返还路由器金额的“免费”模式,让阿财的小 伙伴们在群里讨论差不多大半个月。心痒痒又怕上了贼船,因为阿财的家中实际上有2条宽带 ——线路一、联通2...

IOS崩溃日志解析(crash log)

IOS的应用程序少不了crash,互联网统计分析工具友盟有一项目错误分析的功能,专门用于应用程序崩溃日志统计,最近研究友盟上统计到的崩溃日志,在此对崩溃日志做一个简单的总结。 IOS崩溃日志分类: 一、低内存崩溃:IOS设备检测到低内存时,虚拟内存系统发出通知请求应用释放内存。这些通知发送到所有正在运行的应用和进程,试图收回一些内存。如果内存使用依然居高不...

关于ffmpeg解决主流浏览器无法播放wmv、avi等格式视频问题(内附linux环境相关安装包nasm、yasm、x264等)

最近接到一个老项目,由于老项目之前适配的是ie浏览器。该老项目中有很多wmv和avi格式的视频。最近需要更换视频其他浏览器访问,需要对除ie浏览器的其他浏览器进行适配。ie浏览器播放视频没有任何问题,但是在主流浏览器中,无法识别<embed>标签,只支持<video>、<audio>标签,然而这些标签支持的视频格式为主流...

Python+Appium寻找蓝牙/wifi匹配

前言: 此篇是介绍怎么去寻找蓝牙,进行匹配。主要2个问题点: 1.在不同环境下,搜索到的蓝牙数量有变 2.在不同环境下,搜索到的蓝牙排序会变 简单思路: 将搜索出来的蓝牙名字添加到一个list去,然后在去匹配list里是否有你要匹配的蓝牙,找到了就点击,没找到,又进行下一次寻找,知道找到为止 简单代码: #coding:utf-8 from appium...

Java 处理PDF图章(印章)——图片图章、动态图章

图章(印章)是一种在合同、票据、公文等文件中表明法律效应、部门机关权威的重要指示物,常见于各种格式的文件、文档中。对于纸质文档可以手动盖章,但对于电子文档,则需要通过特定的方法来实现。本篇文档分享通过Java代码在PDF文档中添加图章的方法。内容将分两部分介绍: 1. 添加图片图章。即通过加载现有的图章(以图片形式),添加到PDF指定页面位置 2. 添加动...