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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ubantu-16+ndk-r14b 编译 ffmpeg-4.0.2+lame_mp3-3.99.5

發布時間:2025/3/15 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ubantu-16+ndk-r14b 编译 ffmpeg-4.0.2+lame_mp3-3.99.5 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

1、環境和軟件版本

ubantu-16.4.1

ndk-r14b

ffmpeg-4.0.2

lame_mp3-3.99.5

2、廢話

? ? 因為我也是新手,對linux不熟悉,對編譯不熟悉,最喜歡的動作就是拿來主義,研究不深,所以不敢保證本文所有的操作都是一步到位沒有問題,再者,即使跑不通,也可以給大家提供個思路。

? ? 根據我上一篇博客(https://my.oschina.net/u/1462828/blog/1860847)的編譯步驟,已經可以編譯出來Android平臺運行的so文件了,但是還存在的問題就是,因為版權問題,所以ffmpeg是不包含MP3的編碼器的,所以我們只能是自己再編譯一個lamemp3到ffmpeg里面。

? ? 我們可以先嘗試編譯一個ubantu下可以直接運行的ffmpeg帶MP3的,很簡單。首先安裝lamemp3(ubantu命令:sudo apt-get install libmp3lame-dev),然后下載ffmpeg源碼并解壓,然后cd到源碼目錄,運行ubantu命令三部曲:

????1:./configure --enable-libmp3lame

? ? 2:make

? ? 3:make install

? ? 完了之后可以直接運行ffmpeg -version,就可以看到ffmpeg的版本信息了,然后再找個音樂,測試一下命令:ffmpeg -i 1.wav 2.mp3

? ? 命令如果運行成功,成功的生成了2.MP3,那就證明MP3編碼器已經集成成功了。

? ? 然后,就這么簡單?

? ? 顯然,不可能這么簡單,如果這么簡單的話,我也不用專門寫個帖子了。

? ? 我用上一篇博客編譯的腳本,加上了--enable-libmp3lame 這一句,然后運行編譯,一直在報錯:

? ? 找到ffbuild/config.log之后,天書……不懂的情況下生啃日志,總是一件讓人感到禿頂的事情……

? ? 最后字里行間,找到了一些蛛絲馬跡:

? ??

? ? 于是乎,初步懷疑是ffmpeg沒有定位到安裝的lameMP3目錄的原因,于是乎各種百度,找到的都是“apt-get install libmp3lame-dev”這句,很顯然這樣是不行的,至于原因后面會說。

? ? 之后,各種騷操作都來了一波,外加中間絕望得放下了鍵盤,拿起手機打了幾把吃雞游戲。

? ? 腦子清醒了之后再來,終于定位到了問題的關鍵所在:

????

? ? -cflags是要定位到include目錄,前面加-I(大寫i),ldflags是要定位到lib目錄,前面加-L

????

? ? 理論上是這樣,但是我換了七七四四九種打開的方式和九九八十一個運行命令的姿勢,均換回來了一句冷冰冰的:

????ERROR: libmp3lame >= 3.98.3 not found

? ? 無奈,網上的帖子也基本上都是h264+aac的,搞直播的那幫人都不用mp3了,于是只能是找了個ffmpeg的群,群里也不是很活躍,索性還是有大神常駐的,大神雖然沒有提供到最直接的幫助,但是也給了一個思路,就是用用ndk編譯lamemp3。

? ? 意思是,既然用的ndk編譯ffmpeg,是不是需要導入的lame也是需要用ndk來編譯。

? ? 說剛就剛……但是,這個怎么用ndk編譯lamemp3?直接套用ffmpeg的那個腳本好像也不行,路徑上都沒有crpss-prefix等標簽。

? ? 那就百度吧,沒辦法的事情,找了好久也沒有頭緒,后來靈光一閃,ffmpeg+h264+aac不也是一樣的道理么?于是乎找了一個帖子,然后把編譯aac的腳本搞了下來,魔改了一番,經過了七七四十九種打開方式和九九八十一個不同姿勢,終于編譯成功了。

? ? 然后在改了一下ffmpeg的-cflags標簽,心中無限的憧憬和希望,感覺世界充滿了友愛與和諧,唯獨比較刺眼的就是那句紅色的,冷冰冰的代碼:

????

????……

? ? 再檢查了一下過程,原來是cflags、ldflags的路徑少了一層,虛驚一場。

? ? 編譯完成后,拷貝so包出來,米6真機測試,沒問題。

? ? 果然,世界還是友愛的,和諧的。

3、編譯過程

1、源碼下載

? ? lamemp3:http://lame.sourceforge.net/download.php

????ffmpeg:http://ffmpeg.org/

????ndk:https://dl.google.com/android/repository/android-ndk-r14b-linux-x86_64.zip?

? ? 切記在ubantu環境下下載,我這邊的軟件解壓目錄為:

? ? lamemp3:? ? /home/xiaoyu/lame-3.99.5

? ? ndk:? ? /home/xiaoyu/ndk

? ? ffmpeg:? ? /home/xiaoyu/ffmpeg/ffmpeg-4.2.0/

? ? 還是忍不住吐槽一下lame的版本命名,最新版本是3.100,上一版是3.99.5,然后ffmpeg支持的是3.98.3以上的。最開始的時候安裝和下載的是3.100,顯示已經是最新版本了,這個最新版本是3.1為何ffmpeg那邊是要3.9,后來網上找了一下,下載了個3.99.5的,現在回過頭一看,這他媽,哪門子3.1,分明是三點一百……

2、編譯lamemp3

? ? 下載,解壓,略……

? ? 然后是執行編譯的腳本build.sh

#!/bin/bash NDK_HOME=/home/xiaoyu/ndk/android-ndk-r14b ANDROID_API=android-21 SYSROOT=$NDK_HOME/platforms/$ANDROID_API/arch-arm ANDROID_BIN=$NDK_HOME/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/ CROSS_COMPILE=${ANDROID_BIN}/arm-linux-androideabi- export PATH=$PATH:$ANDROID_SDK/tools:$ANDROID_SDK/platform-toolsARM_INC=$SYSROOT/usr/include ARM_LIB=$SYSROOT/usr/libLDFLAGS=" -nostdlib -Bdynamic -Wl,--whole-archive -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,nocopyreloc -Wl,-soname,/system/lib/libz.so -Wl,-rpath-link=$ARM_LIB,-dynamic-linker=/system/bin/linker -L$NDK_HOME/sources/cxx-stl/gnu-libstdc++/libs/armeabi -L$NDK_HOME/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/arm-linux-androideabi/lib -L$ARM_LIB -lc -lgcc -lm -ldl "FLAGS="--host=arm-linux --enable-static --disable-shared"export CXX="${CROSS_COMPILE}g++ --sysroot=${SYSROOT}" export LDFLAGS="$LDFLAGS" export CC="${CROSS_COMPILE}gcc --sysroot=${SYSROOT}" CPU=armv7-a./configure $FLAGS \ --prefix=$(pwd)/android/$CPU

? ? cd到lame-3.99.5目錄

? ? chmod +x build.sh

? ? ./build.sh

? ? make??

? ? make install

? ? 編譯完成后,會在lame-3.99.5目錄下看到一個android/armv7-a的目錄

????

? ? 里面就是我們需要的東西。

2、編譯ffmpeg

? ? build.sh腳本與上一篇博客的基本一致,只是加上了一句--enbale-libmp3lame 和修改了cflags、ldfags標簽

#!/bin/bash NDK=/home/xiaoyu/ndk/android-ndk-r14b SYSROOT=$NDK/platforms/android-21/arch-arm/ CPU=armv7-a TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 PREFIX=$(pwd)/android/$CPU ADDI_CFLAGS="-marm" OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU "function build_android { ./configure \ --prefix=$PREFIX \ --enable-neon \ --enable-hwaccels \ --enable-shared \ --enable-libmp3lame \ --enable-jni \ --enable-mediacodec \ --enable-decoder=h264_mediacodec \ --disable-static \ --disable-doc \ --enable-ffmpeg \ --disable-ffplay \ --disable-ffprobe \ --enable-avdevice \ --disable-doc \ --disable-symver \ --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \ --target-os=android \ --arch=arm \ --cpu=armv7-a \ --enable-cross-compile \ --sysroot=$SYSROOT \ --extra-cflags="-Os -fpic $ADDI_CFLAGS" \ --extra-ldflags="$ADDI_LDFLAGS" \ $ADDITIONAL_CONFIGURE_FLAG } ADDI_CFLAGS="-I/home/xiaoyu/lame/include" ADDI_LDFLAGS="-L/home/xiaoyu/llame/lib" build_android

? ? 老規矩,cd到ffmpeg-4.0.2目錄

? ? chmod +x build.sh

? ? ./build.sh

? ? make

? ? make install

? ? 完成之后會在ffmpeg-4.0.2目錄下找到一個android/armv7-a目錄

????

? ? 到這里,就大功告成了,自己動手吧,編譯好的我就不發出來了。

?

轉載于:https://my.oschina.net/u/1462828/blog/1862533

總結

以上是生活随笔為你收集整理的ubantu-16+ndk-r14b 编译 ffmpeg-4.0.2+lame_mp3-3.99.5的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产自产在线 | 经典一区二区三区 | 中文在线字幕av | 国产精品视频123 | 丝瓜色版| 久久婷香 | 久久人人添人人爽添人人片 | 草草影院av | 爱草在线| 欧美日韩黄色一级片 | 丁香一区二区三区 | 青青青在线视频 | 综合久色 | 欧美中文在线观看 | 日本大胆欧美人术艺术 | 三级视频在线观看 | 国产精品9191 | 久久久久伊人 | 日韩福利视频在线观看 | 欧美绿帽合集videosex | 中文字幕在线观看你懂的 | 天天色天天色 | 亚洲激情视频在线 | 黑人巨大精品欧美一区免费视频 | 中文字幕在线高清 | 国产在线二区 | 亚洲a v网站 | 成人动作片 | 国产精品久久久久久婷婷天堂 | 成年人精品 | 99国产精品久久久 | 欧美黄色短视频 | 色伊人影院 | 欧洲av无码放荡人妇网站 | 老司机精品视频在线播放 | 国产视频xxx | 男人天堂1024 | 久热网 | 国产成人宗合 | 一级在线观看 | 在线看日韩 | av不卡高清| 国产午夜精品久久久久 | 少妇人妻精品一区二区三区 | 黑料视频在线观看 | 欧美人妻日韩精品 | 最近日韩中文字幕 | 久久99精品久久久久久噜噜 | 亚洲欧美a | 国产aⅴ一区二区三区 | 免费观看91视频 | 天天综合在线观看 | 成人二三区 | 美女黄视频在线观看 | 国产免费91 | 无码日本精品xxxxxxxxx | 一区二区日韩视频 | 九色网址| 成人一级视频 | 国产成人精品视频在线 | 蜜臀av中文字幕 | 一区二区三区免费视频观看 | 99视频免费在线观看 | 国产福利小视频在线观看 | 欧美精品久久天天躁 | 国产三区在线视频 | 美女100%露胸无遮挡 | 红桃成人网| 欧美一二三区视频 | 国产男男gay体育生白袜 | 久草资源在线 | 免费av电影网址 | 黄色天堂av| 午夜小网站 | 久久看片网 | 91精品国产自产在线观看 | 国产视频精品免费 | 日韩欧美一区二区三区久久婷婷 | 在线观看免费av网站 | 日日摸夜夜添狠狠添久久精品成人 | 干爹你真棒插曲免费 | 久久青青草原 | 色多多导航 | 久久久精品免费看 | 久久久久久久久久久福利 | 永久免费黄色片 | 51av在线 | 中文字幕日韩在线视频 | 中文字幕一区二区三区乱码人妻 | 天天躁日日躁狠狠躁免费麻豆 | 少妇性l交大片免潘金莲 | 四虎图库 | 天天看毛片 | 毛片久久久久久 | 明星双性精跪趴灌满h | 99re国产 | 97caop| 天天干视频 | 国产精品爱啪在线线免费观看 |