在第4篇和第5篇的内容当中,QT使用ffmpeg进行编码时,不再像以前一样使用API进行编程,而是采用了外部命令进行执行,虽然使用外部命令进行直播可以做到方便快捷的开发,但是缺点也很明显,很多功能在开发时非常不灵活。

我们先试着把ffmpeg的头文件库先包含进来,然后就发现提示文件不存在,然后我们根据ffmpeg的路径去找一下/usr/include就会发现里面并没有ffmpeg的头文件,那就没办法了,我们自己进行编译一下吧,而且飞凌官方也给我们提供具体的移植过程,OK3588 5.10.66 Forlinx Desktop20.04 移植ffmpeg,不过也可以按照我这里面来进行移植。
mkdir ffmpeg
cd ffmpeg
git clone -b jellyfin-mpp --depth=1 https:
git clone -b jellyfin-rga --depth=1 https:
git clone --depth=1 https:
需要注意的是,我们最好是用GITHUB的镜像网站,速度快一些稳定一些。

然后接下来编译RKMPP。
cd rkmpp
mkdir rkmpp_build
sudo apt-get install cmake
cd rkmpp_build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DBUILD_TEST=OFF ..

因为,我们接下来编译的过程中需要用到cmake,所以需要先安装cmake然后再使用命令即可!

make -j 16
接下来就可以编译了,得益于强大的CPU能力,我们很快就完成了!

sudo make install
接下来,我们还需要进行安装,注意在安装时是需要root权限的!

然后我们再编译rkrga,因为接下来我们还会需要meson,所以也需要提前安装好。
cd ~/ffmpeg
sudo apt install meson
meson setup rkrga rkrga_build --prefix=/usr --libdir=lib --buildtype=release --default-library=shared -Dcpp_args=-fpermissive -Dlibdrm=false -Dlibrga_demo=false

接下来我们需要进行配置!
meson configure rkrga_build

然后我们需要进行安装,同样需要root权限。
sudo ninja -C rkrga_build install

接下来,我们就需要编译ffmpeg正主了,首先我们需要配置一下。
cd ffmpeg/
./configure --prefix=/usr --enable-gpl --enable-version3 --enable-libdrm --enable-rkmpp --enable-rkrga

然后,我们进行编译。
make -j 16

可以看到已经编译成功了!

接下来我们测试一下ffmpeg是否编译成功,是否把rkmpp编译进去,可以看到解码器已经编译进去了!

./ffmpeg -encoders | grep rkmpp
接下来,我们再测试编码器,可以看到也没问题了!

sudo make install
ffmpeg -version
然后我们再将ffmpeg也进行安装,安装好了以后再查看一下ffmpeg的版本,我们就可以看到不管版本还是编译选项都和自带的ffmpeg不同!

然后,我们再查看一下/usr/include里,就可以看到里面已经包含ffmpeg的头文件了!