没用过opencv,只用过ffmpeg。

opencv是处理图像,比如说:区域图像叠加 、 图像混合 、视频解码 等等很多功能~

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

简单的说,opencv功能比FFmpeg多。

如果你需要做视频图像处理的话,就需要两者结合来做,不存在选择的问题。

就解码而言:

1.opencv运行速度比ffmpeg慢很多,一般一个6,7分钟的视频ffmpeg只需要1,2分钟就可以搞定,而opencv这样做法需要5分钟左右。

2.ffmpeg只需要用一句控制台语言就可以解帧,opencv比较复杂。

3.ffmpeg解帧出来的图像质量比较差,opencv解帧出来的图像质量高很多,但是这样就花费了更多的硬碟空间,30M左右的视频ffmpeg需要大概100多M的空间,而opencv方法需要600多M。


ffmpeg和opencv是不同的东西。ffmpeg是一套开源的多媒体框架,支持各种格式及流媒体文件的播放,以及格式转换,转换编码等。其包含各种协议解析器(hls,rtmp等),各种文件包装器分析器(mp4,ts等),各种编码器和解码器(h264,mp3等),以及render,音视频同步的处理。

而opencv是一个跨平台的计算机视觉库,包含各种图像处理和计算机视觉演算法,比如双摄像头深度图计算,人脸识别等等。

所以主要看你的使用场景是什么,根据使用场景来决定用哪一个。


推荐阅读:
相关文章