J5 部署 ffmpeg工具 交叉编译

参考以下文章,实现将ffmpeg 经过交叉编译后 运行在J5平台上 ,
FFmpeg移植到IMX6ULL arm开发板(含x264编译步骤)_ffmpeg移植到arm上_supersmart@的博客-CSDN博客
目的是,在j5端能对RTSP流进行转流操作(如转像素等)

交叉编译工具

这里为J5的交叉编译工具配置环境变量,首先找到J5交叉编译工具所在的位置

/opt/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/

在sudo vi /etc/profile添加环境变量,在文末添加以下内容

export PATH=$PATH:/opt/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin

重启生效。
为了以防万一,我又在~/.bashrc中为其添加环境变量

gedit ~/.bashrc #通过记事本修改,也可以用vi、vim等
#在文末添加这一行
export PATH=/opt/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin:$PATH
然后source ~/.bashrc让命令生效

验证是否成功

文件路径

本次用到相关的重要文件都放在路径:/home/wangmaozhu/GP/ffmpeg下,文件结构如下:

├── x264-snapshot-20171109-2245:该文件是x264的源代码,因为FFMEPG没有X264编码能力,所以先对x264进行编译,生成对应的arrch64版本
├──linux_x264:生成的arrch64版本的x264
├── ffmpeg-3.4.5
│ ├── install:编译时候连接到了x264,经过验证成功
└── yz:用来把前面两个进行编译的相关信息移植到J5中,只需要bin和lib文件夹下的内容其实就行

编译x264

因为ffmpeg有对h264的解码能力,但是并没有编码能力,所以这里先对h264进行编码,生成的文件会存放在:linux_x264文件夹下。
进入到x264-snapshot-20171109-2245/路径下,执行:

./configure --prefix=/home/wangmaozhu/linux_x264 --enable-shared --host=aarch64-linux-gnu --cross-prefix=aarch64-linux-gnu- -march=armv7-a
#相关的配置
make & make install
#生成的文件会放在/home/wangmaozhu/linux_x264下,可以自己修改位置

编译FFmpeg

├── ffmpeg-3.4.5
│ ├── install:编译时候连接到了x264

生成的文件存放在该路径下。
进入到 ffmpeg-3.4.5/路径下,执行:

./configure --enable-cross-compile --cross-prefix=aarch64-linux-gnu- --arch=aarch64 --target-os=linux --cc=aarch64-linux-gnu-gcc --prefix=KaTeX parse error: Expected 'EOF', got '#' at position 387: …linux_x264/lib #̲注意最后的应该是链接X264文…PWD/install下(也就是当前路径下的install文件下),可以自己修改位置

最后可以验证一下文件类型:

移植到J5

移植时将编译好的x264和ffmpeg对应的bin,lib目录下的文件移植到对应板子上的/usr/bin,/usr/lib目录下,我把它们放在yz的文件下。复制到J5的对应路径下即可。

#“提示没有权限
#进入/usr/bin路径,执行:
chmod u+x ffmpeg ffprobe ffserver x264

然后进入/usr/lib路径后,执行命令 ln -s 查看软连接是否正常


如果软连接不正常,删除掉没用的软连接,并重新创建软连接:

ln -s libx264.so.152 libx264.so

验证:查看ffmpeg版本

ffmpeg -version


查看支持的编解码:


验证测试

这里简单的用frame8.yuv转成output.264


参考教程:
1、安装交叉编译器arm-none-liunx-gnueabihf
2、FFmpeg移植到IMX6ULL arm开发板(含x264编译步骤)
3、Linux:移植ffmpeg到ARM板(含x264编译步骤)
4、Linux下ffmpeg开源库移植到ARM开发板。
5、arm Linux平台下FFmpeg的移植

  • 13
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FFmpeg是一个开源的跨平台音视频处理框架,它提供了一系列的工具,可以用于音视频的编解码、转码、过滤、流媒体等处理操作。在进行源码交叉编译时,可以将FFmpeg框架移植到其他平台上运行。 下面是FFmpeg源码交叉编译的一般步骤: 1. 准备交叉编译工具链:根据目标平台的架构和操作系统,选择合适的交叉编译工具链。常见的工具链有GCC、Clang等。 2. 获取FFmpeg源码:从FFmpeg官方网站或者GitHub上获取最新的源码包。 3. 配置交叉编译环境:设置环境变量,指定交叉编译工具链的路径和相关参数。例如,设置CC、CXX、AR等环境变量。 4. 配置FFmpeg编译选项:根据需求选择需要编译的模块和功能,并设置对应的编译选项。可以使用configure脚本来配置编译选项,例如指定目标平台、指定交叉编译工具链等。 5. 执行编译命令:运行make命令进行编译。根据系统性能和源码大小,编译时间可能会比较长。 6. 安装和部署:编译完成后,可以使用make install命令将编译好的和可执行文件安装到指定目录中。根据需求,可以将生成的文件和头文件拷贝到目标平台上进行部署。 需要注意的是,FFmpeg的源码交叉编译过程可能会因为不同的平台和需求而有所差异,具体的步骤和配置选项可能会有所不同。在进行源码交叉编译时,建议参考FFmpeg官方文档或者相关的教程进行操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值