RecordRTC录制的视频对比以及h26四转为mpeg-4

使用RecordRTC官网的Demo,录制同样为30s的视频,相同的运动画面,采用不同编码方式,每个视频录制两遍,对比视频体积。

使用RecordRTC录制视频时支持的格式:

vp8,vp9,mkv,h26四,使用whammy编码

通过mimeType参数设定,具体参数对应格式可以参考RecordRTC官网

经whammy编码器输出的视频文件无法在edge中使用<video>标签播放,也无法通过videojs播放 ,无法在potplayer之中打开,甚至无法通过hankbrake识别,原因可能是代码过于老旧,应避免使用。

对比结果:

default    3.03m      3.23m

h26四     3.05m   3.11m

mkv    3.10m   3.13m

vp八   9.25m    9.46m

vp9   7.53m     7.03m

whammy   5.04m   8.13m

在potplayer之中打开之后发现h26四/mkv/default显示的都是h26四格式,区别可能就是封装格式不同,default为webm扩展名,h26四为mp4,mkv为mkv。

vp8和vp9的扩展名都是mp4,potplayer之中打开则分别显示编码方案为vp8和vp9。

 

进行对比时使用的软件或库的版本号:

edge 版本 115.0.1901.203 (正式版本) (六十4 位)

Video.js 8.5.2    videojs/video.js GitHub

RecordRTC 5.6.2  muaz-khan/RecordRTC GitHub

potplayer 230707(1.7.21953)

 

有些浏览器支持mimeType = “video/mpeg”,但是edge不支持。mimeType = “video/webm”时,文档里写的是默认使用vp8编码,测试之后发现使用的是h26四编码.

vp8和vp9在potplayer播放时有控制条,但时间显示有问题,其他视频在potplayer之中播放没有控制条。

输出的所有视频,win10自带媒体播放器都无法播放,且无法显示缩略图.

使用ffmpeg转码成mpeg-4看下面的代码,演示了怎样通过摄像头录像并保存为mpeg编码的mp4.

这样转码之后的mp4,可以在媒体播放器中播放并有缩略图,但是浏览器不支持(无法通过edge和videojs播放)

muaz-khan/Ffmpeg.js GitHub

该项目使用ffmpeg-asm.js转码,但这个文件很大,有18m,需要先下载下来再解码,而且下载链接还失效了.

可以将该项目下载到本地,然后开启一个本地server,类似http://localhost:5173/ 这样,将ffmpeg-asm.js放在服务根目录,再修改workerPath为http://localhost:5173/ffmpeg_asm.js

这样就可以正常使用了,而且下载ffmpeg-asm.js的速度更快,不过这样操作之后merging-wav-and-webm-into-mp4.html这个demo依然不可用.

而且这样转码,时间比较长,转码之后的mp4也比h26si体积更大.仅供参考

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章