源码编译
- 下载好的文件为 ffmpeg-*.tar.xz,
- 解压ffmpeg-*.tar.xz到自定义文件夹下,我这里是/home/aa
xz -d ffmpeg-*.tar.xz
tar -xvf ffmpeg-*.tar.xz –C /home/ffmpeg
- 安装编译ffmpeg依赖的包
sudo apt-get install yasm
sudo apt install libx264-dev libx265-dev pkg-config libass-dev libfdk-aac-dev libmp3lame-dev libopus-dev libsdl2-dev
- 编译ffmpeg
cd /home/aa/ffmpeg
# 如果编译静态库执行以下命令
./configure --prefix=host --enable-static --disable-shared --disable-doc
#如果编译动态库执行以下命令
./configure --prefix=host --enable-shared --disable-static --disable-doc
#如果需要编译ffplay以便直接用其打开测试,可以在参数后面加上--enable-ffplay
./configure --prefix=host --enable-shared --disable-static --disable-doc --enable-ffplay
#其他常用参数 --disable-zlib --disable-xlib --enable-x11grab --disable-libxcb
#可以执行./configure –help 来查看支持哪些参数,尤其是各种解码器的开关,具体可搜索。
#默认--prefix=/usr/local
./configure --enable-static --disable-shared --disable-doc --enable-gpl --enable-libx264 --enable-libx265 --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-nonfree
make #(还可以开启多线程编译加快速度 make –j4)
sudo make install
#编译完成就可以在--prefix中看到(生成的头文件、静态库文件)
#bin include lib share
# 在/usr/local/lib中可以看到静态库文件
#libavcodec.a libavdevice.a libavfilter.a libavformat.a libavutil.a libpostproc.a libswresample.a libswscale.a
# 在/usr/local/include中可以看到静态库文件需要的头文件
#查看ffpmeg版本信息
ffmpeg -version
ffplay -version
ffporbe -version
- 打开ffmpeg/host目录,生成的文件都在这里,拿去用吧。
参考:https://cloud.tencent.com/developer/article/1509959
参考2:https://zhuanlan.zhihu.com/p/136454512
参考3:https://www.cnblogs.com/leisure_chn/p/10035365.html
去ffmpeg官网下载源码
ffmpeg4.2 lib 源码编译
cd ffmpeg
sudo apt install libx264-dev libx265-dev pkg-config libass-dev libfdk-aac-dev libmp3lame-dev libopus-dev libsdl2-dev
#./configure --enable-static --disable-shared --disable-doc --enable-gpl --enable-libx264 --enable-libx265 --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-nonfree
./configure --prefix=host --enable-static --disable-shared --disable-doc --enable-gpl --enable-libx264 --enable-libx265
make #(还可以开启多线程编译加快速度 make –j4)
sudo make install #安装ffmpeg
sudo ldconfig
sudo make uninstall #卸载ffmpeg
ffmpeg -version
ffprobe -version
#打开host目录,生成的文件都在这里,拿去用吧。
也可以使用官方编译好的二进制lib/so库
ffmpeg 5.0 lib库源码编译使用
cd FFmpeg
sudo apt install libx264-dev libx265-dev pkg-config libass-dev libfdk-aac-dev libmp3lame-dev libopus-dev
# 静态编译
./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-version3 --enable-static --disable-shared --disable-doc --disable-asm --enable-libx264 --enable-libx265 --enable-debug
# 动态编译
./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-version3 --disable-static --enable-shared --disable-doc --disable-asm --enable-libx264 --enable-libx265 --enable-debug
#--enable-ffplay
make -j4
sudo make install #安装ffmpeg
#sudo make uninstall #卸载ffmpeg
#在/usr/local/ffmpeg会生成 bin,include,lib三个文件夹
#/usr/local/ffmpeg/bin 是可执行文件
#/usr/local/ffmpeg/include 是头文件
#/usr/local/ffmpeg/lib 是lib*文件
vim .bashrc
#添加如下内容
export FFMPEG_HOME=/usr/local/ffmpeg
export PATH=$PATH:$FFMPEG_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$FFMPEG_HOME/lib
source .bashrc
#或者使用ldconfig方式进行配置
cd ld.so.conf.d/
sudo vim ffmpeg.conf #打开文本后,加入如下路径、
/usr/local/ffmpeg/lib/ #最后面的斜杠一定要带上,别忘了!
sudo ldconfig
ffmpeg -version
ffprobe -version
#打开host目录,生成的文件都在这里,拿去用吧。
也可以使用官方编译好的二进制lib/so库
make
make: execvp: ./ffbuild/version.sh: Permission denied
解决方法:不断地修改 这些没有权限的 文件 chmod 755 * ,可以顺利解决该问题;
配置
vim .bashrc
#添加如下内容
export FFMPEG_HOME=/usr/local/ffmpeg
export PATH=$PATH:$FFMPEG_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$FFMPEG_HOME/lib
source .bashrc
编译
makefile
#-------- ffmpeg --------------------------------
# INC_PATH += -I./ffmpeg/include
INC_PATH += -I/usr/local/ffmpeg/include
LIB_PATH += -L/usr/local/ffmpeg/lib
LIBS += -lz -lpthread -lx264 -lx265
# ffmpeg静态库
# LIBS += -lavcodec.a -lavdevice.a -lavfilter.a -lavformat.a -lavutil.a -lpostproc.a -lswresample.a -lswscale.a
# ffmpeg动态库
LIBS += -lavformat -lavcodec -lswscale -lswresample -lavutil -lavfilter -lavdevice -lpostproc
examples 编译与测试
cd ffmpeg
make examples
cd doc/examples
./encode_video aa.h264 libx264
video encode/decode集成
ffprobe 使用
ffprobe其他常用options解析
-show_packets:[PACKET]标签的多媒体信息
-show_data: packets多媒体数据
-show_format:多媒体封装格式
-show_frames: 视频帧信息
-print_format: 信息输出格式,支持xml、csv、json、flat、ini
-select_streams: 参数可以是a、v、s分别表示只查看音频、视频、字幕
libx264
x264 --help