前端怎样播放多种格式的视频呢?
在html5里的video支持的格式比较有限:比如: Ogg、MPEG4、WebM。而且有些格式对于浏览器的兼容性却各不同。
如果想播放其他格式的视频怎么办呢???
比如avi,WMV之类的怎么办呢?
有没有什么插件之类或者什么方法可以实现播放吗?
回答:
几种方式:
- 类似 Streamedian Player URL 这个软件,在客户端实现转码,再由浏览器播放
- 简单点,接收url后调用本地视频播放软件。当然需要软件支持
- 还有像上面老哥说的服务端转码
- 使用IE的特定ActiveX插件,进行转码,但很难用而
回答:
除非装专门的插件,否则一个确定的浏览器,默认只支持有限的几种视频格式,即使你列举的其实也不准确,一般是Ogg、MP4和WebM,而且并不是所有浏览器都支持这几种。
其实说到视频格式,这是一个很复杂的东西,涉及
- 编码格式
- 封装格式
等等,可以参考ffmpeg的文档,不同的编码需要不同的解码器解码(音频和视频还需要分开解码),封装格式又涉及到数据包管理,总之是一个很复杂的东西,所以浏览器中会选择性的内置几个性能特性比较好的格式来支持,比如当前流行的就是MP4 H.264/AAC
这其中H.264是图像编码格式,AAC是音频编码格式。此外为了在线流式播放,还需要特殊处理封装,把一些meta信息写到头部,方便快速开始播放。
avi是一种封装格式,里面可以包裹几乎任何的编码,所以需要在文件信息中提取相应信息,才找到对应解码器来播放。
wmv曾经是一直流行的浏览器支持的格式(微软ie主推的),但现在不流行,被更通用的mp4替代了。
当然,并不是说不能在浏览器中播放,只要能解码,都可以播放,比如对应插件,或者浏览器解码库,但这些开发成本很高,性能效率还不行,还不如直接转码视频到支持的格式来的方便。
回答:
如果只是单纯的视频容器不支持,但编码是支持的还是有些办法,比如flv.js就可以让浏览器支持播放avc编码的flv视频
如果是编码不支持就没啥好方法了,强行js/wasm软解也不是不行(比如说https://github.com/numberwolf...这个项目就是wasm软解h265编码的视频播放),但对电脑性能要求很高,清晰度高一点解码速度就跟不上了
最好的方案还是服务端转码
如果说网页的访问环境你能控制直接强制要求浏览器型号&版本就是了,如果你控制不了,你就算找到了插件也没法控制用户去安装插件不是吗
回答:
不然你以为优酷为啥要上传视频之后后台转码呢?你可以直接用优酷开放api处理视频,不建议自己搭建ffmpeg,没经验不懂多媒体基础的你根本玩不转这个。建议直接用优酷api
以上是 前端怎样播放多种格式的视频呢? 的全部内容, 来源链接: utcz.com/p/935750.html