當前位置:首頁 » 編程軟體 » ffmpeglinux編譯

ffmpeglinux編譯

發布時間: 2025-02-05 14:28:04

① FFmpeg之linux編譯與調試

下面的一切都是在 root 模式下進行的,可以不再 root 模式下進行

基礎環境就是編譯代碼的基礎庫,Ubuntu聯網安裝軟體很簡單,一個語句即可搞定,這里列出語句如下:

依賴庫分兩方面,參考以下網站列出的依賴庫信息,本文選擇的版本均參考於此網頁: FFmpeg依賴庫信息

首先創建 FFmpeg 代碼目錄,所有的源代碼放在這個目錄下

FFmpeg 編譯之後,即可使用。編譯生成的可執行程序在 ~/bin 目錄下

註:上面的 ./configure 配置編譯後並不能進行調試,需要如下配置.

剛才的工程可以運行,但不能debug。解決此問題,首先認定一點,生成的可執行程序中,ffmpeg 不包含調試信息,調試信息在 ffmpeg_g 中,debug 要選擇 ffmpeg_g。

另外,./config選項也是確定包含調試信息的核心,需要在config中添加:

採用以下命令重新config:

一些注意事項; 在使用 ffplay 播放生成 h264 格式的視頻時,播放速度會加快,解決方式:不要使用 FFmpeg 轉碼生成純 h264 格式的視頻,要使用一種容器包含 h264 視頻,即生成一種音視頻流格式,也就是不要生成純粹的 h264 碼流,而是生成諸如 mkv 等格式的文件。

② Linux 交叉編譯FFmpeg庫

Linux 交叉編譯FFmpeg庫

配置環境

在Linux上配置NDK環境和FFmpeg,首先下載並解壓NDK,配置/etc/profile的環境變數,然後下載FFmpeg,解壓後使用./configure --help查看幫助文檔。

FFmpeg包含libavformat、libavcodec、libavutil、libswscale、libpostproc等模塊,為各種音視頻封裝格式的生成和解析、聲音/圖像編解碼、公共工具函數、視頻場景比例縮放和色彩映射轉換、後期效果處理以及工具和伺服器等。

編寫編譯腳本

定義NDK路徑,指定GCC路徑,設置FLAGS結合Linux環境修改,參考externalNativeBuild/xxx/build.ninja的傳參內容。學習資料推薦,免費報名學習音視頻知識,資料包括C/C++、Linux、FFmpeg等。

配置參數

優化大小、不編譯ffmpeg程序(命令行工具)、關閉avdevice模塊、關閉所有編碼器、關閉所有復用器、關閉所有濾鏡、開啟交叉編譯、設置GCC的前綴、關閉動態庫、開啟靜態庫、傳給gcc的參數等。

執行make完成編譯輸出

編寫腳本過程中注意關閉asm、許可權要求、手動創建輸出文件夾、命令行格式等。

移植到Android項目中使用

創建NDK項目,將編譯好的include文件夾復制到/src/main/cpp目錄下,將ffmpeg lib目錄下的文件復制到armeabi-v7a目錄下,Cmake文件中引入庫,即可愉快使用FFmpeg庫。

FFmpeg是純C的庫,需要在代碼中進行引用。顯示ffmpeg版本號完成整個流程。

至此,Linux交叉編譯FFmpeg庫的流程介紹完成。

③ linux下編譯ffmpeg時關於configure的問題.

你准備工作沒做好吧!!

  1. 先編譯安裝Yasm。

  2. 然後編譯安裝H.264 (也就是x264)。

  3. 再編譯安裝AAC audio encoder (fdk-aac)。

  4. 編譯安裝libmp3lame (MP3 audio encoder)。

  5. 編譯安裝libopus (Opus audio decoder and encoder)。

  6. 編譯安裝libvpx (VP8/VP9 video encoder and decoder)。

  7. 做後編譯安裝ffmpeg。

    其中1-6你可以選擇編譯安裝,也可以使用源直接安裝。安裝後了再編譯安裝ffmpeg

    你使用 sudo ldconfig -p |grep libx264 看看你的libx264是否正確安裝.

    你編譯安裝x264的時候可以使用2中方式都安裝。

cd ../x264

./configure --enable-shared
make
make install

最後

cd ../x264
make distclean
./configure --enable-static
make
make install

④ FFmpeg開發筆記(八)Linux交叉編譯Android的FFmpeg庫

在Linux環境中進行FFmpeg庫的Android交叉編譯,首先需要下載Linux版本的android-ndk-r21e。登錄Linux伺服器,例如華為雲的歐拉系統,執行以下步驟:

1. 進入`/usr/local/src`目錄:

cd /usr/local/src

2. 下載並解壓ndk:

curl -O dl.google.com/android/r...

unzip android-ndk-r21e-linux-x86_64.zip

接下來,你需要將FFmpeg及相關庫(如x264、freetype、lame)的源碼上傳到伺服器,並進行必要的修改:

- 解壓源碼,替換`SYSTEM=windows-x86_64`為`SYSTEM=linux-x86_64`,並確保sh文件無回車符。
- 修改`config_x264.sh`、`config_freetype.sh`等文件,賦予可執行許可權:

chmod +x config_*.sh

3. 編譯x264庫,修改configure文件並執行編譯:

修改configure文件

./config_x264.sh

make -j4

make install

4. 對其他第三方庫進行類似操作:

./config_xxx.sh

make -j4

make install

5. 配置環境變數`PKG_CONFIG_PATH`:

在.bash_profile中添加環境變數

source .bash_profile

6. 最後,編譯FFmpeg庫:

./config_ffmpeg_full.sh

make -j4

make install

完成後,可以在指定目錄找到so文件,並將其復制到App工程的jniLibs\arm64-v8a目錄,然後按照《FFmpeg開發實戰:從零基礎到短視頻上線》的章節「12.1.3 App工程調用FFmpeg的so庫」進行App的配置、編譯和運行。

熱點內容
編程老爺爺 發布:2025-02-05 16:48:20 瀏覽:126
支持ftp的免費空間 發布:2025-02-05 16:32:00 瀏覽:888
python時間比較 發布:2025-02-05 16:31:46 瀏覽:50
手機銀行的密碼怎麼改密碼忘了怎麼辦啊 發布:2025-02-05 16:02:02 瀏覽:179
演算法牛人左 發布:2025-02-05 15:31:02 瀏覽:439
php篩選功能 發布:2025-02-05 15:29:09 瀏覽:168
ip匹配伺服器 發布:2025-02-05 15:10:35 瀏覽:909
php語法後 發布:2025-02-05 15:10:34 瀏覽:59
oppor9s怎麼壓縮文件 發布:2025-02-05 15:00:34 瀏覽:639
蘋果耳塞怎麼改安卓也能用 發布:2025-02-05 14:50:54 瀏覽:558