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相关推荐

  1. Linux环境配置编译orange,orangepi zero2编译环境搭建及传感器测试

    一.编译环境搭建及版本镜像编译 我这里使用的是官方手册上提供的linux SDK,包括uboot.linux内核及根文件系统均是orangePI官方的代码包,但在使用的一开始,我就遇到一个让人比较郁闷 ...

  2. 【Orangepi Zero2 全志H616】wiringPi外设SDK安装

    Orangepi Zero2 全志H616开发板 一.网络配置 命令扫描周围的WIFI热点 nmcli dev wifi 命令接入网络 nmcli dev wifi connect xxxxxxxx ...

  3. orangepi zero2部署网心云docker版

    orangepi zero2部署网心云docker版 安装docker docker安装网心云 挂载硬盘 设置开机自动挂载 多开 安装docker 一键安装 curl -fsSL https://ge ...

  4. Orangepi Zero2——系统启动及wiringPi外设SDK安装

    文章目录 平台介绍 刷机和系统启动 工具 登录 串口登录 修改登录密码: 网络配置 串口登录下修改内核日志输出级别 SSH登录开发板 基于官方外设开发 wiringPi外设SDK安装 平台介绍 配置图 ...

  5. Orangepi Zero2 全志H616(驱动蜂鸣器)

    一.Orangepi Zero2 全志H616信息 1.接口相关信息: 2.引脚图 二.代码实现 #include <stdio.h> #include <wiringPi.h> ...

  6. (一)Orangepi Zero2 的刷机和登录

    学习笔记(一) Orangepi Zero2 的刷机和登录 格式化:SD卡 用到的工具 操作过程 等待完成 格式化sd卡ok. 烧录镜像 用到的工具: 在烧录之前准备好,我的镜像: 打开烧录软件Win ...

  7. Orangepi Zero2 全志H616(一):配置初始化和启动流程

    目录 一,Orangepi简单说明 ①为什么使用全志H616 ②基本特性 ③配套操作系统支持 二,刷机和系统启动 ①准备工具 ②登录系统 ● 开发板供电 ● 登录 ● 开发板上板载LED灯测试说明 ③ ...

  8. 【Orangepi Zero2 全志H616】OLED屏应用/IIC协议

    一.Orangepi的IIC接口 二.开发步骤 1.启动 linux 系统后, 先确认下/dev 下存在 i2c-3 的设备节点         从命令运行结果能观察到系统支持i2c-3和i2c-5的 ...

  9. 香橙派OrangePi Zero2开发板外接USB无线网卡测试示例

    目前Zero2开发板测试过的能用的 USB 无线网卡型号为:RTL8723BU,其他型号的 USB 无线网卡请自行测试,如果无法使用就需要移植对应的 USB 无线网卡驱动 1) 首先将 RTL8723 ...

最新文章

  1. iOS在label中显示表情
  2. dedecms织梦list标签按照权重排序
  3. Mac下布置appium环境
  4. percona innobackupex 使用
  5. java的finally_java的finally用法
  6. python eval函数格式_Python函数中eval函数知识点
  7. 一个咸鱼的python_一个咸鱼的Python爬虫之路(三):爬取网页图片
  8. cpio备份linux系统,linux cpio 备份命令
  9. 反射: 反射在中Android运用
  10. tbschedule介绍
  11. 该模型是内置式的MTPA控制,速度环的输出为给定转矩,然后方式1通过求解MTPA方程得到dq给定电流
  12. 如何使用.REG文件来操作注册表
  13. .NET利用ActionFilter特性记录日志或者运行性能计数器。(log trace or perform perfcounter by actionFilter attribute)...
  14. Ant Design + React 中将分页组件的英文转为中文
  15. Hive的Rank函数
  16. LTE(4G) ATTACH流程
  17. 扔垃圾前得先“刷脸”?北京这个小区垃圾分类真的用上了“人脸识别”!
  18. 微软企业库(Microsoft Enterprise Library Data Access Block)
  19. thinkpad笔记本鼠标指针一直往左下角滑动解决方法
  20. linux可执行文件签名,elf签名和可执行文件签名

热门文章

  1. 云端Python编程给你“好看”
  2. 警惕挂着开源的招牌到处坑蒙拐骗的垃圾项目,比如iBase4J
  3. 解决Tomcat乱码问题(一看就会哦)
  4. 帮我举一个中国会计准则和国际会计准则差异的例子
  5. flume伪分布模式实践
  6. 【未解决】WPS pdf到typora上f开头单词重复问题
  7. UE4 Sequence添加基础动画效果 (03-主序列的使用)
  8. 基于matlab的.nc文件可视化的实现
  9. 闲来无事,说说Windows剪贴板 -- 剪贴板概述部分
  10. php gridview,yii2-GridView在开发中常用的功能及技巧总结