MetaRTC-ffmpeg arm移植
touch cmake_arm.sh
添加
rm -rf build
mkdir build
cd build
ARCH=aarch64.cmake
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=../$ARCH ..
make
touch cmake_arm.sh
添加
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_C_COMPILER /home/yqw/MetaRTC/BC/stbgcc-6.3-1.1/bin/arm-linux-gcc)
SET(CMAKE_CXX_COMPILER /home/yqw/MetaRTC/BC/stbgcc-6.3-1.1/bin/arm-linux-g++)
将这两个文件放入libmetartc6
./cmake_arm.sh
srtp
./configure --prefix="/home/yqw/temp/ffmpeg-webrtc/FFmpeg-n4.3.3/metartc6/libsrtp-2-fit" --host="arm-linux" --enable-static --enable-shared CC=/home/yqw/MetaRTC/BC/stbgcc-6.3-1.1/bin/arm-linux-gcc
make -j20
RV32
export PATH=$PATH:/home/yqw/MetaRTC/RV/usr/bin
./configure --prefix="/home/yqw/temp/ffmpeg-webrtc/FFmpeg-n4.3.3/metartc6/libsrtp-2-fit" --host="arm-linux" --enable-static --enable-shared CC=arm-linux-gnueabihf-gcc
openssl
./config no-asm shared no-async --prefix=$(pwd)/build --cross-compile-prefix=/home/yqw/MetaRTC/BC/stbgcc-6.3-1.1/bin/arm-linux-make -j20sudo make install
add CC
./config no-asm shared no-async --prefix=$(pwd)/build --cross-compile-prefix=arm-linux- CC=gcc
RV32
export PATH=$PATH:/home/yqw/MetaRTC/RV/usr/bin
./config no-asm shared no-async --prefix=$(pwd)/build --cross-compile-prefix=arm-linux-gnueabihf-
然后把Makefile中的所有的-m64删去
在build中到.a
编译ffmpeg
./configure --cross-prefix=/home/yqw/MetaRTC/BC/stbgcc-6.3-1.1/bin/arm-linux- --enable-cross-compile --target-os=linux --cc=/home/yqw/MetaRTC/BC/stbgcc-6.3-1.1/bin/arm-linux-gcc --arch=arm --prefix=$(pwd)/build32 --disable-shared --enable-static --extra-libs='-L/home/yqw/temp/ffmpeg-webrtc/FFmpeg-n4.3.3/metartc6 -lmetartccore6 -lpthread -lsrtp2 -lssl -lcrypto -ldl'
RV32
./configure --cross-prefix=/home/yqw/MetaRTC/RV/bin/arm-linux-gnueabihf- --enable-cross-compile --target-os=linux --cc=arm-linux-gnueabihf-gcc --arch=arm --prefix=$(pwd)/build_RV32 --disable-shared --enable-static --extra-libs='-L/home/yqw/temp/ffmpeg-webrtc/FFmpeg-n4.3.3/metartc6 -lmetartccore6 -lpthread -lsrtp2 -lssl -lcrypto -ldl'
注意这里的dl和pthread是调用交叉编译工具链中的库;当写在同一个–extra-libs里时没有顺序之分,如果用两个–extra-libs,那么就有加载的顺序之分,比如crypto里要用到dl,那么dl就需要放在它的前面加载。
第二个注意点,无法把ffmepg编译成动态库,不然会报如下错误:
libmetartccore6.a(YangMetaConnection.c.o): relocation R_ARM_THM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recompile with -fPIC
speexdsp
./autogen.sh
./configure --prefix=“$(pwd)/build-33” --host=“arm-linux” --enable-shared --enable-static CC=arm-linux-gcc
make -j20
make install
/home/yqw/temp/ffmpeg-webrtc/FFmpeg-n4.3.3/metartc6/metartc6/include/yang_config.h
#define Yang_Enable_Dtls 1 //default:using dtls
#define Yang_Enable_Openssl 1
#define Yang_Enable_RTC_Video 0
metartc支持mips32位,支持arm64,不支持arm32位,在arm32下报下列错误,这个错误是对内存的越界操作,然后再free(),目前metartc6和7都不支持arm32。
webrtc init>>>>>>>>>>>>>>>>>>>http://192.168.100.77:1985/tc/v1/whip/?app=live&stream=livestream
[webrtc @ 0x189c3c0] webrtc_open http://192.168.100.77:1985/tc/v1/whip/?app=live&stream=livestream
srtp init success!
*** Error in `/usr/data/ffmpeg’: free(): invalid next size (fast): 0x0189cd20 ***
Program received signal SIGABRT, Aborted.
0xb6e515f6 in ?? () from /lib/libc.so.6
(gdb) bt
#0 0xb6e515f6 in ?? () from /lib/libc.so.6
#1 0xb6e5f2ac in raise () from /lib/libc.so.6
#2 0xb6e5ff9a in abort () from /lib/libc.so.6
#3 0xb6e86bba in ?? () from /lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
ffmpeg-bin
./configure --cross-prefix=/home/yqw/MetaRTC/BC/stbgcc-6.3-1.1/bin/arm-linux- --enable-cross-compile --target-os=linux --cc=arm-linux-gcc --arch=arm --prefix=$(pwd)/build32 --disable-shared --enable-static --extra-libs=‘-L/home/yqw/temp/FFMPEG_WEBRTC/2.0-ffmpeg-webrtc/FFmpeg-n4.3.3/metartc2 -lmetartccore2 -lpthread -lspeexdsp -lsrtp2 -lssl -lcrypto -ldl’
相关文章:
MetaRTC-ffmpeg arm移植
touch cmake_arm.sh 添加 rm -rf build mkdir build cd build ARCHaarch64.cmake cmake -DCMAKE_BUILD_TYPERelease -DCMAKE_TOOLCHAIN_FILE../$ARCH .. maketouch cmake_arm.sh 添加 SET(CMAKE_SYSTEM_NAME Linux) SET(CMAKE_C_COMPILER /home/yqw/MetaRTC/BC/stbgcc-6.3-1…...
【乐吾乐3D可视化组态编辑器】模型类型与属性
编辑器地址:3D可视化组态 - 乐吾乐Le5le 本章主要为您介绍模型的属性功能。 一个模型至少会包含一个节点(Node),从节点类型上可以分为转换节点(TransformNode)、网格(Mesh)、实例网…...
PyQt下拉框QComboBox点击下拉时即更新下拉数据
在 PyQt 中,QComboBox 控件本身并没有直接的事件或信号来指示下拉列表何时被打开(即用户点击了下拉箭头)。但是,你可以通过其他方式间接地实现这个功能,比如通过重写 QComboBox 的某些方法或者在用户与 QComboBox 交互…...
网上有哪些正规的兼职副业赚钱平台?分享10类正规的网上兼职赚钱平台,让你在家也能赚钱~
在如今的快节奏社会中,越来越多的人开始寻求兼职副业来增加收入。而随着互联网的普及,网上赚钱平台成为了许多人选择的方式之一。然而,面对众多的网上赚钱平台,我们要如何辨别哪些是正规可靠的呢?在本文中,…...
Spring:JWT
文章目录 一、介绍 一、介绍 JWT(JSON Web Token)是一种开放标准(RFC 7519)的方法,用于在双方之间安全地传输信息。这些信息可以是验证、授权、信息交换等。JWT 通常被用于在客户端和服务器之间传递用户信息ÿ…...
Python的selenium爬取
1.selenium 1.1.前言 使用python的requests模块还是存在很大的局限性,例如:只发一次请求;针对ajax动态加载的网页则无法获取数据等等问题。特此,本章节将通过selenium模拟浏览器来完成更高级的爬虫抓取任务。 1.2.什么是seleniu…...
Linux--进程间通信(1)(匿名管道)
目录 1.了解进程通信 1.1进程为什么要通信 1.2 进程如何通信 1.3进程间通信的方式 2.管道 2.1管道的初步理解 2.2站在文件描述符的角度-进一步理解管道 2.3 管道的系统调用接口(匿名管道) 2.3.1介绍接口函数: 2.3.2编写一个管道的代…...
Hive环境搭建
1 安装Hive 下载文件 # wget -P /opt/ https://mirrors.huaweicloud.com/apache/hive/hive-2.3.8/apache-hive-2.3.8-bin.tar.gz 解压缩 # tar -zxvf /opt/apache-hive-2.3.8-bin.tar.gz -C /opt/ 修改hive文件夹名字 # mv /opt/apache-hive-2.3.8-bin /opt/hive 配置环境变量 …...
网络编程基础(四)
目录 前言 二、多点通信 2.1 单播 2.2 广播 2.2.1 广播得发送端实现--》类似与UDP的客户端 2.3 组播 2.3.1 组播发送端流程--》类似于UDP的客户端流程 2.3.2 组播的接收端流程---》类似于UDP的服务器端流程 前言 多点通信 一、套接字选项得获取和设置 int getsockopt(int…...
将C++ cv:mat 通过JNI 转换为jbtyearray,传到android端
cv::Mat result ; //此处为C获取到的cv::mat结果对象// 编码为JPEG格式std::vector<uchar> buf;cv::imencode(".jpg", result, buf);// 创建一个新的jbyteArray并设置其大小jbyteArray array env->NewByteArray(buf.size());if (array NULL) {// 处理内存…...
WannaCry勒索软件(CVE-2017-0144)
WannaCry 永恒之蓝 在2017年5月,WannaCry勒索软件爆发了一场全球性的网络安全危机,迅速感染了超过200,000台计算机,波及150多个国家。从医疗保健系统到政府机构,无数组织面临数据被加密和赎金要求的双重威胁。本文将提供关于Wann…...
JavaScript(ES5) 入门
01-简介 1)JavaScript 发展史 [1] 1995年,navigator(导航者),netscape(网景);用户体验性特别好 [2] 表单验证难题,表单验证都是在后台处理.当时处在网速特别慢的时代,发送一个请求,接收响应 需要5分钟左右的时候提高表单验证的速度,想开发一种语言在前端进行表单验证. [3] 1995…...
趣店集团golang一面要个20K,Channel什么情况下会出现死锁,有遇到过吗?
结束后面试官加了VX,并询问方便二面的时间,一直还没回复,拖着拖着给忘啦... 面试题 1、自我介绍 2、你在团队里头负责哪一块,这个物流开放平台流量多大 3、为什么今年3月份被从物流开放团队转到了finance财务部门,感…...
智能化乙级资质延期,行业标准的坚守
智能化乙级资质延期:行业标准的坚守 一、引言 智能化乙级资质是企业在智能化工程设计与施工领域的重要认证,它代表了企业的技术实力和专业水平。为确保企业能够持续满足行业标准,保持竞争力,智能化乙级资质的延期管理显得尤为重要…...
d20(184-190)-勇敢开始Java,咖啡拯救人生
目录 网络通信 网络通信三要素(IP地址,端口号,协议 IP地址 InetAddress 端口号 协议 传输层的两个通信协议 UDP通信 java.net.Datagramsocket类 客户端 服务端 UDP通信多收多发 客户端 服务端 TCP通信 java.net.Socket类 客…...
Python 登录表单处理
分析: 处理登录表单以便爬⾍能够抓取需要认证的⽹⻚数据,通常需要模拟登录过程。这可以通过发送带有⽤⼾凭证的POST请求到登录表单的URL来实现。为了保持登录状态,需要处理和保存会话中的 cookies。Python的 requests 库可以⽅便地处理这些任…...
2024.05.27学习记录
1、面经复习: 实际工作经验章节 2、代码随想录刷题:动态规划剩下部分和单调栈 3、rosebush 组件库完成Input 和 AutoComplete部分内容...
BLASTBufferQueue端的GraphicBuffer怎么和SurfaceFlinger端的BufferStateLayer关联上
BLASTBufferQueue端的GraphicBuffer怎么和SurfaceFlinger端的BufferStateLayer关联上 引言 在跟进hwc_layer是如何产生的,并如何被填充上GraphicBuffer的,怎么也找不到被填充的GraphicBuffer的来源,最终找到了,它的来源是客户端的…...
48、spfa求最短路
spfa求最短路 题目描述 给定一个n个点m条边的有向图,图中可能存在重边和自环, 边权可能为负数。 请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出impossible。 数据保证不存在负权回路。 输入格式 第一行包…...
安装PyTorch详细步骤
💥注意事项: CPU版和GPU版选一个进行安装即可 如果有Nvidia显卡,则安装cuda版本的PyTorch,如没有nvidia显卡,则安装cpu版。 目前常见的深度学习框架有很多,最出名的是:PyTorch(faceb…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
