WebRTC开发者社区为开发者提供最新最全的WebRTC资料
目录
  • 首页
  • WebRTC概念与基础
  • WebRTC项目与应用
  • WebRTC教程资料
  • WebRTC开发资源
  • WebRTC源码分析
  • WebRTC服务端开发
  • WebRTC网络与通信
  • WebRTC编码与解码
  • WebRTC问题与缺陷
  • WebRTC-Androd端开发
  • WebRTC-RFC文档

WebRTC VideoEngine综合应用示例(三)——集成X264编码和ffmpeg解码

2019-12-25 06:07:26

总述
在前一篇文章中,讲解了如何将OPENH264编解码器集成到WebRTC中,但是OPENH264只能编码baseline的H264视频,而且就编码质量而言,还是X264最好,本文就来讲解一下如何将X264编码器集成到WebRTC中,为了实现解码,同时要用到ffmpeg。总体流程和之前一样,分为重新封装编解码器和注册调用两大步骤,注册调用这一步没有任何不同,主要是重新封装这一步骤有较大区别。

重新封装X264编码功能
首先当然还是要下载X264源码编译出相应的库以供调用。在windows下使用mingw进行编译,再使用poxports工具导出库,最后得到libx264.dll和libx264.lib,同时把x264.h和x264_config.h总共四个文件放到工程目录下,并在项目属性中进行相应配置。

 

More...

WebRTC VideoEngine综合应用示例(二)——集成OPENH264编解码器

2019-12-25 06:06:44

总述
WebRTC原生支持VP8和VP9,但也可以自行集成H264编解码器,比较常见的是OPENH264和X264(X264自身只有编码功能,如果要加入解码功能,可以再结合ffmpeg),总体来说,集成H264编解码器的流程和直接使用它们的库的流程类似,但是要先将相应功能依照WebRTC中对编解码器的封装形式重新封装,然后再通过注册外部编解码器的方法在主流程中使用它们。

下面先看一下WebRTC对编解码器的封装形式是怎么样的,定义在webrtc\modules\video_coding\codecs\interface\video_codec_interface.h中,如下

 

More...

WebRTC VideoEngine综合应用示例(一)——视频通话的基本流程

2019-12-25 06:05:52

WebRTC技术的出现改变了传统即时通信的现状,它是一套开源的旨在建立浏览器端对端的通信标准的技术,支持浏览器平台,使用P2P架构。WebRTC所采用的技术都是当前VoIP先进的技术,如内部所采用的音频引擎是Google收购知名GIPS公司获得的核心技术:视频编解码则采用了VP8。

大家都说WebRTC好,是未来的趋势,但是不得不说这个开源项目对新手学习实在是太不友好,光是windows平台下的编译就能耗费整整一天的精力,还未必能成功,关于这个问题在我之前的文章中有所描述。编译成功之后打开一看,整个solution里面有215个项目,绝对让人当时就懵了,而且最重要的是,google方面似乎没给出什么有用的文档供人参考,网络上有关的资料也多是有关于web端开发的,和Native API开发有关的内容少之又少,于是我决定把自己这两天学习VideoEngine的成果分享出来,供大家参考,有什么问题也欢迎大家指出,一起学习一起进步。

首先需要说明的是,webrtc项目的all.sln下有一个vie_auto_test项目,里面包含了一些针对VideoEngine的测试程序,我这里的demo就是基于此修改得到的。

 

More...

H264 in WebRTC的那些坑

2019-12-25 06:03:58

WebRTC 自誕生之日起, 就代表了實時通訊領域的最好的技術. 不過很長時間裡, 它所支援的視訊編碼器只有VP8, 後來隨著H265/VP9為代表的下一代視訊編碼器的誕生, WebRTC裡出現了VP9 Codec. 而當前應用最廣泛的H264 卻一直不受待見. 一直到Cisco 宣佈旗下的H264 Codec開源為OpenH264, 並且替所有OpenH264的使用者支付了H264的專利費, 以次為契機, 在IETF的WebRTC會議中, 把H264和VP8都列入了WebRTC所必需要支援的視訊編碼器。 接下來, Google終於在WebRTC中增加了對H264的支援, 在PC平臺(Windows和MAC), 編碼器是用OpenH264, 解碼器是用FFMPEG, 在iOS平臺上, 編碼器和解碼器既可以使用OpenH264和FFMPEG, 也可以用apple的VideoToolbox所支援的硬體編解碼器. 在Android平臺, 可以用 OpenH264, FFMPGE, 也可以用 MediaCodec. 這個對於廣大需要H264的公司來說是一大福音. 在下載的WebRTC程式碼中做稍許配置, 就可以使用H264了. 

 

More...

基于webrtc的多对多聊天(SkyRTC)

2019-12-24 14:27:11

一、基本介绍

  1. 开源项目地址
    作者项目集合地址:https://github.com/LingyuCoder
    服务端项目地址:https://github.com/LingyuCoder/SkyRTC
    客户端项目地址:https://github.com/LingyuCoder/SkyRTC-client
    demo项目(本文中应用的)地址:https://github.com/LingyuCoder/SkyRTC-demo
  2. 项目技术特点
    这是一个使用SkyRTC和SkyRTC-client搭建浏览器中音频、视频、文字聊天室的Demo
 

More...

WebRTC-多人视频聊天流程

2019-12-24 14:26:06

最近在做WebRTC相关的移动端视频会议,看了一下相关文档和一些Demo,总结一下构建webRtc应用流程。

相关文档连接:

 1.一篇不错的中文文档,好像网上好多demo都是基于这个的http://segmentfault.com/a/1190000000439103

 2.htmlRock里也有一些Sample,http://www.html5rocks.com/en/tutorials/webrtc/basics/

 通过这2篇文档的学习,基本就差不多了解了相关内容

 

More...

 基于webrtc的一对多音视频通讯

2019-12-24 14:25:18

本次实验使用windows平台,其他平台如html5、android、ios、linux、mac等思路大同小异,上一篇文章已经提及,在此不再赘述。

  • 在此唯一对初学者的劝告是:多看实例,尤其是官方的实例:https://github.com/webrtc/samples
  • webrtc更倾向于html5中调用peerconnect,别说你看不懂html和javascript,那个可比c++简单多了,呵呵!
  • 本实例思路来源于:https://webrtc.github.io/samples/src/content/peerconnection/multiple/,
  • 代码处处:https://github.com/webrtc/samples/tree/master/src/content/peerconnection/multiple
 

More...

webrtc P2P之turn协议介绍

2019-12-20 06:21:39

TURN简介

TURN的全称为Traversal Using Relays around NAT,是STUN/RFC5389的一个拓展,主要添加了Relay功能。如果终端在NAT之后,那么在特定的情景下,有可能使得终端无法和其对等端(peer)进行直接的通信,这时就需要公网的服务器作为一个中继, 对来往的数据进行转发。这个转发的协议就被定义为TURN。TURN和其他中继协议的不同之处在于,它允许客户端使用同一个中继地址(relay address)与多个不同的peer进行通信。

使用TURN协议的客户端必须能够通过中继地址和对等端进行通讯,并且能够得知每个peer的的IP地址和端口(确切地说,应该是peer的服务器反射地址)。而这些行为如何完成,是不在TURN协议范围之内的。其中一个可用的方式是客户端通过email来告知对等端信息,另一种方式是客户端使用一些指定的协议,如“introduction” 或 “rendezvous”,详见RFC5128

如果TURN使用于ICE协议中,relay地址会作为一个候选,由ICE在多个候选中进行评估,选取最合适的通讯地址。一般来说中继的优先级都是最低的。TURN协议被设计为ICE协议(Interactive Connectivity Establishment)的一部分,而且也强烈建议用户在他们的程序里使用ICE,但是也可以独立于ICE的运行。值得一提的是,TURN协议本身是STUN的一个拓展,因此绝大部分TURN报文都是STUN类型的,作为STUN的一个拓展,TURN增加了新的方法(method)和属性(attribute)。

 

More...

基于RTMP和WebRTC开发大规模低延迟(1000毫秒内)直播系统

2019-12-19 10:11:41

随着移动设备大规模的普及以及流量的资费越来越便宜, 超低延迟的场景越来越多. 从去年到今年火过的场景就有在线娃娃机, 直播答题, 在线K歌等. 但要做到音视频的超低延迟确是很不容易, 编码延迟, 网络丢包, 网络抖动, 多节点relay,视频分段传输,播放端缓存等等都会带来延迟.

WebRTC兴起提供的方案以及遇到的问题

WebRTC技术的兴起为低延迟音视频传输带来了解决方案, 但WebRTC是为端到端设计的, 适合的场景是小规模内的实时互动, 例如视频会议, 连麦场景. 即使加入了SFU Media server作为转发服务器, 也很难做到大规模的分发. 另外一个需要考量的是流量成本, WebRTC的实时流量是通过UDP传输的(某些情况下可以用TCP), 无法复用在传统CDN的架构之上, 实时的流量价格更是CDN流量的3倍以上, 部署一个超低延迟的直播网络成本非常高.

RTMP系统推流播放延迟分析

一个经过优化的RTMP-CDN网络端到端的延迟大概在2-3秒, 延迟大一些要在5秒甚至10秒以上. 从推流到播放, 会引入延迟的环节有编码延迟, 网络丢包和网络抖动, 视频的分段传输, 多媒体节点的relay, 播放器的缓存等等. 实际上除了网络丢包和网络抖动不太可控之外, 其他的各各环节都有一定的优化方案, 比如使用x264的-preset ultrafast和zerolatency, 可以降低编码的延迟,
分段传输部分可以把GOP减少到1秒之内, 在播放器端可以适当减小buffer, 并设置一定的追帧策略, 防止过大的buffer引起的时延.

低成本的低延迟的实现

 

More...

WebRTC 及点对点网络通信机制

2019-12-19 10:10:57

何为 WebRTC ?首先,字面上已经给出了关于这一技术的大量信息,RTC 即为实时通信技术。

WebRTC 填补了网页开发平台中的一个重要空白。在以往,只有诸如桌面聊天程序这样的 P2P 技术才能够实现实时通讯而网页不行。但是 WebRTC 的出现改变了这一状况。

WebRTC 本质上允许网页程序创建点对点通信,我们将会在随后的章节中进行介绍。我们将讨论如下主题,以便向开发者全面介绍 WebRTC 的内部构造:

  • 点对点通信
  • 防火墙和 NAT 穿透
  • 信令,会话及协议
  • WebRTC 接口

点对点通信

每个用户的网页浏览器必须按照如下步骤以实现通过网页浏览器进行的点对点通信:

  • 同意开始进行通信
  • 知道如何定位另一个点
  • 绕过安全和防火墙限制
  • 实时传输所有多媒体通信信息
 

More...

last
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
next
  • 分类目录

    • WebRTC概念与基础 (228)
    • WebRTC项目与应用 (33)
    • WebRTC教程资料 (38)
    • WebRTC开发资源 (13)
    • WebRTC源码分析 (14)
    • WebRTC服务端开发 (23)
    • WebRTC网络与通信 (26)
    • WebRTC编码与解码 (15)
    • WebRTC问题与缺陷 (2)
    • WebRTC-Androd端开发 (2)
    • WebRTC-RFC文档 (1)
  • 最新文章

    • WebRTC研究:WebRTC M89关键更新
    • WebRTC Native 源码导读(十五):RTP H.264 封装与解封装
    • 提纲挈领webrtc之vad检测
    • Medooze RTP录制为MP4 源码解析 
    • audio语音相关的基础知识-VAD,ASR,AEC,AGC,BF等
    • 音视频相关的书籍,多媒体技术
    • SFU级联解决方案——Jitsi
    • SFU级联解决方案——Licode
    • Janus源码分析(6)——Streaming分析
    • janus Streaming插件推流指南
    • 流媒体服务器 
    • WebRTC+libwebsockets+Janus的秒开实践
    • 基于WebRTC的直播CDN
    • 不需要SFU实现WebRTC联播实践  
    • webrtc 开启Simulcast功能
    • Migrating your native/mobile application to Unified Plan/WebRTC 1.0 API
    • WebRTC源码分析rfc4588 RTP重传有效载荷格式
    • WebRTC网关服务器搭建:开源技术 vs 自行研发
    • WebRTC网关服务器搭建:开源技术 vs 自行研发
    • 自研WebRTC网关服务器架构的实践之路
    • WEBRTC三种类型(Mesh、MCU 和 SFU)的多方通信架构  
    • janus的videoroom插件
    • WebRTC+libwebsockets+Janus的秒开实践
    • Janus源码分析(7)——videoroom分析
    • Janus源码分析(5)——echotest分析
    • Janus源码分析(4)——信令交互过程
    • WebRTC+libwebsockets+Janus的秒开实践
    • 前向纠错码(FEC)的RTP荷载格式
    • WebRTC 开发实践:从一对一通话到多人会议
    • Distord如何使用WebRTC处理250万用户同时进行的音频交流
  • 链接

    • WebRTC官网
    • xSky 实验室
    • 树莓派技术圈
    • 声网 Agora
    • WebRTC中文网
    • web性能权威指南
    • WebRTC官网
    • webrtc在线源码
    • webrtc在线源码
    • webrtc
    • webrtc示例
    • LiveVideoStack
    • 雷霄骅(leixiaohua1020)的专栏
  • 开源项目


Powered By xblog Copyright 0xsky.com All Rights Reserved.

Copyright WebRTC.ren All Rights Reserved.