orangepi-zero2交叉编译libx264


最近项目用到了视频压缩,所以就使用到lx264的库。

本文使用环境:
电脑:Ubuntu 18.04.5 LTS
开发板:orangepi-zero2
交叉编译器:aarch64-none-linux-gnu-

一、编译

1、下载开源库文件,链接如下:
链接: link.
在这里插入图片描述

2、解压文件,并进入到目录文件夹:
如图:
在这里插入图片描述
因为本文需要在开发板上使用,因此需要交叉编译。

4、首先,需要配置文件,如下:

./configure --prefix=./build --host=arm-linux --enable-static --disable-asm --cross-prefix=aarch64-none-linux-gnu-

./config:执行文件夹下的config脚本
–prefix:指定文件路径(本文为当前文件夹中的build文件)
–host:指定平台
–enable-static:使能静态库(如果想使用动态库:–enable-shared)
–disable-asm:关闭汇编
–cross-prefix:指定交叉编译器(这个需要根据自己的情况选择)

5、编译文件

make -j16
make install

执行完成后会在当前文件下生成build文件,如图:

在这里插入图片描述
include和lib文件就是需要的头文件和动态(静态库)。

二、测试(为了简便本文使用静态库)

测试参考雷神的教程:
https://blog.csdn.net/leixiaohua1020/article/details/42078645

代码下载链接:
http://git.oschina.net/leixiaohua1020/simplest_encoder

1、下载上述代码到ubuntu。同时将上一步骤生成的include和lib文件夹拷贝到当前目录下:
只需要simplest_x264_encoder文件夹即可。注意:还需要将上级目录的视频文件:cuc_ieschool_640x360_yuv420p.yuv
拷贝到simplest_x264_encoder文件。

(lib_a中存放的是libx264.a静态库文件,lib中存放的是动态库文件libx264.so.164,也就是说,编者已经动态和静态分别编译了一次,生成了静态库和动态库,include是一样的所有没变。读者可以按照需求进行选择。)

在这里插入图片描述

2、编写makefile文件:
新建Makefile文件:

TARGET= h264-main
EXEC= obj-m
COMMON= -I ./
COMMON+= -I ./include 

#shared  #共享库,最好不要使用共享库,需要配置库环境。
#LIBARY =-lx264
#LDFLAGS= -L ./lib $(LIBARY) 

#static #本文使用静态库文件
LIBARY =-lx264 -lpthread -lm -ldl
LDFLAGS= -L ./lib_a $(LIBARY) 
CC :=aarch64-none-linux-gnu-g++
SRC = simplest_x264_encoder.cpp

OBJS = $(SRC:%.c=%.o)

all:$(OBJS)
	$(CC) -o $(TARGET) $(SRC) $(COMMON) $(LDFLAGS)  
clean :
	rm -rf *.o
	rm -rf h264-main

文件很简单,主要是加载静态库(使用动态库可以将静态库的代码注释掉)。

3、修改源文件
打开simplest_x264_encoder.cpp文件,做如下修改:
修改路径为当前文件夹。

FILE* fp_src  = fopen("./cuc_ieschool_640x360_yuv444p.yuv", "rb");

4、make一下:
生成h264-main文件:
在这里插入图片描述
5、使用scp命令将可执行文件和视频文件拷贝到开发板上:
在这里插入图片描述

开发板内容如下:
在这里插入图片描述
直接执行:

./h264-main

就会生成cuc_ieschool.h264文件。压缩后的文件。
题外话:本文只是用于测试,并未谈到性能、cpu压缩视频本就很慢,意义有限。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Mr·赵

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

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

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

打赏作者

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

抵扣说明:

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

余额充值