UOS系统下FFmpeg源码编译安装及注意事项
條件
當前編譯環境:國產UOS系統(基于linux),CPU是ARM架構
需要安裝ffmpeg 3.4版本。
通過源碼編譯進行安裝使用
下載源碼
在github上將ffmpeg源碼下載到本地:下載地址
git clone https://github.com/FFmpeg/FFmpeg.git然后在終端,切入到ffmpeg目錄,查看遠程分支:
git branch -a
接著將我們需要的版本代碼遷出來:
修改configure
修改配置的目的是為了讓最終生成的庫更簡潔,不要生成相關的鏈接庫(生成標準的 .so,而不是 .so.xxx)
如果不修改的話,默認會生成以下的庫文件:
這樣文件太多,不方便管理,所以我們只需要生成.so就好啦。
在ffmpeg目錄下找到 configure文件,然后找到以下字段并修改如下:
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"' SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)' SLIB_INSTALL_LINKS='$(SLIBNAME)'如下:
添加編譯配置
在源碼根目錄新建一個腳本 auto.sh ,然后輸入:
#!/bin/sh ./configure \ --enable-shared \ --prefix=/usr/bin/ffmpeg_ARM \ --enable-demuxers \ --enable-parsers \ --enable-ffprobe注意:ffmpeg_ARM是配置最終要安裝的目錄,可自行設置。
--enable-demuxers \ --enable-parsers \ --enable-ffprobe這三項配置主要解決一個重要問題:
當調用 avformat_open_input接口的時候會報錯:
返回-1094995529 “Invalid data found when processing input”
所以在編譯時一定要加上這個配置,否則調用這個接口就會報錯啦。
開始編譯
ok,以上全部準備完成后就可以開始編譯啦。
直接運行腳本 : sudo ./auto.sh
然后執行 :
安裝完就可以在配置的目錄下找到相關的庫和頭文件了
這里重要的是編譯配置,一開始我就沒有配,后來在使用過程中就出現錯誤,在網上找了好多資料最終解決這個問題。
參考資料:
FFmpeg 詳盡編譯過程
avformat_open_input返回-1094995529 “Invalid data found when processing input“
總結
以上是生活随笔為你收集整理的UOS系统下FFmpeg源码编译安装及注意事项的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux UOS(国产统信)系统下Qt
- 下一篇: window 下生成SSH key