AndroidNDK开发之Ubuntu下编译FFmpeg并用命令行玩转音视频

步骤一、如果你的Ubuntu没有安装gcc编译器,那么先安装gcc编译器(如果已经安装,就直接看步骤二):

(1)首先更新包列表:

sudo apt update

(2)安装build-essential软件包:

sudo apt install build-essential

 (3)验证GCC编译器是否已经安装成功:

gcc --version

 


步骤二:编译 fdk-aac

1、下载fdk-aac压缩包:

wget https://jaist.dl.sourceforge.net/project/opencore-amr/fdk-aac/fdk-aac-0.1.6.tar.gz

2、解压:

tar xvf fdk-aac-0.1.6.tar.gz

3、进入fdk-aac-0,1,6目录:

cd fdk-aac-0.1.6

 4、运行configure脚本:

./configure

5、编译(如果make命令无法执行,根据提示安装make即可):

make && make install

 注意:在编译ffmpeg时,有可能会报找不到fdk_aac库的错误。此时我们应该设置一下  

’PKG_CONFIG_PATH‘环境变量,指定ffmpeg到哪里找我们安装好的库。

6、配置环境变量, 我这里配置的是临时变量,用户可以也根据自身需要配置系统变量:

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

步骤三:安装SDL,编译ffplay时用到:

apt-get install libsdl2-2.0
apt-get install libsdl2-dev

步骤四:下载安装编译x264 :

1、下载压缩包:

wget https://code.videolan.org/videolan/x264/-/archive/master/x264- master.tar.bz2

2、解压并进入该目录:

 

bunzip2 x264-master.tar.bz2 

tar -vxf x264-master.tar

cd x264-master

3、编译并安装:

 

./configure --enable-static --enable-shared --disable-asm --disable-avs

 make && make install

步骤五:下载并安装nasm:

 

wget https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.gz 

tar xvf nasm-2.13.03.tar.gz 

cd nasm-2.13.03 

./configure 

make && make install

 步骤六:下载并安装lam:

wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz 

tar -xzf lame-3.99.5.tar.gz 

cd lame-3.99.5 

./configure 

make

步骤七:编译ffmpeg

1、从官网上下载ffmpeg:

wget -c https://ffmpeg.org/releases/ffmpeg-4.0.2.tar.bz2

2、解压:

bunzip2 ffmpeg-4.0.2.tar.bz2
tar xvf ffmpeg-4.0.2.tar

3、进入ffmpeg-4.0.2目录:

cd ffmpeg-4.0.2

4、编译

./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-small --arch=x86_64 --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-filter=delogo --enable-debug --disable-optimizations --enable-shared --enable-sdl --disable-x86asm

5、安装

make && make install

注意:安装完成后,我们需要把ffmpeg.exe 所在路径(即编译后生成的/usr/local/ffmpeg/bin)配置为环境变量,然后打开 cmd 窗口 运行ffmpeg -version,可能会报库找不 到的异常,然后我们把对应库复制到usr\local\ffmpeg\bin这个目录下。例如:cygfdk-aac-1.dll , libx264-157.dll。

6、配置ffmpeg的环境变量:

export PATH=$PATH:/usr/local/ffmpeg/bin

此时,可能会报错:

ffmpeg:error while loading shared libraries: libx264.so.164: cannot open shared object file: No such file or dirctory。

原因是我们自己编译生成的.so库是没有权限访问系统默认的so库/usr/local/lib,所以,我们需要把自己生成的so库添加到环境变量里:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

此时,再输入ffmpeg检查一下是否编译完成,如果出现类似下图,表示编译成功:


步骤八:使用FFmpeg命令玩转音视频:

1、播放视频

ffplay test.mp4

2、查看视频信息

ffprobe test.mp4

3、裁剪视频

ffmpeg -ss 5 -t 00:00:05 -i test.mp4 -codec copy -keyint_min 2 out.mp4

4、视频缩放

ffmpeg -i test.mp4 -vf scale=w=200:h=100 -b:v 7552k -r 25 -threads 4 out.mp4 -y

参数说明:

-vf 视频滤镜

scale 缩放的大小

-b:v 比特率:视频 7552是1080p的固定值

-r fps

-threads 最大值cpu*2+1

-y 覆盖

5、消音

ffmpeg -i test.mp4 -c:v copy -an out.mp4

6、分离视频

ffmpeg -i test.mp4 -c:v copy -vn out.mp4

 7、增强音量

ffmpeg -i test.mp4 -filter:a "volume=1.3" -vcodec copy out.mp4

8、修改分辨率

ffmpeg -i test.mp4 -strict -2 -vf scale=1280:720 out.mp4

9、滤镜

ffmpeg -i test.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[a]" out.mp4 -y

参数说明:

-filter_complex 滤镜

PTS播放时间戳

10、合并视频

ffmpeg -i test.mp4 -i test1.mp4 -filter-complex"[0:0][0:1][1:0][1:1]concat=n=2:v=1:a=0[v][a]" -map"[v]" -map "[a]"  result.mp4

11、画中画

ffmpeg -i test.mp4 -i test1.mp4 -filter_complex "overlay=x=10:y=10" out.mp4 -y

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值