音视频流媒体开发
文章平均质量分 84
king_weng
当才华配不上野心时,就静下心来学习吧!
展开
-
开源流媒体SRS
一、SRS简介1、SRS简介 SRS定位是运营级的互联网直播服务器集群,追求更好的概念完整性和最简单实现的代码。SRS提供了丰富的接入方案将RTMP流接入SRS, 包括推送RTMP到SRS、推送RTSP/UDP/FLV到SRS、拉取流到SRS。 SRS还支持将接入的RTMP流进行各种变换,譬如将RTMP流转码、流截图、 转发给其他服务器、转封装成HTTP-FLV流、转封装成HLS、 转封装成HDS、转封装成DASH、录制成FLV/MP4。SRS包含支大规模集群如CDN业务的关键特性, 譬...转载 2021-03-22 14:48:00 · 1556 阅读 · 0 评论 -
实时通信之RTC
1、RTC简介 RTC(Real-time Communications),实时通信。泛指各种数据的实时传输,包括音频,视频,文本,图片等媒体和非媒体数据的实时传输。2、RTC 和 WebRTC 的区别 实时通信(RTC)最容易和 WebRTC 混淆,实际上,二者并不相等。一次RTC通信的简要流程如下图所示: RTC 从功能流程上来说,包含采集、编码、前后处理、传输、解码、缓冲、渲染等很多环节,上图展现了一次 RTC 通信的简要流程。每一个细分环...原创 2021-03-19 10:15:10 · 4023 阅读 · 0 评论 -
音频格式之AAC(高级音频编码技术)
1、简介 ACC(Advanced Audio Coding,高级音频编码)是杜比实验室为音乐社区提供的技术。,出现于1997年,基于MPEG-2的音频编码技术。2000年,MPEG-4标准出现后,AAC重新集成了其特性,加入了SBR技术和PS技术,为了区别于传统的MPEG-2 AAC又称为MPEG-4 AAC。 AAC号称「最大能容纳48通道的音轨,采样率达96 KHz,并且在320Kbps的数据速率下能为5.1声道音乐节目提供相当于ITU-R广播的品质」。和MP3比起来,...原创 2021-03-15 16:45:49 · 17909 阅读 · 0 评论 -
视频传输协议之MPEG-DASH
1、简介 DASH的全称是Dynamic Adaptive Streaming over HTTP。DASH是一种新的视频传输协议,由微软、苹果、Adobe等公司共同主导完成,该标准于2012年制定完成,是一种自适应码率的流媒体技术,其主要特点是视频切片和基于HTTP传输,可以利用现有的HTTP网络架构(专门的服务器和CDN等)传输流媒体。 MPEG-DASH(HTTP上的动态自适应流传输,ISO / IEC 23009-1)是由MPEG和ISO批准的独立于供应商的国际标准,...原创 2021-03-12 16:06:56 · 1989 阅读 · 0 评论 -
RTMP协议之AMF数据
一、RTMP组成1、RTMP包头 RTMP协议封包 由一个包头和一个包体组成,包头可以是4种长度的任意一种:12, 8, 4, 1 byte(s)。完整的RTMP包头应该是12bytes,包含了时间戳,Head_Type,AMFSize,AMFType,StreamID信息,,8字节的包头只纪录了时间戳,Head_Type,AMFSize,AMFType,,4个字节的包头记录了时间戳,Head_Type。1个字节的包头只记录了Head_Type 。包体最大长度默认为128字节,通过ch...原创 2021-03-12 16:04:04 · 1230 阅读 · 0 评论 -
视频编码之GOP
1、简介 GOP(Group of Pictures)策略影响编码质量,所谓GOP,意思是画面组,一个GOP就是一组连续的画面。GOP是序列中的一个图片集,用来辅助随机存取。GOP的第一个图像必须为I帧,这样就能保证GOP不需要参考其他图像,可以独立解码。2、MPEG MPEG编码将画面(即帧)分为I、P、B三种,I是内部编码帧,P是前向预测帧,B是双向内插帧。简单地讲,I帧是关键帧,可以理解为一个完整的画面,而P帧和B帧记录的是相对于I帧的变化,P帧表示跟前一帧的...原创 2021-03-11 09:36:26 · 3171 阅读 · 0 评论 -
国标GB28181入门
1、GB/T28181-2016由来 在GB28181协议处理之前,各个摄像头厂商都有各自的标准不能形成统一。因此公安部科技信息化局提出,由全国安全防范报警系统标准化技术委员会(SAC/TC100)归口,公安部一所等多家单位共同起草了一部国家标准,《公共安全视频监控联网系统信息传输、交换、控制技术要求》。 该标准规定了公共安全视频监控联网系统(以下简称联网系统)的互联结构,传输、交换,控制的基本要求和安全性要求,以及控制﹑传输流程和协议接口等技术要求。2、术语(...原创 2021-03-10 15:12:53 · 4782 阅读 · 1 评论 -
SIP一般用户代理行为
一、UAC(用户代理客户端)特性1、产生一个请求 一个合法的 SIP 请求必须至少包含如下头域:TO, FROM, Cseq, Call-ID, MaxForwards, Via;这些字段在所有 SIP 请求中必须包含。这 6 个字段是 SIP 消息的基本组成部分,他们提供了用于路由用的核心信息,包含了消息的地址,响应的路由,消息传递次数,详细的顺序,事务的唯一标志。这些头域字段是必须包含在请求行之后的,请求行包含了请求的方法,RequestURI,SIP 的版本号码。(1)Requ...原创 2021-03-09 11:20:51 · 892 阅读 · 0 评论 -
SIP协议消息
1、SIP消息 SIP 协议是一个基于文本的协议,使用 UTF-8 字符集(RFC2279[7])。一个 SIP 消息既可以是一个从客户端到服务器端的请求,也可以是一个从服务器端到客户端的一个应答。 消息类型都由一个起始行,一个或者多个包头域,一个可选的消息中文组成。 起始行、每一个包头行,空行、都必须由回车换行组成(CRLF)。即使消息正文没有,也必须有一个空行跟随。2、请求 SIP 请求是根据起始行中的 Request-Lin...原创 2021-03-09 11:14:32 · 2442 阅读 · 0 评论 -
SIP(会话发起协议)
1、简介 SIP(Session Initiation Protocol,会话初始协议)是由IETF(Internet Engineering Task Force,因特网工程任务组)制定的多媒体通信协议。它是一个应用层的信令控制协议。用于创建、修改和释放一个或多个参与者的会话。这些会话可以是Internet多媒体会议、IP电话或多媒体分发。会话的参与者可以通过组播(multicast)、网状单播(unicast)或两者的混合体进行通信。 SIP与负责语音质量的资源预留协议(...原创 2021-03-09 11:09:25 · 1973 阅读 · 0 评论 -
Onvif协议之服务端开发基本流程
1、onvif开发流程发现设备 ==》 获取能力 ==》 获取媒体信息 ==》 获取视频编码配置 ==》 设置视频编码配置 ==》 获取URI ==》 ONVIF完成 ==》 RTSP播放 ==》 解码2、原理 Onvif协议要求实现Onvif协议服务的设备支持设备发现以及探测,也就是discovery和probe。如,客户端向网段内的组播地址为239.255.255.250,端口为3702发送广播消息,等待网内Onvif协议设备响应。响应消息的设备会返回自己的IP、UUI...原创 2021-02-09 17:21:01 · 3362 阅读 · 0 评论 -
Onvif之代码框架生成
wsdl自动生成源代码可分为本地配置和在线配置。1、利用wsdl2h工具生成onvif.h文件 利用wsdl2h工具生成ovnif.h文件的过程如下图所示: 查看gsoap目录下的typemap.dat文件: 搭建ONVIF客户端代码框架,按照ONVIF Profile S标准需要支持下面所示的基本服务:功能模块 Wsdl文件地址 设备发现 https://www.onvif.org/ver10/n...原创 2021-02-09 17:16:44 · 1459 阅读 · 1 评论 -
Onvif协议之gSOAP工具
1、简介 gSOAP的编译器能够自动的将用户定义的本地化的C或C++数据类型转变为符合XML语法的数据结构,反之亦然。这样,只用一组简单的API就将用户从SOAP细节实现工作中解脱了出来,可以专注与应用程序逻辑的实现工作了。gSOAP编译器可以集成C/C++和Fortran代码(通过一个Fortran到C的接口),嵌入式系统,其他SOAP程序提供的实时软件的资源和信息;可以跨越多个操作系统,语言环境以及在防火墙后的不同组织。gSOAP一种跨平台的C和 C++软件开发工具包。生成C/C++...原创 2021-02-09 16:55:28 · 866 阅读 · 0 评论 -
ONVIF Conformance Test测试工具的使用
1、摄像头设置 一般摄像头中默认是没有开启onvif功能,需要我们配置并添加用户。配置==》网络==》高级配置==》集成协议==》勾选开启ONVIF 添加onvif用户,角色包括视频用户、操作员和管理员,后续用到的账号和密码即为此账号和密码。2、搜索并配置设备 配置完后就可用ONVIF Conformance Test测试工具来搜索设备。NIC选择可IPC同网段的网卡==》点击Discover Devices,搜索设备==》在搜索出的...原创 2021-02-08 17:05:03 · 1443 阅读 · 0 评论 -
AMF(Action Message Format)简介
1、AMF简介(1)简介 AMF(Action Message Format),即操作消息格式,基于http方式传输,是一种二进制的数据格式。主要用于数据交互和远程过程调用。它的设计是为了把actionscript里面的数据(包括Object, Array, Boolean, Number等)序列化成二进制数据,然后把这段数据随意发送给其他接收方程序,比如发给远程的服务器,在远程服务器那边,可以把这段数据给还原出来,以此达到一个数据传输的作用。(2)AMF0和AMF3的历史...原创 2021-02-04 11:37:38 · 2949 阅读 · 0 评论 -
Onvif协议快速入门
1、简介 ONVIF最初的名称来自Open Network Video Interface Forum(开放网络视频接口论坛)的首字母缩写。由于标准的范围扩展到视频应用程序之外,因此删除了(开放网络视频接口论坛)的名称。ONVIF网络视频协议的出现,解决了不同厂商之间开发的各类设备不能融合使用的难题,提供了统一的网络视频开发标准,即最终能够通过ONVIF这个标准化的平台实现不同产品之间的集成。 ONVIF主要为网络视频产品提供标准化网络开放式接口。ONVIF利用IT技术,例如...原创 2020-11-19 17:08:32 · 10319 阅读 · 0 评论 -
FFmpeg快速入门
一、FFMpeg1、FFMPEG简介(1)MPEG FFMPEG 全称Fast Forward MPEG,MPEG系列标准是由ISO/IEC制定的,主要应用于视频存储(DVD)、广播电视、因特网或无线网上的流媒体。ITU-T与ISO/IEC是制定视频编码标准的两大组织,ITU-T的标准包括H.261、H.263、H.264,两个组织也共同制定了一些标准,H.262标准等同于MPEG-2的视频编码标准,而最常用的H.264标准则被纳入MPEG-4的第10部分也叫AVC编码。(2)F...原创 2020-09-18 16:35:23 · 1310 阅读 · 0 评论 -
Mp4文件格式解析
1、简介 MP4(或称MPEG-4 Part 14)是一套用于音频、视频信息的压缩编码标准,由国际标准化组织(ISO)和国际电工委员会(IEC)下属的“动态图像专家组”(Moving Picture Experts Group,即MPEG)制定 MP4文件封装格式,对应的标准为ISO/IEC 14496-12,即信息技术 视听对象编码的第12部分:ISO 基本媒体文件格式(Information technology Coding of audio-visual object...原创 2020-09-04 16:55:35 · 3591 阅读 · 1 评论 -
HLS协议
1、简介 HLS (HTTP Live Streaming)是Apple的动态码率自适应技术。主要用于PC和Apple终端的音视频服务。包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。HLS 协议编码格式要求视频的编码格式:H264 音频的编码格式:AAC、MP3、AC-3 视频的封装格式:ts 保存 ts 索引的 m3u8 文件HLS 协议优势HLS 相对于 RTMP 来讲使用了标准的 HTTP 协议来传输数据,可以避免在一些特殊的网络环境下被屏蔽。...原创 2020-09-01 11:22:34 · 1216 阅读 · 0 评论 -
H.264中SPS、PPS和IDR
1、简介 H.264码流第一个 NALU是 SPS(序列参数集Sequence Parameter Set),对应H264标准文档 7.3.2.1 序列参数集的语法进行解析。 H.264码流第二个 NALU是 PPS(图像参数集Picture Parameter Set),对应H264标准文档 7.3.2.2 序列参数集的语法进行解析。 H.264码流第三个 NALU 是 IDR(即时解码器刷新),对应H264标准文档 7.3.3 序列参数集的语法进行解析。...原创 2020-08-27 16:55:49 · 1625 阅读 · 0 评论 -
RTMP协议详解及实例分析
1、简介 RTMP协议是Real Time Message Protocol(实时信息传输协议)的缩写,它是由Adobe公司提出的一种应用层的协议,用来解决多媒体数据传输流的多路复用(Multiplexing)和分包(packetizing)的问题。实现通常对不同类型的消息分配不同的优先级,当运载能力有限时,这会影响等待流传输的消息的次序。 RTMP协议是应用层协议,是要靠底层可靠的传输层协议(通常是TCP)来保证信息传输的可靠性的。在基于传输层协议的链接建立完成后,RTMP...原创 2020-08-17 17:19:54 · 4599 阅读 · 0 评论 -
RTSP协议详解及实例分析
1、RTSP简介 RTSP(Real-Time Stream Protocol)协议是一个基于文本的多媒体播放控制协议,属于应用层。RTSP以客户端方式工作,对流媒体提供播放、暂停、后退、前进等操作。该标准由IETF指定,对应的协议是RFC2326。 RTSP作为一个应用层协议,提供了一个可供扩展的框架,使得流媒体的受控和点播变得可能,它主要用来控制具有实时特性的数据的发送,但其本身并不用于传送流媒体数据,而必须依赖下层传输协议(如RTP/RTCP)所提供的服务来完成流媒体数...原创 2020-07-29 16:43:12 · 7337 阅读 · 0 评论 -
流媒体之SDP
1、SDP简介 SDP(Session Description Protocol),会话描述协议。是描述流媒体初始化参数的格式,由IETF作为RFC 4566颁布。主要用于两个会话实体之间的媒体协商。 什么叫会话呢,比如一次网络电话、一次电话会议、一次视频聊天,这些都可以称之为一次会话。那为什么要去发这个描述文本呢,主要是为了解决参与会话的各成员之间能力不对等的问题,如果参加本次通话的成员都支持高质量的通话,但是我们没有去进行协议,为了兼容性,使用的都是普通质量的通话格式...原创 2020-07-29 16:32:09 · 860 阅读 · 0 评论 -
RTP和RTCP
一、RTP1、RTP简介 实时传输协议(Real-time Transport Protocol或简写RTP)是一个网络传输协议,它是由IETF的多媒体传输工作小组1996年在RFC 1889中公布的。RTP协议常用于流媒体系统(配合RTSP协议),视频会议和一键通(Push to Talk)系统(配合H.323或SIP),使它成为IP电话产业的技术基础。RTP协议和RTP控制协议(RTCP)一起使用,而且它是创建在UDP协议上的。2、特征 RTP 本身并没有提供按时...原创 2020-07-29 16:28:24 · 3131 阅读 · 0 评论 -
HTTP-FLV协议
1、简介 FLV (Flash Video) 是 Adobe 公司推出的另一种视频格式,是一种在网络上传输的流媒体数据存储容器格式。其格式相对简单轻量,不需要很大的媒体头部信息。整个FLV由 The FLV Header, The FLV Body 以及其它 Tag 组成。因此加载速度极快。采用 FLV 格式封装的文件后缀为 .flv。而HTTP-FLV 即将流媒体数据封装成 FLV 格式,然后通过 HTTP 协议传输给客户端。 HTTP协议中有个约定:content-len...原创 2020-05-12 17:15:36 · 10509 阅读 · 0 评论 -
http断点续传原理:http头Range和Content-Range
1、断点续传原理 断点续传是从HTTP/1.1开始支持的。而在断点续传的请求中主要用到的是http头中的Range和Content-Range这两个字段。(1)Range 用于请求头中,指定第一个字节的位置和最后一个字节的位置,一般格式:Range:(unit=first byte pos)-[last byte pos](2)Content-Rang...原创 2020-04-22 20:16:24 · 3430 阅读 · 0 评论 -
H.264和H.265
一、H.2641、H.264简介 H.264是MPEG-4第十部分(高级视频编码AVC(Advanced Video Coding)),是一个高度压缩数字视频编解码器标准。.H264标准各主要部分有Access Unit delimiter(访问单元分割符),SEI(附加增强信息),primary coded picture(基本图像编码),Redundant Coded ...原创 2019-12-26 21:23:36 · 1956 阅读 · 1 评论 -
视频压缩:I帧、P帧、B帧
视频压缩中,每帧代表一幅静止的图像。而在实际压缩时,会采取各种算法减少数据的容量,IPB即为三种压缩技术。 I帧是关键帧,属于帧内压缩。就是和AVI的压缩是一样的。P是向前搜索的意思。B是双向搜索。他们都是基于I帧来压缩数据。采用的压缩方法:分组:把几帧图像分为一组(GOP),为防止运动变化,帧数不宜取多。定义帧:将每组内各帧图像定义为三种类型,即I帧、B帧...转载 2019-12-26 21:06:23 · 1869 阅读 · 0 评论 -
RTMP协议
1、简介 Real Time Messaging Protocol(实时消息传输协议)。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。2、多种变种a、RTMP工作在TCP...转载 2019-11-21 23:42:45 · 235 阅读 · 0 评论 -
RTSP协议
1、简介 RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议,主要是用来控制声音或影像的多媒体串流协议,并允许同时多个串流需求控制,但并不特别强调时间同步,所以比较能容忍网络延迟。HTTP与RTSP相比,HTTP传送HTML,而RTSP传送的是多媒体数据。 RTSP在体系...原创 2019-11-21 23:32:06 · 384 阅读 · 0 评论 -
Http协议(二)
HTTP协议基于TCP协议。TCP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。1、常用端口:HTTP协议代理服务器常用端口号:80/8080/3128/8081/9098 SOCKS代理协议服务器常用端口号:1080 FTP(文件传输)协议代理服务器常用端口号:21 Telnet(远程登录)协议代理服务器常用端口号:23...原创 2019-11-21 23:20:32 · 270 阅读 · 0 评论