用CefSharp的开发者遇到视频播放都踩一个坑,就是通用的视频格式都是不支持的
那么不考虑插件的情况下,我们就只能考虑上传OGG格式或者WebM格式,那么在最近的调研过程中,总结了以下各种转码的解决办法:
1.FFmpeg(GitHub地址)
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序
–源于百度百科
市面上10有8,9的都是采用了FFmpeg内核,而转换成OGG只要一个简单的指令
ffmpeg -i 2.mp4 -q:v 6 2-4.ogg
-i 是指定源文件
-q:v是视频的质量(quality)
最后面的就是输出路径
但是这个对用户(没有UI界面)不太友好,所以弃用
2.格式工厂
格式工厂的版本转码出来会有个花屏的问题,结合他的输出日志硬是调了半天都没解决
ffmpeg.exe -y -i [源文件名] -c:v:0 libtheora -b:v 18.54M -aspect 1.843 -ar 48000 -b:a 128k -c:a libvorbis -ac 2 -strict -2 -rtbufsize 30m -max_muxing_queue_size 1024 [输出文件名]
最后发现应该是他的FFmpeg文件有问题,在根目录下替换一下就好了
3.搞笑软件
当时发现由于花屏问题没解决,一直在思考是不是OGG转码有问题呢,然后在外网上发现一个软件,支持MP4转OGG
的确好使,也很清晰,就是要收费,不收费的前提下只能预览几秒
然后聪明的我就检测一下他到底用的啥转码器,果不其然还是FFmpeg
一顿操作下把他的日志给输出来
hhmedia -i [文件名] -dn -sn -c:v libtheora -s 2558x1388 -aspect 2558:1388 -q:v 6 -r 22.100 -c:a libspeex -ar 32000 -ac 2 -b:a 44000 -t 23 -y [输出文件名]
就这样子套壳还收20美刀一台机器真的是…….
4.VLC
VideoLAN,日常linux下面也很常见了,和FFmpeg同样级别的存在
这个转码操作有点复杂,而且码率要自己调,就没这么无脑了
然后等进度条读完,就完成了
如果觉得有点太模糊,可以根据原始文件的码率,在最后一步中点击配置项进行调整
总结
在不考虑UI界面的情况下还是选第一个比较好吧