amazon-kinesis-video-streams-webrtc-sdk-c 移植到linux开发板

2023-11-01

大部分参考这位大神的资料

  1. 分析依赖关系。
    通过分析Cmakelist.txt得出了一些依赖关系。
    libkvsWebrtcClient.so 依赖项如下:
    libkvspicUtils.a libkvspicState.a libssl.so libcrypto.so libsrtp2.a . libusrsctp.so
    libkvsWebrtcSignalingClient.so 依赖项如下:
    libkvsCommonLws.a libwebsockets.a libkvspicUtils.a libkvspicState.a libssl.so libcrypto.so
    kvsWebrtcClientMaster可执行程序:
    libkvsWebrtcClient.so libkvsWebrtcSignalingClient.so libkvspicUtils.a libkvsCommonLws.a libwebsockets.a
    kvsWebrtcClientViewer可执行程序:
    libkvsWebrtcClient.so libkvsWebrtcSignalingClient.so libkvspicUtils.a libkvsCommonLws.a libwebsockets.a

amazon-kinesis-video-streams-producer-c-master
kvsCommonLws -> src/source/Common/.c
src/source/Common/Lws/
.c
依赖的库libcrypto.so libssl.so libwebsocket.so libkvspicUtils.so

amazon-kinesis-video-streams-pic-master
kvspicState -》 src/state/src/.c
无依赖
kvspicUtils -》 src/utils/src/
.c
target_link_libraries(kvspicUtils ${CMAKE_DL_LIBS} Threads::Threads)

  1. 开始对需要的依赖库进行交叉编译
    (1)libsrtp
./configure --prefix=$(pwd)/Bin_XS7300 --host=arm-linux   CC=/opt/xs-linux/xs7300/csky-abiv2-ux-linuxv3615/bin/csky-linux-uclibcabiv2-gcc CXX=/opt/xs-linux/xs7300/csky-abiv2-ux-linuxv3615/bin/csky-linux-uclibcabiv2-g++  CFLAGS=-Os
make & make install

(2)usrsctp

在这里插入代码片

(3)mbedtls

CC=csky-linux-uclibcabiv2-gcc cmake -DCMAKE_INSTALL_PREFIX=$(pwd)/Bin_XS7300 -DUSE_SHARED_MBEDTLS_LIBRARY=On -DCMAKE_BUILD_TYPE=Release -DENABLE_TESTING=OFF -DENABLE_PROGRAMS=OFF ../

(4)Libevent

./autogen.sh;
./configure --prefix=$(pwd)/Bin_XS7300 CFLAGS=-I/home/crb/FFIPC-lib/temp/xs7300/third-party/openssl/include/  LDFLAGS=-L/home/crb/FFIPC-lib/temp/xs7300/third-party/openssl/lib --host=arm-linux CC=csky-linux-uclibcabiv2-gcc CXX=csky-linux-uclibcabiv2-g++

Make;
Make install; 

(5)Libwebsocket

cmake \
-DCMAKE_BUILD_TYPE=Release \
-DDEBUG=ON -DCMAKE_TOOLCHAIN_FILE=/usr/local/share/cmake-3.17/Modules/XS7300_toolchain.cmake \
-DLWS_WITH_SHARED=0 \
-DLWS_WITHOUT_SERVER=ON \
-DLWS_WITHOUT_TESTAPPS=ON \
-DLWS_WITH_ZLIB=OFF \
-DLWS_WITHOUT_EXTENSIONS=ON \
-DLWS_WITH_ZIP_FOPS=OFF \
-DLWS_MAX_SMP=1 \
-DLWS_HAVE_HMAC_CTX_new=1 \
-DLWS_HAVE_EVP_MD_CTX_free=1 \
-DLWS_HAVE_X509_VERIFY_PARAM_set1_host=1 \
-DLWS_WITH_LIBEVENT=ON -DLIBEVENT_INCLUDE_DIRS="/home/crb/FFIPC-lib/src/third-party/libs/amazon-kinesis-video-streams-webrtc-sdk-c-master/Library/XS7300/include/libevent/include" -DLIBEVENT_LIBRARIES="/home/crb/FFIPC-lib/src/third-party/libs/amazon-kinesis-video-streams-webrtc-sdk-c-master/Library/XS7300/lib/libevent.so "  \
 -DLWS_WITH_SSL=ON -DOPENSSL_INCLUDE_DIR="/home/crb/FFIPC-lib/temp/xs7300/third-party/openssl/include" -DLWS_OPENSSL_LIBRARIES="/home/crb/FFIPC-lib/temp/xs7300/third-party/openssl/lib/libssl.so;/home/crb/FFIPC-lib/temp/xs7300/third-party/openssl/lib/libcrypto.so" ..

make

这个是网上找来的,经过测试发现调用Libwebsocket库的时候一直会报错。“trace/breakpoint trap”
查了好久,发现把-DLWS_WITH_LIBEVENT=ON -DLIBEVENT_INCLUDE_DIRS="/home/crb/FFIPC-lib/src/third-party/libs/amazon-kinesis-video-streams-webrtc-sdk-c-master/Library/XS7300/include/libevent/include" -DLIBEVENT_LIBRARIES="/home/crb/FFIPC-lib/src/third-party/libs/amazon-kinesis-video-streams-webrtc-sdk-c-master/Library/XS7300/lib/libevent.so " \ 这些去掉重新编译就可以了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

amazon-kinesis-video-streams-webrtc-sdk-c 移植到linux开发板 的相关文章

  • perf stat中的cycles注释是什么意思

    8 014196 task clock 0 004 CPUs utilized 204 context switches 0 025 M sec 32 cpu migrations 0 004 M sec 0 page faults 0 0
  • 如何通过代理将套接字连接到http服务器?

    最近 我使用 C 语言编写了一个程序 用于连接到本地运行的 HTTP 服务器 从而向该服务器发出请求 这对我来说效果很好 之后 我尝试使用相同的代码连接到网络上的另一台服务器 例如 www google com 但我无法连接并从网络中的代理
  • CentOS目录结构是树形的吗?

    CentOS 上有相当于树的东西吗 如果你的 Centos 系统上没有安装 tree 无论如何我通常建议服务器设置使用最小安装磁盘 你应该在命令行中输入以下内容 yum install tree y 如果没有安装 那是因为您没有正确的存储库
  • python:numpy 运行脚本两次

    当我将 numpy 导入到 python 脚本中时 该脚本会执行两次 有人可以告诉我如何阻止这种情况 因为我的脚本中的所有内容都需要两倍的时间 这是一个例子 usr bin python2 from numpy import print t
  • touch命令在一个目录下创建多个文件(不同名称)

    我想制作一个在 bash 中创建目录和文件结构的脚本 我尝试过这样的事情 mkdir p 1 2 touch 1 2 a b c a b c 应该是在一个命令或其他命令中创建的文件 但由于某种原因 结构是这样的 current folder
  • 将数组传递给函数名称冲突

    Specs GNU bash 版本 3 1 17 无法升级 Premise 我一直在摆弄数组 我想知道是否有任何方法可以让函数的本地变量与所述函数外部的数组同名 Example 在下面的示例中 我将尝试显示该问题 Working bin b
  • 伊迪德信息

    重新定义问题 有什么方法可以获取所连接显示器的序列号吗 我想收集显示器的Eid信息 当我使用 logverbose 选项运行 X 时 我可以从 xorg 0 log 文件中获取它 但问题是 如果我切换显示器 拔出当前显示器 然后插入另一个显
  • 停止服务时单元陷入故障状态(状态=143)[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这是我的问题 我有 CentOS 和 java 进程在上面运行 Java进程是通过启动 停止脚本来操作的 它也创建了 java 实例的 p
  • Inotify linux 监视子目录

    是否可以以这种模式监视目录 storage data usernames Download gt storage data Download 我需要监视每个用户的下载文件夹中是否进行了更改 也许我需要创建所有路径的列表 将其放入数组中 并在
  • 如何不断刷新屏幕并实时更新[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想在linux上写一个C程序 不断刷新屏幕并实时更新 例如类似于top终端中的命令 谁能指出我正确的方向 为了保持它跨终端类型的可移
  • 如何在Python中独立于语言安装(linux)获取用户桌面路径

    我找到了 如何找到用户桌面的路径 的几个问题和答案 但在我看来它们都已失效 至少我找到的那些 原因是 如果用户安装的 Linux 不是英语 他或她的桌面很可能位于除 Desktop 例如 对于瑞典语 我相信它是在 Skrivbord 谁知道
  • Bash 方法的返回值总是模 256

    我有一个 bash 脚本方法 它返回输入值 然而 返回值始终是模 256 的值 我用 google 搜索了一段时间 发现this http www tldp org LDP abs html exitcodes html文章说它总是以 25
  • C 程序从连接到系统的 USB 设备读取数据

    我正在尝试从连接到系统 USB 端口的 USB 设备 例如随身碟 获取数据 在这里 我可以打开设备文件并读取一些随机原始数据 但我想获取像 minicom teraterm 这样的数据 请让我知道我可以使用哪些方法和库来成功完成此操作以及如
  • Docker:处理 tar 文件时出错(退出状态 1):设置枢轴目录时出错:不是目录

    我是 Docker 新手 不知道是什么原因导致此错误或如何诊断它 任何有关此问题的具体帮助或有关首先检查何处以诊断此类问题的提示将不胜感激 我的 Dockerfile FROM java 8 Install maven RUN apt ge
  • 设置 Apache POI 的路径

    我想创建 Excel 文件并使用 java 程序在该文件中写入数据 That is here http www techbrainwave com p 554我在 java 文件所在的位置提取了 Apache POI 并将该路径包含在路径变
  • 在 /dev/input/eventX 中写入事件需要哪些命令?

    我正在开发一个android需要将触摸事件发送到 dev input eventX 的应用程序 我知道C执行此类操作的代码结构如下 struct input event struct timeval time unsigned short
  • 如何使用 sed 仅删除双空行?

    我找到了这个问题和答案 https stackoverflow com questions 4651591 howto use sed to remove only triple empty lines关于如何删除三重空行 但是 我只需要对
  • diff 文件仅比较每行的前 n 个字符

    我有2个文件 我们将它们称为 md5s1 txt 和 md5s2 txt 两者都包含a的输出 find type f print0 xargs 0 md5sum sort gt md5s txt 不同目录下的命令 许多文件被重命名 但内容保
  • 如何制作和应用SVN补丁?

    我想制作一个SVN类型的补丁文件httpd conf这样我就可以轻松地将其应用到其他主机上 If I do cd root diff Naur etc httpd conf httpd conf original etc httpd con
  • .NET Core 中的跨平台文件名处理

    如何处理文件名System IO以跨平台方式运行类以使其在 Windows 和 Linux 上运行 例如 我编写的代码在 Windows 上完美运行 但它不会在 Ubuntu Linux 上创建文件 var tempFilename Dat

随机推荐

  • LeetCode·每日一题·722. 删除注释·模拟

    题目 示例 思路 题意 gt 给定一段代码 将代码中的注释删除并返回 由于注释只有两种类型 字符串 表示行注释 表示 和其右侧的其余字符应该被忽略 字符串 表示一个块注释 它表示直到下一个 非重叠 出现的 之间的所有字符都应该被忽略 阅读顺
  • Vuforia AR学习

    传送门 1 搜索 Vuforia 下载相关 SDK 和 Samples 2 这个就有点坑了 想运行 sample demo 需要把下载好的sample拷贝至sdk目录下的sample文件夹下 如图 3 也可以修改修改 Samples dem
  • Linux中nginx配置ssl证书实现https访问(nginx-1.16.1为例)

    配置ssl证书之前 先准备好SSL证书 至于获取的途径很多 不清楚的可以自行搜索 也可以留言 准备好证书后 找到nginx的安装目录 我的安装位置为 usr local nginx 1 16 1 进入 conf nginx conf 编辑n
  • 数据结构:哈夫曼树算法(内含Select函数算法解析)全网最全解释

    引言 学习数据结构的都应该清楚 哈夫曼树是书章节的最后一个内容 也是相对重要的一个知识 他可以应用在生活的各个例子中 如下图所示 假设有ABCD 四个货物架D货架物品被人购买的概率是20 C货架是 35 B货架是 60 D货架是80 那么显
  • python 数组-(列表遍历)(元素互换)

    lisName 张三丰 李四 王麻子 饭桶 遍历列表中所有元素 print 20 for obj in lisName print obj print 20 通过 下标 索引获取值 for i in range 0 len lisName
  • blender快捷键

    tab 模式切换 可以shift多物体切换 主键盘 1点 2线 3面 按住shift 点击点面 可以多选 或者shift 1 2 3多选 ctrl alt q 四象视图 小键盘1前 3右 7顶 9切换前后 也可以按crl 1后视图 小键盘
  • STL系列之十 全排列(百度迅雷笔试题)

    转载自 http blog csdn net morewindows article details 7370155 全排列在笔试面试中很热门 因为它难度适中 既可以考察递归实现 又能进一步考察非递归的实现 便于区分出考生的水平 所以在百度
  • GlidedShy 第一题 实现自动登录和数据爬取

    python 自动登录 控制以及接管浏览器 爬取信息练习 GlidedShy官网 爬虫练习网站 代码仅供学习参考 功能实现步骤 自动登录 输入账号密码 选择题目 爬取数据 自动提交后返回 验证邮箱 注册时已人工验证 框架 Seleium控制
  • spdlog和fork冲突问题

    遇到个问题 使用spdlog的async logger打印日志 一直都是正常的 但是调用了fork之后就不打印了 先使用打印TODO大法 使用的spdlog的default logger打印 走的console打印 结果发现console打
  • win10 WSL2 Docker 与 Linux Docker

    项目场景 项目场景 用win10 wsl2 docker开发使用GPU tensorflow onnx TensorRT 的镜像 然后部署到Linux生产环境进行使用 发现不识别cuda驱动 问题描述 在Linux上运行wsl2 save
  • 优化算法基本原理

    优化算法基本原理 机器学习就两个问题 一个是model的定义 一个就是如何优化 model是战略 优化则是执行 在Caffe现在的版本中 主要使用了三种优化算法SGD AdaGrad 以及NAG 这三种算法快速 高效 缺点就是极容易收敛到局
  • iOS架构-组件化(项目实战-项目首页架构)

    UI架构设计 设计模式 外观模式 代理模式 适配器模式 adapter 注意 一版本只是搭建结构 一 1 0 Tab搭建 二 1 1 新增UICollectionView 主页 gt 整体设计基于 gt UICollectionView 滑
  • protobuf介绍和语法

    目录 前言 语法 标识符 字段 字段类型 proto2和proto3区别 前言 Protobuf即Protocol Buffers 是Google公司开发的一种跨语言和平台的序列化数据结构的方式 是一个灵活的 高效的用于序列化数据的协议 与
  • 用CSS实现宽度自适应100%,宽高比例为16: 9的矩形

    宽度自适应100 宽高比为16 9 即100 h 16 9 计算出来矩形高度 h 56 25 父元素设置height 0 padding bottom 56 25 是为了让子元素适应父元素的高度 子元素高度 父元素的 padding bot
  • python 崇天_python 从入门到放弃-----认识python的过程

    因为初来匝道 这样子写不知道会不会有问题 这里我先写下来 后期如果有问题 再修改 这里只记录一个小渣渣的学习过程和总结 中途学习爬虫也断断续续 还在继续努力中 但也总结自己的一些个人经验 1 零基础学习爬虫 还是要学python和HTML的
  • 2023年第二届服务机器人国际会议(ICoSR 2023)

    会议简介 Brief Introduction 2023年第二届服务机器人国际会议 ICoSR 2023 会议时间 2023年7月21日 23日 召开地点 中国 上海 大会官网 www iwosr org ICoSR 2023将围绕 服务机
  • Clang 新手教程来啦!

    长话短说 这篇新手教程会让你弄清楚什么是clang clang AST clang plugins 和clang tools 等等 让你大概知道clang 可以解决什么问题 而且小白也是可以用clang libraries 来开发工具的 0
  • 微信小程序前端引入weui组件库

    正在开发的微信小程序 想使用weui组件库 步骤如下 基础 1 小程序开发工具 1 06 22 1 初始化 以管理员身份运行命令行窗口 cmd 或使用VSCode进入终端 在cmd中进入项目的根目录 然后输入以下命令 npm init 后面
  • 2020新版去水印小程序搭建详细教程

    可以设置小程序跳转 引流也不错 支持小程序后台流量主激励视频广告 用户下载一次观看一次视频广告 收入非常可观 支持小程序后台流量主banner广告 支持全网短视频解析 苹果安卓通用 支持后台无限生成卡密 支持自定义文字广告 支持图片广告 支
  • amazon-kinesis-video-streams-webrtc-sdk-c 移植到linux开发板

    大部分参考这位大神的资料 分析依赖关系 通过分析Cmakelist txt得出了一些依赖关系 libkvsWebrtcClient so 依赖项如下 libkvspicUtils a libkvspicState a libssl so l