ubuntu 20.04下编译ffmpeg 以及各种常见错误

安装必须的包


sudo apt-get install build-essential checkinstall git cmake libfaac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev libvorbis-dev libx11-dev libxfixes-dev libxvidcore-dev texi2html yasm zlib1g-dev nasm  libx265-dev  libspeex-dev libfdk-aac-dev libnuma-dev

下载 编译 安装 x264

不想编译也可以 ,但是这种方式不能保障版本和ffmpeg版本兼容

sudo apt install libx264-dev
#下载 可以去官网下载最新的
 git clone https://code.videolan.org/videolan/x264.git
#编译
cd x264
./configure --enable-static --enable-shared --enable-pic
make -j4 #-j4代表开启4个线程编译
sudo make install

安装完成之后各个库的位置
安装完成之后各个库的安装位置

下载 编译 安装 ffmpeg

# 从gitee网站上clone ffmpeg 国内的网站速度会快很多
git clone https://gitee.com/mirrors/ffmpeg.git
cd ffmpeg
#切换到4.4 分支 可以切换到任何自己想要的分支上
git checkout release/4.4
cd ffmpeg
# 配置自己需要哪些库 
./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-libx265 --enable-filter=delogo --enable-debug --disable-optimizations --enable-libspeex  --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --cc=gcc --host-cflags= --host-ldflags=
# 同样开启多线程
make -j12 
# 安装 安装位置为上面 --prefix= 后面的目录 可以随意更改 
sudo make install

常见的报错

问题一:找不到各种库

特征

error while loading shared libraries: libavdevice.so.58: cannot open shared object file: No such file or directory 等等都是xxxx.so.xx 或者xxxx.so cannot open…

解决

这种问题都是ffmpeg依赖一些组件,因为这些组件提供的是动态库,ffmpeg 找不到这些动态库的位置.这种问题更多的产生于你手动指定了安装位置.这时系统不知道该去你安装的位置下搜索需要的库

手动指定ffmpeg自带的组件的库
cd /etc/ld.so.conf.d/
sudo touch ffmpeg.conf
sudo vim ffmpeg.conf
## 在文件中写入你的ffmpeg lib的位置 我的是/usr/local/ffmpeg/lib
sudo  ldconfig

如果此时你的ffmpeg还提示缺少一些库,那就意味着ffmpeg依赖你电脑上其他文件夹里面的一些库怎么定位你的库呢:

whereis xxx.so.xxx #后面替换成你缺的库

然后把找到的库拷贝到ffmpeg 的lib库里面

sudo ldconfig

编译的过程中报错

这个我遇到几个忘记记录了总的来说就是x264与ffmpeg 的版本不兼容.很少需要有需要修改源代码的 或者不要体验最新版本的ffmpeg 用上一个发布的版本,这样问题会少很多. 遇到问题直接把报错放在百度里面搜索.

运行成功截图

在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译FFmpeg: 1. 安装依赖库: ``` sudo apt-get update sudo apt-get install -y autoconf automake build-essential cmake git libass-dev libfreetype6-dev libjpeg-dev libtool libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo wget zlib1g-dev nasm yasm ``` 2. 下载 FFmpeg 源码: ``` git clone https://github.com/FFmpeg/FFmpeg.git cd FFmpeg ``` 3. 配置编译选项: ``` ./configure --enable-shared --enable-gpl --enable-libass --enable-libfreetype --enable-libjpeg --enable-libvorbis --enable-libx264 --enable-nonfree --enable-postproc --enable-pthreads --enable-runtime-cpudetect --enable-version3 --enable-avresample --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libvo-amrwbenc --enable-libwebp --enable-libx265 --enable-libaom --enable-libdav1d ``` 4. 编译并安装: ``` make -j$(nproc) sudo make install ``` 编译libX264: 1. 下载libX264源码: ``` git clone https://code.videolan.org/videolan/x264.git cd x264 ``` 2. 配置编译选项: ``` ./configure --enable-shared --enable-pic ``` 3. 编译并安装: ``` make -j$(nproc) sudo make install ``` 编译PJSIP: 1. 安装依赖库: ``` sudo apt-get install -y libssl-dev libsrtp2-dev libopus-dev libasound2-dev ``` 2. 下载PJSIP源码: ``` wget https://github.com/pjsip/pjproject/archive/2.10.tar.gz tar -xf 2.10.tar.gz cd pjproject-2.10 ``` 3. 配置编译选项: ``` ./configure --enable-shared --disable-sound --disable-resample --disable-video --with-external-pjproject --with-ssl=/usr/bin/openssl --with-external-ssl --with-external-srtp --with-external-libwebrtc ``` 4. 编译并安装: ``` make dep make sudo make install ``` 以上是在Ubuntu 20.04编译FFmpeglibX264及PJSIP的步骤,你可以根据自己的需求进行调整编译选项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值