在网页上播放多种后缀的视频文件的临时解决方案
来源:互联网 发布:linux解压文件命令 编辑:程序博客网 时间:2024/05/16 20:27
公司有一个项目,要在网页上播放各种视频文件。HTML5的video标签可以支持:1)带有 Theora 视频编码和 Vorbis 音频编码的 Ogg 文件;2)带有 H.264 视频编码和 AAC 音频编码的 MPEG 4 文件;3)带有 VP8 视频编码和 Vorbis 音频编码的 WebM 文件。但是明显只有mp4文件才是常见格式,其他的常见格式如:avi、rmvb和mkv都无法支持。
后来使用了ffmpeg+node-demux来解视频中每一帧的画面,然后使用yuv-canvas来将解出的yuv420格式的画面画到canvas上。我测试过的视频文件封装包括:mp4、avi、mkv、flv都能搞定。但是要注意:1)ffmpeg对于各种视频格式的解码器效率不一;2)使用node-demux的pause并不会停止解码,因此不能使用play来从暂停的地方继续播放。此外,这个解决方案有个要命的问题:没声音。
这周就想这个包来同时解码视频和音频。找了半天也没有找到。最有希望的是webchimera。它是基于vlc的,理论上应该可以支持各种格式的视频。但是它两年前就停止更新了,pre-built版本也比较老。
最后的解决方案如下:视频沿用现在的解决方案,音频使用audio标签来播放。在用户上传视频的时候,使用ffmpeg将视频中的音频压成同名mp3格式存储下来。然后,在用户播放视频时,播放同名mp3文件。可能有人说,你都压mp3了,直接在上传时压mp4不就得了。这个是这样:压mp3时间非常短,一般十几秒或者几十秒就好了。压mp4时间就长了。这种方案也有一个问题:音视频可能不同步(音视频确实没有做同步)。我在测试中见过音视频可能相差1秒的。但是一般感觉不到不同步,即使有字幕也不太能感觉到不同步。
- 在网页上播放多种后缀的视频文件的临时解决方案
- 在正在播放的视频文件上叠加图片
- 在正在播放的视频文件上叠加图片收藏
- 解决FLV视频文件在服务器上无法播放的问题
- 网页中播放视频文件的代码
- 网页中播放FLV视频文件的代码
- FLV视频文件在服务器上无法播放解决方案
- 在PowerPoint中播放多种音视频文件
- 在网页上播放声音文件的方式
- 在网页中插入mp3、mpg、rm等视频文件播放器的代码
- 如何在网页中播放rm视频文件
- 如何在网页中播放rm视频文件
- AVI 视频文件的播放
- 音视频文件的播放
- 解决FLV视频文件在IIS6.0上无法播放的问题
- 解决FLV视频文件在IIS6.0上无法播放的问题
- 如何在Fedora下播放mp3和多种格式视频文件
- 为什么网站上的flv视频文件不能播放
- 最小生成树(普利姆算法、克鲁斯卡尔算法)
- JKS导出的P12无法导入keychain或转换成pem问题:Error outputting keys and certificates
- 关于Lisp采用波兰式的一些想法
- 数学算法:poweroj1026-丑数(根据固定倍数得到从小到大的序列)
- 我与Linux系统
- 在网页上播放多种后缀的视频文件的临时解决方案
- macOS 修改网卡地址出现basicipv6validationerror怎么改
- linux之进程管理详解
- Xshell常用命令
- CSU 1508 地图的四着色
- Android签名证书jks转换成signapk使用的分离模式
- Deep Learning(深度学习)学习笔记整理系列之(七)
- Java多线程
- 孪生素数