
视频直播技术
文章平均质量分 86
大飞飞鱼
做自己喜欢的事情,任凭别人去说吧
展开
-
WebRTC 之 DTLS 技术解析
DTLS(Datagram Transport Layer Security) 提供了 UDP 传输场景下的安全机制,能防止窃听、篡改、冒充等问题。在 WebRTC中使用 DTLS 的地方包括两部分:Datachannel 数据通道。在 Datachannel 数据通道中,WebRTC 完全使用 DTLS 来进行协商和加解密MediaChannel 媒体通道。在媒体通道中 WebRTC 使用 SRTP 来进行数据的加解密,DTLS 的作用仅仅是用来做密钥交换,RTP/RTCP 的数据为了与历史原创 2021-12-26 00:46:21 · 1661 阅读 · 0 评论 -
H264 NALU说明
在H.264/AVC视频编码标准中,编码的数据流(位流)由连个层面组成:视频编码层面(VCL)和网络抽象层面(NAL)。H264编码产生的结果(位流)首先为视频编码层(VCL),为了便于网络传输与存储,需要将编码层的VCL数据再打包成NAL(全称Network Abstract Layer),即网络抽象层。其中,前者负责有效表示视频数据的内容,而后者则负责格式化数据并提供头信息,以保证数据适合各种信道和存储介质上的传输。做流媒体研发的工作只需要关心NAL层,不一定需要掌握VCL层数据。一个NAL.原创 2021-08-29 12:20:30 · 2511 阅读 · 0 评论 -
开源免费Webrtc转发服务器Mediasoup的概念解释与基本介绍(一)
用于Webrtc的媒体流转发服务器不计其数,开源与免费的也不计其数,有基于C++开发的,有基于Java开发的,有基于Go开发的,但以笔者的实践经验,mediasoup是性能最好的转发服务器。Mediasoup其实是一个框架,其应用层开发语言为javascript,必须依赖于Nodejs来执行,但其媒体转发模块(Worker)却是用C++开发,而且这个转发模块的网络I/O底层库为Libuv,Libuv是一个目前最优秀的网络I/O库,笔者用它开发了好几款应用,都表现得极其高的性能,所以笔者以为Wo...原创 2021-08-27 19:27:00 · 1768 阅读 · 0 评论 -
Webrtc 信令交换过程
开发Webrtc程序,首先需要知道其连接的建立过程,现记录如下:1、A向服务器发出init请求2、服务器将A的init请求转发给连接上服务器的其他端3、B收到init请求后,调用peerConnection.createOffer()方法创建一个包含SDP的offer信令4、offer信令创建成功后会调用SdpObserver监听中的onCreateSuccess()响应函数在此处B通过peerConnection.setLocalDescription()方法将SDP赋予自己的Peer原创 2021-08-27 16:33:18 · 1239 阅读 · 0 评论 -
Android视频采集与处理
Android中很多基本的架构都是C/S层架构,客户端提供调用接口,而实现工作则是在服务端完成。Android Camera的架构也是C/S架构,Client进程虽然不曾拥有任何实质的Camera数据,但是service端为它提供了丰富的接口,它可以轻松的获得Camera数据的地址,然后处理这些数据。两者通过Binder进行通讯。在Android中调用摄像头需要相应的权限,需要注意的是:权限申请在Android 6.0后变成了动态申请。在本项目中使用了Camera1相关的API对摄像头进行调用,所以对Ca原创 2021-08-23 01:45:29 · 1547 阅读 · 0 评论 -
Android Media API 使用介绍
从事多媒体开发的同学,在对Android 系统开发时,Android系统已经给我们提供了对视音频的强大支持,本文介绍Android的几个和视音频相关的类,通过这几个类的组合使用,其实是能变换出许多视音频处理的相关功能,下面就对这几个类进行简单介绍。MediaMetadataRetriever:用来获取视频的相关信息,例如视频宽高、时长、旋转角度、码率等等。MediaExtractor::视音频分离器,将一些格式的视频分离出视频轨道和音频轨道。MediaCodec:视音频相应的编解码类。MediaMu原创 2021-08-23 01:14:57 · 1280 阅读 · 0 评论 -
RTP/RTCP协议之RTCP协议详解
RTCP概要实时传输控制协议(Real-timeControlProtocol,RTCP)与RTP共同定义在1996年提出的RFC 1889中,是和 RTP一起工作的控制协议。RTCP单独运行在低层协议上,由低层协议提供数据与控制包的复用。在RTP会话期间,每个会话参与者周期性地向所有其他参与者发送RTCP控制信息包,如下图所示。对于RTP会话或者广播,通常使用单个多目标广播地址,属于这个会话的所有RTP和RTCP信息包都使用这个多目标广播地址,通过使用不同的端口号可把RTP信息包和RTCP信息..原创 2021-04-14 09:27:59 · 1486 阅读 · 0 评论 -
如何基于WebRTC搭建一个简单的视频会议
前言WebRTC,它是由谷歌推广的实时音视频技术栈,是音视频领域搜索热度最高的技术。它有多重身份,既是W3C的标准,也是一个开源项目,还有一个对应的IETF工作组(RTCWEB)。在WebRTC出现之前,音视频通信是高不可攀的领域,需要大量的专业积累才能入门,而现在,越来越多的开发者通过WebRTC来深入了解RTC技术。WebRTC技术的本质是构建点对点的实时通信,目前主流的浏览器,包括Chrome, Firefox, Edge等,天然就支持WebRTC协议。对入门开发者来说,选用这几款浏览器,连.原创 2021-04-10 22:34:39 · 2703 阅读 · 0 评论 -
当前开源WebRTC项目技术选型
本文介绍了各个开源的视频会议系统的主要特点,用于帮助初次开发视频会议的同学选型参考。对SFU流媒体服务器的选择,没有最好,只有最合适。每个开源实现都有其各自的特点,都可以应用到实际产品中,只不过作为开发人员都有自己独特的技术背景,你需要根据自身特点以及项目特点选一个最合适的。原创 2021-04-10 22:17:47 · 4991 阅读 · 2 评论 -
如何实现低延时直播——支持多终端H5播放的超低延时直播解决方案纪要
笔者在互联网公司从事视频通信工作多年,从MPEG-1、MPEG-2到MPEG-4,再到今天的H264/AVC、H265/HEVC流行时代,研发了几代产品,虽然在每个阶段一直能满足用户的需求,但随着宽带的普及,4G、5G的飞速发展,视频通信行业的需求从以前追求视频清晰度的提高到现在转变为追求视频传输的实时性的需求了,尤其是云游戏行业,更是要求视频实时性在端到端延时低于200ms(毫秒),因此研发视频通信系统就越发艰巨了。笔者在这里就研发现代低延时视频通信系统所走的曲折弯路做一下记录。 ...原创 2021-03-29 01:30:43 · 1786 阅读 · 1 评论 -
RTMP 推流认证的 adobe 用户认证原理与过程介绍
Adobe的FMS服务器支持推流时用户名+密码认证,这样保证了推流的安全性。由于Adobe的推流认证的方法与过程在Adobe公开的RTMP协议说明文档里没有,只能根据逆向工程分析它的过程。FMS支持两种推流认证,即adobe与llnw。本人对adobe方式进行了分析记录如下:一、用户帐号产生方法:Adobe FMS启用了认证以后,在FMS的安装目录的conf字幕里里会多出一个users.exe程序,用于产生用户数据库, users.dat文件为用户数据库文件。用users.exe程序添加一个原创 2020-08-18 12:17:25 · 1138 阅读 · 1 评论 -
Webrtc 中的SDP协议字段解释
SDP(Session Description Protocol)会话描述协议,是一种会话描述格式,不是传输协议(例如RTP,RSTP是传输协议),SDP协议是也是基于文本的协议。SDP很早就用于流媒体中来描述媒体信息,例如RTSP的SDP文件,现在的WebRTC也是用SDP来描述媒体信息的。在WebRTC中,SDP主要用来描述:•设备支持的媒体能力,包括编解码器等•ICE候选地址•流媒体传输协议SDP协议基于文本,格式非常简单,可扩展性比较强。它由多个行组成,每一行都为键值格式<类型&原创 2020-07-29 09:19:33 · 922 阅读 · 0 评论 -
windows 下用开源流媒体压力测试工具 rtmpstress 测试RTMP媒体服务器负载性能
最近笔者的朋友需要部署流媒体服务作运营,从国外购买了几套流媒体服务器软件,该流媒体服务器软件是基于java开发的,他向笔者咨询,如何检测该流媒体服务器软件是否能支持1000以上并发,笔者建议找一个RTMP压力测试工具测试一下即可,但找了半天,没有找到合适的压力测试工具,也有一个st-load 测试工具,但可惜是Linux下才能运行,对测试人员的要求比较高,派不上用场。无奈,笔者只好...原创 2020-01-10 20:42:45 · 4803 阅读 · 3 评论 -
视频编解码中的颜色空间YUV、RGB概念的简单解释
在视频编解码中,经常看到YUV与RGB的字眼,如果不理解,那么就很难进一步学习视频编码算法。一、RGB颜色空间 先说一下RGB,R表示红,G表示绿,B表示蓝,这是最基本的三原色的表示方法,任何颜色都可以通过这三原色按不同比例混合出来,电脑的VGA显示器就是用这种颜色来表示的,我们用Windows系统的GDI函数操作显示器的像素的函数例如:SetTextColor就是用的这种颜...原创 2019-10-31 16:24:48 · 4251 阅读 · 0 评论 -
Windows 10 下的高效抓屏方法
概述 很多软件都需要屏幕捕捉功能,在软件中实现屏幕捕捉也不是难事,在微软Windows平台,有很多截屏的方法,例如:BitBlt、Mirror driver、 GDI hook、DirectX、DWM/Dxgi hook、Desktop Duplication与GetWindowDC 等方法,但大多效率不高,效率高的 Mirror driver技术只能用于XP等老系统,在Windows8 与...原创 2019-10-22 00:24:37 · 6671 阅读 · 9 评论 -
RTMP 协议包头参考
为了方便查阅,把RTMP协议的包头记录下来,以便参考:RTMP协议在握手完成以后,服务器与客户端通过包(chunk)来进行信令交换。包(thunk)格式如下每个包有包头与数据组成。而包头自身是由三部分组成: 包头可以是4种长度的任意一种:12, 8, 4, 1 byte(s).完整的RTMP包头应该是12bytes,包含了时间戳,AMFSize,AMFType,Stre...原创 2019-10-15 01:21:00 · 274 阅读 · 0 评论 -
搭建免费网络直播系统
随着移动互联网的普及与网络直播的火爆,现在人人都能做网络直播,做网络直播可以采用手机APP做直播,也可以采用PC端的软件来做直播。由于手机APP通常是平台绑定的,因此用手机做直播只能在该APP绑定的平台进行发布,无法搭建自己的网络直播平台。在此笔者仅以如何搭建自己的直播平台的思路来发表意见。笔者从事网络直播已经5年多了,从2011年开始,笔者就一直从事网络直播平台的维护,期间积累了些许粗浅的经...原创 2016-09-02 19:03:28 · 28049 阅读 · 2 评论 -
Webrtc 开源代码的简单介绍
WebRTC提供了视频会议的核心技术,包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台:windows,linux,mac,android, iOS等。Webrtc 是多媒体通信技术的未来趋势,Google为了成为标准的主导者,将Chrome浏览器里的Webrtc实现代码开源了,浏览器的开源的WebRTC是众多同仁学习研究的重要资源,这个开源实现中的任何的一个技术点都...原创 2018-04-14 16:38:53 · 1396 阅读 · 0 评论 -
Webrtc 多人视频会议系统 服务器 Licode 介绍
WebRTC又称 web实时通信,主要是为了扩展浏览器的功能,使浏览器能够进行实时音视频通信,不同的浏览器对Webrtc的实现代码也许不同,但Google的浏览器将Webrtc的实现代码开源了,以至于很多人一听到Webrtc就联想到Google的开源实现,以至于误以为使用Webrtc就非常难,因为Webrtc的实现都是C/C++代码,让很多人望而生畏。其实我们只需要懂得浏览器端的Ja...原创 2018-04-14 16:02:07 · 8526 阅读 · 0 评论 -
免费直播编码软件应用技巧
本文对一款免费直播编码软件进行了介绍,主要介绍了如何自己搭建直播系统,视频直播编码系统的软件与硬件环境,尤其是采集卡的选择,对初学者朋友或许有益,因此在这里转发这篇博文。转载 2016-11-11 23:38:55 · 4118 阅读 · 0 评论 -
会议如何进行网络直播
如果举办一场会议现场网络直播,本文给出了做网络直播服务的条件以及如何选择直播服务商,选择正确的直播服务商一般能够事半功倍。原创 2016-09-08 22:44:04 · 6346 阅读 · 0 评论