沒用過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是一個跨平臺的計算機視覺庫,包含各種圖像處理和計算機視覺演算法,比如雙攝像頭深度圖計算,人臉識別等等。

所以主要看你的使用場景是什麼,根據使用場景來決定用哪一個。


推薦閱讀:
相關文章