程序员最蛋疼的事情莫过于,明明你是后台,非得让你搞搞界面、弄弄前端,明明是算法,非得让你搞搞软件。话说回来,多学点东西总没错,但学得太杂也容易搞丢了老本行,换句话说,什么都会等于什么都不会。在这个分工愈加细化的社会上,对于搞技术的码农来说,学习的深度比学习的宽度有用得多。
闲话少说,因项目需要,作者要搞一个opencv图片写高质量MP4的程序,一想到视频相关,肯定离不开ffmpeg。ffmpeg是一个既让人高兴又让人忧伤的玩意,高兴是因为开源,谁都可以整一整,忧伤是因为这东西太麻烦,要从头到尾学一遍的话,对于临时借用者来说,实在浪费时间,毕竟不是谁都搞视频处理。
opencv利用ffmpeg写了一个videowriter的接口,但这接口实在让人无语,无法对视频的质量进行控制。当然你也可以用opencv,将Mat保存为图片格式,再用ffmpeg的命令进行处理,只是读写硬盘浪费时间,对于算法工程师来说,这就是最大的罪过。总而言之,在考虑程序效率和灵活性的情况下,只好搞个小程序出来跑跑。话说回来,这个小程序后续项目多次用到,还是挺好使。
ffmpeg的资料网上到处都有,但很少有系列的、深入浅出的讲解,但牛人毕竟多