将H264文件封装为mp4文件的三种方法(三种库)


1、使用MP4v2库

前提:交叉编译好RV1106的工具链

(1)下载路径:MP4v2 | mp4v2 源码(2)解压后修改CMakeLists.txtoption(BUILD_UTILS "Build MP4v2 auxiliary tools" OFF)(3)执行编译:mkdir buildcd buildcmake -DCMAKE_INSTALL_PREFIX=/opt/install -DCMAKE_C_COMPILER=arm-rockchip830-linux-uclibcgnueabihf-gcc -DCMAKE_CXX_COMPILER=arm-rockchip830-linux-uclibcgnueabihf-g++ -DCMAKE_AR=arm-rockchip830-linux-uclibcgnueabihf-ar  --disable-option-checking --disable-debug --disable-optimize --disable-fvisibility --disable-gch --disable-largefile --disable-util --disable-dependency-tracking --disable-libtool-lock --host=arm-rockchip830-linux --disable-static  ..makemake install(4)编译完成后在build目录下查看libmp4v2.so.2.1.3,发现属性为arm即可。

2、使用gpac库

    gpac依赖于zlib,需要先安装zlib.
 (1)zlib的安装1-1:export ARCH=arm 1-2:export CROSS_COMPILE=arm-rockchip830-linux-uclibcgnueabihf-1-3:export CC=arm-rockchip830-linux-uclibcgnueabihf-gcc1-4:export PATH=$PATH:/home/book/Desktop/RV1106_SDK/1106_battery/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/../lib/gcc/arm-rockchip830-linux-uclibcgnueabihf/8.3.0/../../../../arm-rockchip830-linux-uclibcgnueabihf/bin/
./configure --prefix=$PWD/tmp1-5:make1-6:sudo make install1-7:cp lib/* -rfd /home/book/Desktop/RV1106_SDK/1106_battery/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/../arm-rockchip830-linux-uclibcgnueabihf/sysroot/usr/lib/1-8:cp include/* -rf /home/book/Desktop/RV1106_SDK/1106_battery/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/../lib/gcc/arm-rockchip830-linux-uclibcgnueabihf/8.3.0/include

(2)gpac的安装

2-1:export ARCH=arm 
2-2:export CROSS_COMPILE=arm-rockchip830-linux-uclibcgnueabihf-
2-3:export CC=arm-rockchip830-linux-uclibcgnueabihf-gcc
2-4:export PATH=$PATH:/home/book/Desktop/RV1106_SDK/1106_battery/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/../lib/gcc/arm-rockchip830-linux-uclibcgnueabihf/8.3.0/../../../../arm-rockchip830-linux-uclibcgnueabihf/bin/
2-5:./configure --host=arm-rockchip830-linux-uclibcgnueabihf --prefix=$PWD/_install --cc=arm-rockchip830-linux-uclibcgnueabihf-gcc --cxx=arm-rockchip830-linux-uclibcgnueabihf-g++ --extra-cflags=-I$PWD/extra_lib/include/zlib --extra-ldflags=-L$PWD/extra_lib/lib/gcc --use-zlib=local
注意:--prefix=$PWD/_install用于指定编译后软件的安装目录--extra-ldflags用于指定依赖的lib库位置--extra-cflags用于指定依赖的include位置
2-6:make
2-7:sudo make install
2-8:cp lib/* -rfd /home/book/Desktop/RV1106_SDK/1106_battery/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/../arm-rockchip830-linux-uclibcgnueabihf/sysroot/usr/lib/
2-9:cp include/* -rf /home/book/Desktop/RV1106_SDK/1106_battery/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/../lib/gcc/arm-rockchip830-linux-uclibcgnueabihf/8.3.0/include

(3)使用media-server库

参考的是gitee上博主,https://gitee.com/cgrj/media-server/blob/master/compile.cn.md在test在make时报错,放弃使用。使用前两种方式安装库均成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/10198.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PX4FMU和PX4IO最底层启动过程分析(上)

PX4FMU和PX4IO最底层启动过程分析(上) 主处理器和协处理器的固件烧写和运行过程 PX4FMU:各种传感器数据读取、姿态解算、PWM控制量的计算、与PX4IO通信。负责飞控最主要的工作。 PX4IO(STM32F103):为PIXHA…

大模型面试常考知识点2

文章目录 1. LLM推理attention优化技术KV CachePageAttention显存优化MHA\GQA\MQA优化技术FlashAttention优化技术稀疏Attention1. Atrous Self Attention2. Local Self Attention3. Sparse Self Attention 2. LLM数据处理关键去重多样性保证构造扩充数据充分利用数据 参考文献…

Vue Router activated deactivated 路由守卫

在Vue.js应用程序中,Vue Router是一个重要的库,用于管理应用程序的路由。Vue Router提供了一些路由守卫,这些守卫允许我们在导航过程中执行一些操作。其中,activated和deactivated路由守卫是在路由切换时触发的两个关键守卫。本文…

【电路笔记】-无源高通滤波器

无源高通滤波器 文章目录 无源高通滤波器1、概述2、一阶高通滤波器的频率响应3、高通滤波器示例4、二阶高通滤波器5、RC 差异化因素高通滤波器与低通滤波器电路完全相反,因为这两个组件已互换,滤波器输出信号现在从电阻器两端获取。 1、概述 由于低通滤波器只允许低于其截止…

Shell编程之循环语句

目录 1.for循环语句(遍历循环) 1.1 for语句的结构 1.2 for语句的执行流程 1.3 for语句应用示例 1.4 echo命令参数 2.while循环语句 2.1 while语句应用示例 2.2 通过while循环读取行内容 3.until 4.双重循环 4.1 双重循环案例 4.2 循环的退出 …

从零开始详解OpenCV条形码区域分割

前言 在识别二维码之前,首先要划分出二维码的区域,在本篇文章中将从零开始实现二维码分割的功能,并详细介绍用到的方法。 我们需要处理的图像如下: 完整代码 首先我们先放出完整代码,然后根据整个分割流程介绍用到…

基于fastapi sqladmin开发,实现可动态配置admin

1. 功能介绍: 1. 支持动态创建表、类,属性,唯一约束、外键,索引,关系,无需写代码,快速创建业务对象; 2. 支持配置admin显示参数,支持sqladmin原生参数设置,动…

Istio 使用 Apache SkyWalking 进行服务链路追踪、链路监控告警

一、Istio 使用 Apache SkyWalking 链路追踪和告警 SkyWalking是一个开源的观测平台,用于从服务和云原生等基础设施中收集、分析、聚合以及可视化数据,SkyWalking 提供了一种简便的方式来清晰地观测分布式系统,甚至可以观测横跨不同云的系统…

终端安全管理防护软件排行榜2024(四大终端监控软件推荐)

你的企业存在这些问题吗? 数字化转型的深入和远程办公模式的普及,企业对终端安全管理的需求日益凸显。 确保终端设备的安全性不仅关乎数据保护、业务连续性,更直接影响企业的声誉与合规性。 2024年终端安全防护软件排行榜,有谁荣…

【MySQL的内置函数】

文章目录 一、日期函数1.current_date()2.current_time()3.current_timestamp4. date_add 穿越未来5.date_sub 回到过去6.datediff案例 二、字符串函数2.1charset2.2 concat ——拼接字符串2.3 ucase——转化成大写2.4 lcase——转化成小写2.5 left()2.6…

树与二叉树之间的转换

树转化成二叉树:兄弟相连留长子 1.加线:在兄弟之间加一条线 2.抹线:对每个结点,除了其左孩子外,去除其与其余孩子之间的关系 3.旋转:以树的根结点为轴心,将整树顺时针转45 二叉树转化成为树…

苹果 iPhone 15 Pro Max 称霸:智能手机市场势不可挡

苹果 iPhone 15 Pro Max 称霸:智能手机市场势不可挡 概述 在拥挤且竞争激烈的智能手机市场中,苹果的 iPhone 15 Pro Max 成为明显的赢家,在 2024 年第一季度最畅销智能手机排行榜上名列前茅。根据 Counterpoint Research 的数据&#xff0c…

【前端每日基础】day4

浏览器差异 浏览器差异是指不同的网络浏览器(比如Google Chrome、Mozilla Firefox、Microsoft Edge等)在解释和呈现网页内容时产生的不一致性。这些差异可能包括HTML、CSS和JavaScript的解释方式、渲染引擎的性能、对特定功能的支持程度等。 如何提供兼…

将来会是Python、Java、Golang三足鼎立吗?

在开始前我有一些资料,是我根据网友给的问题精心整理了一份「 Java的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! 软件工程里没有银弹&#xff…

uniapp、web网页跨站数据交互及通讯

来来来,说说你的创作灵感!这就跟吃饭睡觉一样,饿了就找吃的,渴了就倒水张口灌。 最近一个多月实在是忙的没再更新日志,好多粉丝私信说之前的创作于他们而言非常有用!受益菲浅,这里非常感谢粉丝…

前端nginx(windows操作系统)学习配置开发验证

Nginx概述 Nginx 作为负载均衡在 Linux 系统上具备很好的并发性能,并且占用极小的内存。但是在 Windows 系统上并不支撑较高并发,所以在Windows系统上选用Nginx作为负载均衡,需要考虑并发情况。 若并发需求低于 300,部署集群仅以…

使用 Valgrind 检测内存泄漏

Valgrind 是一个编程工具,用于内存调试、内存泄漏检测以及性能分析。Valgrind 工具集中的 Memcheck 是用于检测内存管理和线程错误的主要工具。 参考:https://blog.csdn.net/weixin_44046545/article/details/138417524 1、安装 Valgrind sudo apt-ge…

汇昌联信科技:做拼多多网店要押金吗?

做拼多多网店要押金吗?”这个问题,其实与拼多多的平台规则有关。在开店之前,商家需要详细了解平台的各项规定和费用构成,这样才能做好充足的准备。 一、明确回答问题 做拼多多网店,不需要支付押金。拼多多的入驻门槛相对较低&…

【本地部署及云化部署】

文章目录 本地部署及云化部署介绍 文章目录 文章目录一、本地部署模式二、云化部署模式总结 一、本地部署模式 需建设专业化机房,系统应用、前端软件全部安装到本地服务器上。需要专业的IT、网络安全、DBA、电气化工程师进行维护。近些年勒索病毒安全事件频发&am…

k8s设置在任意node里执行kubectl 命令

一、问题 正常来讲kubectl 只能在master node 里运行 当我们尝试在某个 node 节点来执行时, 通常会遇到下面错误 执行错误:The connection to the server localhost:8080 was refused - did you specify the 原因:因为k8s的各个组建&#xf…