自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Swallow_he的博客

终身学习,乐在其中

  • 博客(150)
  • 资源 (8)
  • 收藏
  • 关注

原创 Win10支持ffmpeg+cuda解码硬加速

本文主要介绍Win10上如何基于NVIDIA显卡实现ffmpeg硬件解码

2022-09-01 15:40:30 2404 1

原创 调用MQTTClient_connect返回-8

1、问题描述使用开源库paho.mqtt.c时,其接口MQTTClient_connect返回-8;查看源文件对应的返回值具体为:MQTTCLIENT_BAD_STRUCTURE(-8)2、根据分析结论如下:使用的libpaho-mqtt3c.so和头文件不匹配,头文件是下载的1.3.9版本的paho.mqtt.c,而库是使用其他编译的;3、解决办法下载自己需要版本的paho.mqtt.c源码,重新编译后,使用include+lib...

2022-05-25 14:10:25 1371

原创 Windows下Visual Studio 2019 编译obs-studio

1、安装cmake-guiWindows版本的CMake(3.16 ,或者更高版本)2、下载依赖dependencies2019需要的预编译的开发包FFmpeg,x264,cURL and mbedTLShttps://obsproject.com/downloads/dependencies2019.zip3、安装VS2019+QT(1)下载vs2019社区版本(2) 下载最新的Windows 10 SDK(minimum 10.0.20348.0)下载地址:Windows

2022-04-21 12:45:11 1051 1

原创 VS2019 + Qt5.15.2开发环境搭建

1、安装Visual Studio 2019VS2019社区版本下载地址:Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器详细的安装步骤可参考:VS2019安装教程(超详细)新手必码 - 知乎2、安装Qt因从Qt5.15.0开始,官网已经不提供离线版的Qt安装包了,所以得下载在线版的,打开如下地址:Index of /official_releases/online_installers下载qt-unified-windows-x86-onl

2022-04-21 09:38:34 1326

原创 【交叉编译六】paho.mqtt.c-1.3.9

在海思平台编译mqtt操作如下:【不支持OpenSSL】cmake ../ -DPAHO_BUILD_STATIC=TRUE -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_C_COMPILER=/opt/hisi-linux/x86-arm/arm-hisiv500-linux/target/bin/arm-hisiv500-linux-gcc -DCMAKE_INSTALL_PREFIX=/data1/heyan18/work/third_lib/paho.mqtt.c-1

2022-02-17 16:03:35 1205

原创 WebRTC学习(八)peerconnection_client之loopback(回环)测试

在webrtc中peerconnection_client例子中含有本地回环测试代码,如果要使用,稍微改动一下src\examples\peerconnection\client\conductor.cc代码改动如下:void Conductor::StartLogin(const std::string& server, int port) {/*loopback*/ InitializePeerConnection(); ReinitializePeerConne

2022-01-09 23:58:39 1210

原创 WebRTC学习(七)Win10调试peerconnection_client遇到crash问题

编译成功之后,可以使用VS2017打开工程,我们可以看到如下:我们可以在一个电脑下执行peerconnection_client,具体的操作如下:1.将编译好的peerconnection_client.exe 复制一份;2.安装一个虚拟摄像头:e2esoft Vcam ,安装后开启;3.分别执行peerconnection_client最为两个客户端;在刚开始执行peerconnection_client,遇到了crash问题,主要报错堆栈信息如下:我们可以看到报.

2022-01-09 23:36:06 1505

原创 WebRTC学习(六)Win10编译WebRTC支持H264

WebRTC要支持H264,需要在编译时开启,具体的编译指令如下:set PATH=%PATH%;%USERPROFILE%\depot_toolsset DEPOT_TOOLS_UPDATE=0 #不更新depot_toolsset DEPOT_TOOLS_WIN_TOOLCHAIN=0 #编译时使用本机VS工具链set GYP_MSVS_VERSION=2017 #指定VS版本set GYP_MSVS_OVERRIDE_PATH = C:\Program Files (x86)\M

2022-01-09 23:14:36 730 1

原创 使用git clone遇到:certificate verification failed

git clone时出现错误:server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none解决办法:1、设置环境变量export GIT_SSL_NO_VERIFY=12、进行如下操作:sudo apt updatesudo apt-get install apt-transport-https ca-certificates -ysudo ..

2021-11-15 15:29:11 1421

原创 WebRTC学习(五)海思平台交叉编译WebRTC

前言:有一位大神在博客中说:(2019年9月之前的版本,这之后的版本默认是C++14的(由git log可获取该信息),用海思编译器编译会有问题,release版本的分支号branch-heads/m77,这个版本之前的应该都可以。)如果更高的版本在海思arm-hisiv500-linux 可以编译,还请指导。鉴于这个原因,本文也是用M77版本在海思平台上编译;如果所在的编译环境有网络,那么可以参照如上的博客操作,我这边因为编译环境无法访问外网,需要用到docker...

2021-09-27 14:55:14 1641

原创 WebRTC学习(四)提取WebRTC头文件供外部使用

1、Window下提取webrtc的头文件创建bat脚本,该脚本和src目录放在同一级,最后提取的头文件按照原来目录级别放在src同级的include中。echo off :: 定义源目录set sourcePath=.\src::定义目标路径set resulePath=.\include xcopy %sourcePath%\*.h %resulePath%\ /s /e /c /y /h /r pause2、Linux下提取webrtc的头文件放在和src下目录,

2021-09-27 11:51:59 1205

原创 WebRTC学习(三)Ubuntu 16.04编译linux平台WebRTC

1、使用apt-get安装基础工具sudo apt-get install g++sudo apt-get install pythonsudo apt-get install gitsudo apt-get install subversion2、下载depot_toolsgit clone https://chromium.googlesource.com/chromium/tools/depot_tools.git3、配置环境变量在bashrc中添加一个export命令

2021-09-27 11:11:02 1431

原创 WebRTC学习(二)Windows10平台WebRTC编译(VS2017)

1、Visual Studio 2017安装WebRTC用到了很多C++最新特性,所以编译最新WebRTC代码VS要求为2017(>=15.7.2) 版本。

2021-09-02 19:45:19 1164 4

原创 ubuntu下安装Gtest和测试

1、获取gtest源码sudo apt-get install libgtest-dev随后进入/usr/src/进入 cd /usr/src/gtestmkdirbuildcdbuildcmake ..make按照命令执行后,可以看到有静态库生成:将编译生成好的库拷贝到系统目录下:sudo cp libgtest*.a /usr/local/lib...

2021-09-02 18:47:10 4764 4

原创 C++11新特性

1、C++11 中的 override 关键字在派生类的成员函数中使用override时,(1)如果基类中无此函数,或基类中的函数并不是虚函数,编译器会给出相关错误信息。(2)显式的在派生类中声明时,哪些成员函数需要被重写,如果没被重写,则编译器会报错。2、基于范围的 for 循环std::vector<int> arr(5, 100);for(std::vector<int>::iterator iter = arr.begin(); iter != arr.end

2021-08-28 15:58:26 133

原创 WebRTC学习(一)下载指定版本源码

使用阿里云下载,修改主机名hostnamectl set-hostname 要修改的名字安装Git的错误与解决方法(Unable to locate package)需要安装git,所以就用:sudo apt-get install git进行安装,在安装的时候出现错误:Unable to locate package经过查阅资料,发现是因为新装的ubuntu系统,没有update的原因。然后进行update,输入命令:sudo apt-get updateapt-get inst

2021-08-25 20:31:26 3301 2

原创 【交叉编译 五】OpenH264

0、背景OpenH264是一个编解码器,支持H.264编码和解码。它适合用在实时应用程序中,比如使用 WebRTC。1、下载源码git clonehttps://github.com/cisco/openh264.githttps://github.com/cisco/openh264/releases2、Linux平台解压编译设置环境变量BUILD_LIBS=${PWD}/build_linuxexport PATH=${BUILD_LIBS}/bin:${PATH}.

2021-08-23 20:55:28 861 1

原创 与WebRTC的缘分不浅

在我2016年大学毕业,就进入音视频相关的岗位,那时候记得老大对我们讲:一毕业就进入一个比较潮流的领域...之后虽然研究WebRTC的源码比较少,但是WebRTC的思想一直在被我们学习和借鉴,更没有说将WeBRTC的源码直接拿来使用,所以对WeBRTC的框架研究和学习比较少,后来一些大厂商已经提供了供大家使用的WebRTC的SDK比如亚马逊基于KVS的WebRTC,声网SDK,这里面因为项目需求,对于他们的SDK或多或少都有过一些涉及。而今有一个机会,让我继续研究和学习甚至是二次开发WebRTC,我

2021-08-11 00:15:04 487 3

原创 AWS KVS(Kinesis Video Streams)之WebRTC集成过程报错问题整理(九)

当我认为可以很快将WebRTC SDK合入到设备中时,这里我选择使用动态加载WebRTC的业务模块(按照插件方式),当主业务进程启动后,根据配置项,是否加载该WebRTC的插件;WebRTC的业务代码完成编译后,我发现主进程使用的openssl的版本是1.0.1e,libwesockets的版本是2.3-stable,都是静态库的方式,而WebRTC SDK中使用的openssl-1.1.1 和libwesockets-3.2.3,也是静态库,这必然会导致运行报错;...

2021-05-13 18:51:01 671

原创 AWS KVS(Kinesis Video Streams)之WebRTC集成过程报错问题整理(八)

1、用例情况:【1】第一组master:君正平台的 kvsWebrtcClientMasterviewer:https://us-west-2.console.aws.amazon.com/kinesisvideo/home?region=us-west-2#/signalingChannels/signalingChannelName/ 打开创建的信号通道结论:信令交互都正确,但是在STUN包交互过程,出现问题,无论是P2P还是Relay都没有通【2】第二组master:官..

2021-05-11 18:45:28 1197 15

原创 AWS KVS(Kinesis Video Streams)之WebRTC集成过程报错问题整理(七)

在前面我已经将君正T31X平台的WebRTC相关的依赖库编译完成,且现在将kvsWebrtcClientMaster测试用例也需要编译出来,在Camera中运行,验证依赖库的正确性。根据自己编写的CMakeLists.txt,编译成功后,在camera上执行:(1)将依赖的动态库和程序放在SD卡;(2)设置编辑变量的值export AWS_ACCESS_KEY_ID=XXexport AWS_SECRET_ACCESS_KEY=XXexport DEBUG_LOG_SDP=debug

2021-04-28 11:42:09 1178

原创 AWS KVS(Kinesis Video Streams)之WebRTC集成过程(六)

因为我们的实际的使用过程是智能摄像头设备(门铃/Camera)和Echoshow(实际上是Alexa)对接,实现语音全双工,我们计划集成AWS提供的完整的WebRTC的方案(SDK),因此在所有依赖库编译完后,可以通过如下的过程(Alexa SmartHome Camera WebRTC Integration with AWS KVS),理解和分析WebRTC的使用流程;...

2021-04-19 10:22:04 1933

原创 AWS KVS(Kinesis Video Streams)之WebRTC移植编译(五)

在使用KVS完整的WebRTC的SDK(包括信令、STUN/TURN等),我们还需要编译(详见SDK的依赖项)如下两个库1、amazon-kinesis-video-streams-producer-c中的libkvsCommonLws.a编译君正平台:我们在下载的源码目录中新建如下三个目录:Bin/T31X :存放生成的库Build/T31X: 编译脚本Library/T31X:依赖项CMakeLists.txt内容如下:#**********************

2021-04-19 10:11:35 2179 3

原创 AWS KVS(Kinesis Video Streams)之WebRTC移植编译(四)

在前面几篇文章中我们已经进行了依赖库的编译,因此,现在需要最终我们需要使用的库libkvsWebrtcClient.a 或者libkvsWebrtcClient.so如下操作是编译君正(T31X)平台的libkvsWebrtcClient.a 或者libkvsWebrtcClient.so1、下载源码(amazon-kinesis-video-streams-webrtc-sdk-c)我们新建几个目录:Library 用于存放依赖的库和头文件;Build用于存放编译脚本;Bin用

2021-03-29 12:00:39 2097 5

原创 AWS KVS(Kinesis Video Streams)之WebRTC移植编译(三)

继上一篇文章后,中途被其他事情耽误两周,现在继续。。。编译第三方库:一、【君正平台:编译usrsctp】1、下载源码git clone https://github.com/sctplab/usrsctp.git2、编译我们进入目录建一个Build/T31X/目录,并进入该目录,将编译链toolchain拷贝在该目录下执行:cmake -DCMAKE_TOOLCHAIN_FILE=./toolchain/cross-mips-linux-uclibc-gnu.cmake

2021-03-22 13:49:56 2472 7

原创 AWS KVS(Kinesis Video Streams)之WebRTC移植编译(二)

在编译依赖库前,我们需要整理一下amazon-kinesis-video-streams-webrtc-sdk-c依赖的所有库头文件:依赖库:我们首先编译第三方库:君正平台的openssl,当前的版本是1.1.1g下载源码后,我们可以在源码include/openssl/opensslv.h查看到当前的版本号:(1)进入源码目录后,我们修改config 和Configure的可执行权限后,执行如下的编译脚本:./config no-asm no-sse2 no-ss

2021-02-26 14:00:39 2488 3

原创 AWS KVS(Kinesis Video Streams)之WebRTC移植编译(一)

本文在于记录amazon-kinesis提供的设备端WebRTC SDK的依赖项编译过程,该过程在嵌入式设备君正平台验证1、首先我们可能需要一个墙外的服务器拉取代码,我是在开启了一个AWS的美国环境EC2,因为在国内访问实在是太慢了。...

2021-02-24 15:35:04 3576 2

原创 AWS KVS(Kinesis Video Streams)之WebRTC的C库测试

想要验证AWS KVS with WebRTC的嵌入式C库,我们将其源码编译(详见WebRTC编译过程)后,可以运行其提供的sample,注:该过程是在Linux环境上。1.编译结束后,我们在build目录中看到如下信息:这其中提供了一个kvsWebrtcClientMaster可用于我们主设备发送数据,kvsWebrtcClientViewer用于请求发送数据端,即接受者。验证过程如下:我们执行kvsWebrtcClientMaster,后参数可以加 数据通道名称,不加默认为...

2021-02-24 15:05:57 1517 1

原创 Mongoose之开源web服务器

1、Mongoose介绍Mongoose 是一款嵌入式 web服务器。使用C语言编写,它可以很容易的嵌入到其他平台或是程序中,并为其提供了web接口。它为客户端和服务器模式实现TCP,UDP,HTTP,WebSocket,CoAP,MQTT的事件驱动的非阻塞API。内置协议:· 普通TCP,普通UDP,SSL / TLS(单向或双向),客户端和服务器· HTTP客户端和服务器· WebSocket客户端和服务器· MQTT客户端和服务器· CoAP客户端和服务器· DNS客户端和服务器

2021-02-19 17:56:11 1551

原创 linux 下的lsb_release -a 命令查询系统版本

先安装lsb命令是yum install lsb1、lsb_release -a 查看系统版本[root@localhost bin]# lsb_release -aLSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printin...

2021-02-03 10:33:05 2328 1

原创 AWS KVS(Kinesis Video Streams)之WebRTC依赖项

 KVS WebRTC依赖于openssl、srtp、usrsctp、kvspic。我们挨个来编译,如果我们需要往嵌入式设备中移植,需要移植这些依赖项,因此在编译移植前,我们需要得到源码。 先下载所有代码(我使用了镜像加速),其实都是github:OpenSSL:git clone https://github.com.cnpmjs.org/openssl/openssl.git -b OpenSSL_1_1_1glibsrtp:git clone https://git.

2021-02-02 15:12:16 815

原创 AWS KVS(Kinesis Video Streams)之WebRTC的C库

C 中适用于嵌入式设备的 WebRTC 开发工具包如下步骤是下载和编译SDK:备注:github如果在自己本地下载比较慢,因此我申请了一个美国地区的AWS的EC2(Centos系统),我在此EC2上安装相应的工具后操作,特别快;0、准备工作(1)安装git :sudo yum install git$ git --versiongit version 2.23.3(2)安装Cmake :sudo yum install cmake$ cmake --versioncm.

2021-02-02 14:47:45 1611 5

原创 AWS KVS(Kinesis Video Streams)之WebRTC

STUN 、TURN 和ICE如何工作 (两个端点交互流程):我们假设两个对等方A和B都使用WebRTC对等双向媒体流(例如,视频聊天应用程序)的情况。要连接到B的应用程序,A的应用程序必须生成SDP offer。SDP offer包含有关A的应用程序想要建立的会话的信息,包括要使用的编解码器,这是音频还是视频会话等。它还包含 ICE candidates,它们B应用程序用于尝试连接A应用程序需要用到的A的IP和port。为了建立ICE候选者列表,A的应用程序向STUN服务器发出了一系列请求。服务器返

2021-01-22 16:02:11 2320 5

原创 CoAP之客户端Copper插件安装(三)

因为火狐浏览器56版本之后不再支持Copper插件,因此我们无法直接在新版本的火狐浏览器中安装Copper插件,但是想要方便使用Copper调试Coap协议,那么我们可以在Chrome 浏览器 安装 Copper 插件,如下流程很简单,也有效;1、下载Copper4Cr 工具git clone https://github.com/mkovatsc/Copper4Cr.git运行该文件夹下的install.bat;2、安装Copper插件在浏览器地址栏输入“chrome://exte

2021-01-08 16:58:03 1479

原创 CoAP之Linux服务器上安装及使用(二)

1、下载libcoap源码https://github.com/obgm/libcoap/tree/release-4.2.02、安装步骤./autogen.shmkdir Linux./configure --prefix=$(pwd)/ISVP_lib --disable-dtls执行如上操作时会有下列问题:checking for dot... noconfigure: WARNING: ==> dot not found - continuing wit...

2021-01-08 16:33:53 876

原创 CoAP协议之初探(一)

CoAP 是一个基于 REST 模型的网络传输协议。主要用于轻量级 M2M 通信。由于物联网中的很多设备都是资源受限型的,即只有少量的内存空间和有限的计算能力,所以传统的 HTTP 协议应用在物联网上就显得过于庞大而不适用,CoAP 应运而生。本文介绍物联网平台支持的CoAP协议规范;1.概念支持 RFC 7252 Constrained Application Protocol协议,更多信息,请参见RFC 72522.协议内容CoAP是一个完整的二进制应用层协议,消息格式紧凑,默认运行

2021-01-08 15:08:30 547

原创 【交叉编译四】libzbar 二维码识别库

1.将zbar源码移植到linux arm or mips架构设备上。(君正平台)2.打开摄像头并运行zbar算法进行二维码识别。源码:wgethttp://downloads.sourceforge.net/project/zbar/zbar/0.10/zbar-0.10.tar.gz解压后执行:./configure --prefix=$(pwd)/ISVP_lib --enable-shared --enable-static --without-imagemagick --wit.

2020-12-18 15:29:48 956 3

原创 【交叉编译三】nghttp2编译

nghttp2 是一个用 C 实现的 HTTP/2 库,支持 h2c。如下是君正平台的交叉编译内容。1、下载源码:https://github.com/nghttp2/nghttp2 git clone https://github.com/nghttp2/nghttp2.git2、执行如下结果cd nghttp2autoreconf -i但是报错如下:主要原因是 没有配置正确aclocal的库LIBTOOL.m4的路径main::scan_file() call...

2020-12-16 14:18:54 2157

原创 使用dlopen动态链接库的一个问题

当我们采用异步事件驱动模型,保证主程序逻辑不变,将各个业务用动态链接库的形式加载进来,这就是所谓的插件。linux和Windows提供了加载和处理动态链接库的系统调用,非常方便。该文章记录一个在使用过程中的问题。1、LinuxLinux提供了一套API来动态装载库:dlopen,打开一个动态库,并为使用该库做些准备。dlsym,在打开的库中查找符号的值。dlclose,关闭库。dlerror,返回一个描述最后一次调用dlopen、dlsym,或dlclose的错误信息的字符串。

2020-12-16 13:53:08 1501 1

原创 【交叉编译一】CMake编译选项

1、常用的CMake选项具体含义如下:PROJECT(目标名称)ADD_DEFINITIONS(-g) 添加了之后,就相当于在编译的时候加上了-g选项ADD_DEFINITIONS(-Os) 添加了之后,就相当于在编译的时候加上了 -Os选项ADD_DEFINITIONS(-D DEBUG_WARN) 将在gcc命令行添加DEBUG_WARN宏定义SET(CMAKE_CXX_FLAGS "") 编译器选项设置SET(CMAKE_...

2020-12-10 10:04:05 3354

超好用三个Redis数据库客户端工具.rar

在查看redis数据库时,除了在服务端使用命令行查看,但是RedisDesktopManager等等工具是很好的redis数据库查看工具,使用简单,而且无需安装

2019-06-17

获取文件md5值的超实用方便的工具.rar

该工具简单易操作,很容易得到一个文件的md5值,对文件进行校验。

2019-06-17

SRTP加密解密过程

RTP数据包,将负载数据经过AES加密后加密后,在进行加密传输时,对方只要知道秘钥即可对加密数据解密

2018-06-05

linux-4.11.4.tar.gz内核源码

Linux内核源码,Linux系统中运用到很多的算法,机制,这些方法在平时处理问题时很好的借鉴。

2018-05-30

libwebsockets-2.3-stable

提供含带CMake编译的开源WebSocket的C库,libwebsockets是一款用来开发服务器和客户端的库

2018-05-25

将H264与AAC打包Ipad可播放的TS流的总结

将H264与AAC打包Ipad可播放的TS流的总结,如何将裸的音视频打包成TS

2018-01-13

GCC算法详解

在网络传输过程,尤其是实时流,拥塞控制会导致音视频的质量,如何解决这样的问题,GCC算法是根据网络实际的带宽来实现码率自适应

2018-01-13

jrtplib编译

文档描述了在linux中编译jrtplib的具体方法,以及会在编译过程遇到的问题

2017-11-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除