日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > centos >内容正文

centos

Centos下 ffmpeg 和opencv一起配合处理视频

發布時間:2025/3/21 centos 97 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Centos下 ffmpeg 和opencv一起配合处理视频 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

默認安裝的opencv 很多視頻格式打不開,cvCreateFileCapture返回值為NULL,為了解決此問題,需要安裝視頻編解碼的庫,我選擇安裝ffmpeg,我在windows下也用過這個庫。

1、下載ffmpeg

從svn上下載,需要先安裝svn

yum install subversion

svn checkout svn://svn.mplayerhq.hu//ffmpeg/trunk ffmpeg

下載下來的目錄下多了ffmpeg文件夾

2、安裝ffmpeg

cd ffmpeg

./configure --enable-shared --enable-gpl

make install?

出錯,出錯信息如下:

libavcodec/x86/h264_qpel_mmx.c:1294: Error: suffix or operands invalid for `cmp'

應該是cmp函數的問題,網上說這個和gcc版本有關系,我之前裝chrome把gcc版本更新為4.8.1,對于ffmpeg來說版本太高了,需要低版本的gcc

下載了gcc-4.3.6,安裝上,然后再編譯ffmpeg

./configure --enable-shared --enable-swscale --enable-gpl?--disable-yasm

由于yasm 老是報錯,我們不需要就直接給disable了。

make

make install

此時在/usr/local/include下面出現

libavcodec ? ?libavdevice??? libavformat??? libavutil???? libswscal

在這個目錄下新建立一個ffmpeg文件夾,這樣做的原因是,OPENCV在配置時會在這個文件下去尋找需要的頭文件。

cd? /usr/local/include

mkdir ffmpeg?

cp lib*/* ?ffmpeg/ ?#由于我的include下面沒有其他以lib開頭的文件所以可以這樣

在命令行輸入ffmpeg,出錯:

ffmpeg: error while loading shared libraries: libavdevice.so.52: cannot open shared object file: No such file or directory

查找?libavdevice.so.52所在位置,

ldd `which ffmpeg`

libavdevice.so.52 => not found

find /usr/local/lib | grep 'libavdevice'

所在/usr/local/lib下,將此路徑加入環境變量

vim /etc/ld.so.conf

此時里面已經有了/usr/local/lib,卻沒有找到

輸入ldconfig

然后再輸入ffmpeg生效了,應該是每當裝了一個東西都要ldconfig,裝完opencv也是一樣,要不然報錯找不到動態鏈接庫

3、重新編譯opencv

將原來的opencv刪掉,重新編譯

cmake CMakeLists.txt

make?

此處出錯,

cc1plus: 錯誤:無法識別的命令行選項“-Wno-narrowing”
cc1plus: 錯誤:無法識別的命令行選項“-Wno-delete-non-virtual-dtor”
cc1plus: 錯誤:無法識別的命令行選項“-Wno-unnamed-type-template-args”

make[2]: *** [modules/core/CMakeFiles/opencv_core.dir/src/rand.cpp.o] 錯誤 1
make[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] 錯誤 2
make: *** [all] 錯誤 2

有人說是gcc版本太低的原因,有點無語,各種版本不配合。

后來我不但將/usr/local/lib和/usr/local/include下面有關opencv的刪掉也把之前的編譯的opencv的文件刪除,重新解壓進行編譯沒有報錯,應該是之前編譯是用的gcc高版本,而現在gcc版本低了鏈接就發生了錯誤。

cvCreateFileCapture返回值不為NULL了


總結

以上是生活随笔為你收集整理的Centos下 ffmpeg 和opencv一起配合处理视频的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。