orangepi-zero2交叉编译libx264
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.cppOBJS = $(SRC:%.c=%.o)all:$(OBJS)$(CC) -o $(TARGET) $(SRC) $(COMMON) $(LDFLAGS)
clean :rm -rf *.orm -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压缩视频本就很慢,意义有限。
orangepi-zero2交叉编译libx264相关推荐
- Linux环境配置编译orange,orangepi zero2编译环境搭建及传感器测试
一.编译环境搭建及版本镜像编译 我这里使用的是官方手册上提供的linux SDK,包括uboot.linux内核及根文件系统均是orangePI官方的代码包,但在使用的一开始,我就遇到一个让人比较郁闷 ...
- 【Orangepi Zero2 全志H616】wiringPi外设SDK安装
Orangepi Zero2 全志H616开发板 一.网络配置 命令扫描周围的WIFI热点 nmcli dev wifi 命令接入网络 nmcli dev wifi connect xxxxxxxx ...
- orangepi zero2部署网心云docker版
orangepi zero2部署网心云docker版 安装docker docker安装网心云 挂载硬盘 设置开机自动挂载 多开 安装docker 一键安装 curl -fsSL https://ge ...
- Orangepi Zero2——系统启动及wiringPi外设SDK安装
文章目录 平台介绍 刷机和系统启动 工具 登录 串口登录 修改登录密码: 网络配置 串口登录下修改内核日志输出级别 SSH登录开发板 基于官方外设开发 wiringPi外设SDK安装 平台介绍 配置图 ...
- Orangepi Zero2 全志H616(驱动蜂鸣器)
一.Orangepi Zero2 全志H616信息 1.接口相关信息: 2.引脚图 二.代码实现 #include <stdio.h> #include <wiringPi.h> ...
- (一)Orangepi Zero2 的刷机和登录
学习笔记(一) Orangepi Zero2 的刷机和登录 格式化:SD卡 用到的工具 操作过程 等待完成 格式化sd卡ok. 烧录镜像 用到的工具: 在烧录之前准备好,我的镜像: 打开烧录软件Win ...
- Orangepi Zero2 全志H616(一):配置初始化和启动流程
目录 一,Orangepi简单说明 ①为什么使用全志H616 ②基本特性 ③配套操作系统支持 二,刷机和系统启动 ①准备工具 ②登录系统 ● 开发板供电 ● 登录 ● 开发板上板载LED灯测试说明 ③ ...
- 【Orangepi Zero2 全志H616】OLED屏应用/IIC协议
一.Orangepi的IIC接口 二.开发步骤 1.启动 linux 系统后, 先确认下/dev 下存在 i2c-3 的设备节点 从命令运行结果能观察到系统支持i2c-3和i2c-5的 ...
- 香橙派OrangePi Zero2开发板外接USB无线网卡测试示例
目前Zero2开发板测试过的能用的 USB 无线网卡型号为:RTL8723BU,其他型号的 USB 无线网卡请自行测试,如果无法使用就需要移植对应的 USB 无线网卡驱动 1) 首先将 RTL8723 ...
最新文章
- iOS在label中显示表情
- dedecms织梦list标签按照权重排序
- Mac下布置appium环境
- percona innobackupex 使用
- java的finally_java的finally用法
- python eval函数格式_Python函数中eval函数知识点
- 一个咸鱼的python_一个咸鱼的Python爬虫之路(三):爬取网页图片
- cpio备份linux系统,linux cpio 备份命令
- 反射: 反射在中Android运用
- tbschedule介绍
- 该模型是内置式的MTPA控制,速度环的输出为给定转矩,然后方式1通过求解MTPA方程得到dq给定电流
- 如何使用.REG文件来操作注册表
- .NET利用ActionFilter特性记录日志或者运行性能计数器。(log trace or perform perfcounter by actionFilter attribute)...
- Ant Design + React 中将分页组件的英文转为中文
- Hive的Rank函数
- LTE(4G) ATTACH流程
- 扔垃圾前得先“刷脸”?北京这个小区垃圾分类真的用上了“人脸识别”!
- 微软企业库(Microsoft Enterprise Library Data Access Block)
- thinkpad笔记本鼠标指针一直往左下角滑动解决方法
- linux可执行文件签名,elf签名和可执行文件签名