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