项目需求需要录像存储为mp4文件 并且要支持H264 H265
我们之前在海思平台上用的是mp4v2 想着直接拿过来用
从github上 下载完mp4v2之后 新建一个build文件夹
然后cd到build文件夹新建一个build.sh内容如下:
刚开始直接这么写的话:会提示找不到编译器
../configure --prefix=/home/QMCY/mp4v2-h265/mp4v2-2.0.0/install --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++
没办法就只能写绝对路径了:
- ../configure --prefix=/home/QMCY/mp4v2-h265/mp4v2-2.0.0/rk1126 \
- --host=arm CC=/home/QMCY/rv1126_rv1109_linux_release_20211022/prebuilts/gcc/linux-x86/arm/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc CXX=/home/QMCY/rv1126_rv1109_linux_release_20211022/prebuilts/gcc/linux-x86/arm/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
这些生成了make文件没有报错
直接make报错了 如下:
失败了 暂时不知道咋办
没办法只能用ffmpeg
git clone https://git.ffmpeg.org/ffmpeg.git
然后新建个脚本build.sh
内容如下:
- ./configure --prefix=./install \
- --enable-cross-compile \
- --target-os=linux \
- --arch=armv7l \
- --cross-prefix=arm-linux-gnueabihf-
如果找不到编译器需要将编译器路径加到path
export PATH=$PATH:/home/QMCY/rv1126_rv1109_linux_release_20211022/prebuilts/gcc/linux-x86/arm/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin
执行脚本 然后make 正在编译中 写文章的过程中编译完了 没有报错
执行 make install 发现已经将库文件 头文件 等安装到install目录了如下:
打开lib目录发现默认的是静态库
下面需要将头文件 静态库放到工程当中 写个代码测试下
已经可以正常工作了
完毕
上面的编译是没有libx264的配置
接下来是带有libx264的配置
首先编译下载x264
解压之后新建一个build.sh脚本
内容如下:
-
- ./configure \
- --host=arm-linux-gnueabihf \
- --prefix=./rk1126 \
- --cross-prefix=arm-linux-gnueabihf- \
- --enable-static \
- --enable-shared \
make make install 之后就生成了对应的文件
然后修改 ffmpeg的编译配置脚本如下:
- ./configure --prefix=./rk1126 \
- --enable-cross-compile \
- --target-os=linux \
- --arch=armv7l \
- --enable-gpl \
- --enable-encoder=libx264 \
- --enable-libx264 \
- --extra-libs=-ldl \
- --extra-cflags=-I/home/QMCY/x264-master/rk1126/include \
- --extra-ldflags=-L/home/QMCY/x264-master/rk1126/lib \
- --cross-prefix=arm-linux-gnueabihf-
make make install 就可以了 这样编译出来的 是可以 利用ffpmeg进行cpu编码的