ubuntu18之ffmpeg

参考1

源码编译

ffmpeg官网下载源码

  • 下载好的文件为 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目录,生成的文件都在这里,拿去用吧。

其他configure 参数课参考

新版本4.*使用问题参考

no ffplay生成问题

参考: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集成

muxing.c集成例子
remuxing.c集成例子

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

参考:编译安装支持10bit的x265库

x264 --help
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿尔发go

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值