WebRTC调研

发布于:2025-06-10 ⋅ 阅读:(28) ⋅ 点赞:(0)

WebRTC是什么,为什么,如何使用

在这里插入图片描述

在这里插入图片描述

WebRTC有什么优势

在这里插入图片描述

WebRTC Architecture

在这里插入图片描述

在这里插入图片描述

Amazon KVS WebRTC

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

其它厂商WebRTC

海康门禁WebRTC

在这里插入图片描述

在这里插入图片描述

海康门禁其他界面整理

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

威视通WebRTC

局域网

Google浏览器

在这里插入图片描述

Microsoft Edge

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

公网

RTSP

RTMP

NVR

ONVIF

SIP

SRT

WebRTC协议栈的寻找

mongoose + kvs(amazon-kinesis-video-streams-webrtc-sdk-c)

局域网(Web端本地预览需要支持信令交互)

Web端:adapter.js,adapter.min.js,demo.css,jquery-3.0.0.min.js,index.html

设备端:信令服务器设备端web server实现,需要支持WebRTC信令交互(局域网)

STUN server:stun:stun.kinesisvideo.us-west-2.amazonaws.com:443

​ stun:stun.kinesisvideo.ap-east-1.amazonaws.com:443

公网(将信令服务器搭建在公网)

远程访问(米家,海康,TUTK,涂鸦)

信令服务器

PEERJS:https://peerjs.com/

Saltyrtc:https://github.com/saltyrtc

设备支持webrtc

1.音/视频流 不使用链表,使用共享内存(单生产者->多消费者,webrtc、webs、rtsp、rtmp、SIP、nvr、flv、http)

2.kvswebrtc协议栈(https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c),设备实现webrtc交互过程,实现信令交互服务

3.web/客户端/设备支持webrtc

4.信令服务器设计(局域网/互联网,STUN,TURN服务,ICE服务)

其他

编译libwebsocket

git clone https://github.com/warmcat/libwebsockets.git
cd libwebsockets/
git checkout v4.3.3
git apply --verbose --ignore-whitespace /root/amazon-kinesis-video-streams-webrtc-sdk-c/CMake/Dependencies/libwebsockets-old-gcc-fix-cast-cmakelists.patch

cmake -DCMAKE_C_COMPILER=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-gcc -DCMAKE_CXX_COMPILER=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-g++ -DCMAKE_INSTALL_PREFIX=$PWD/install -DCMAKE_C_FLAGS="-fPIC" -DLWS_WITH_HTTP2=1 -DLWS_HAVE_HMAC_CTX_new=1 -DLWS_HAVE_SSL_EXTRA_CHAIN_CERTS=1 -DLWS_HAVE_OPENSSL_ECDH_H=1 -DLWS_HAVE_EVP_MD_CTX_free=1 -DLWS_WITHOUT_SERVER=1 -DLWS_WITHOUT_TESTAPPS=1 -DLWS_WITHOUT_TEST_SERVER_EXTPOLL=1 -DLWS_WITHOUT_TEST_PING=1 -DLWS_WITHOUT_TEST_CLIENT=1 -DLWS_STATIC_PIC=1 -DLWS_WITH_STATIC=1 -DLWS_WITH_SHARED=0 -DLWS_WITH_MBEDTLS=OFF -DLWS_WITH_MINIMAL_EXAMPLES=1 -DLWS_HAVE_PTHREAD_H=1 -DLWS_WITH_THREADPOOL=0 -DLWS_WITH_ZLIB=0 -DLWS_HAVE_EVENTFD=0 -DLWS_OPENSSL_INCLUDE_DIRS="/root/temp/arm_build/openssl/include/" -DLWS_OPENSSL_LIBRARIES="/root/temp/arm_build/openssl/lib/libssl.so;/root/temp/arm_build/openssl/lib/libcrypto.so" ..
make
make install

编译kvswebrtc

安装库
sudo apt-get install cmake m4 pkg-config libssl-dev libcurl4-openssl-dev liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools 

git clone --recursive https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c.git
mkdir -p amazon-kinesis-video-streams-webrtc-sdk-c/build; cd amazon-kinesis-video-streams-webrtc-sdk-c/build; cmake ..
make

kvswebrtc运行实例

export AWS_ACCESS_KEY_ID=AKIAZIIT3K7LWLLXU3UH
export AWS_SECRET_ACCESS_KEY=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
export AWS_KVS_LOG_LEVEL=LOG_LEVEL_DEBUG
export DEBUG_LOG_SDP=TRUE
export AWS_DEFAULT_REGION=us-east-1

./kvsWebrtcClientMasterGstSample demo-webrtc-channel

./kvsWebrtcClientMaster demo-webrtc-channel

参考链接

https://webrtc.github.io/webrtc-org/architecture/

参考文档

amazon-kvs.pdf

amazon-kvs-builds-the-visual-ecology-of-Iot.pdf