自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 webrtc-sdp详解

1、SDP协议简介SDP(Session Description Protocol) 是一种会话描述协议,基于文本,其本身并不属于传输协议,需要依赖其它的传输协议(比如 SIP 和 HTTP)来交换必要的媒体信息,用于两个会话实体之间的媒体协商,详细的标注规范可参考RFC2327和RFC4566。WebRTC 中使用 Offer-Answer 模型交换 SDP,本文详细介绍SDP各属性在WebRTC中的应用。2、SDP组成SDP是由多行文本组成的一个纯文本协议,如果将SDP从语义上分解成不同组件来描述

2021-06-17 14:51:25 3826

原创 WebRTC-STUN协议详解

1、STUN协议概述STUN(Session Traversal Utilities for NAT)NAT会话穿透工具,STUN是一个Client/Server协议,支持请求/响应类型、指示类型两种类型。STUN作为ICE(Interactive Connectivity Establishment,交互式连接建立)解决方案的一种工具使用,STUN协议本身没有穿透等能力,只是为穿透提供反射地址,穿透不成功时,需要使用TURN协议。1.1 请求/响应类型(request/response)由客户端给服

2021-04-19 09:18:35 2319

原创 如何实现H.265的RTP的封装及传输?

一、RTP协议概述RTP(Real-time Transport Protocol)实时传输协议,由IETF的多媒体传输工作小组发布的网络传输协议,标准为RFC3550/3551。RTP协议支持TCP和UDP两种传输方式,RTP协议负责对流媒体数据进行封包并实现媒体流的实时传输,但并不能为按顺序传送的数据包提供可靠的传送机制,也不提供流量和拥塞控制,这些是依靠RTCP协议来完成的,两者配合使用。本文主要从数据处理的角度实现对H.265的RTP封装进行详细介绍。二、RTP协议解析RTP协议是由RTP H

2021-03-12 09:12:16 766

原创 SRS代码分析-GB28181(二)

1、srs_error_t SrsGb28181RtmpMuxer::do_cycle()在ps_queue队列中取出数据进行解析。2、具体的解析函数如下:srs_error_t SrsPsStreamDemixer::on_ps_stream(char* ps_data, int ps_size, uint32_t timestamp, uint32_t ssrc){ ......}视频关键帧的封装:RTP + PS header + PS system header + PS syste

2021-03-11 09:42:47 915

原创 SRS代码分析-GB28181(一)

前言SRS/4.0,Leo,是一个流媒体集群,支持RTMP/HLS/WebRTC/SRT/GB28181。最近在学习其中的gb28181的收流转rtc功能,简单记录一下gb28181模块的实现过程,具体调用过程如下:1、srs_error_t SrsServer::listen()2、srs_error_t SrsServer::listen_stream_caster()3、srs_error_t SrsGb28181RtpMuxService::on_udp_packet(const socka

2021-03-08 16:52:00 2399

原创 如何实现H.264的RTP封装及传输?

一、RTP协议概述RTP(Real-time Transport Protocol)实时传输协议,由IETF的多媒体传输工作小组发布的网络传输协议,标准为RFC3550/3551。RTP协议支持TCP和UDP两种传输方式,RTP协议负责对流媒体数据进行封包并实现媒体流的实时传输,但并不能为按顺序传送的数据包提供可靠的传送机制,也不提供流量和拥塞控制,这些是依靠RTCP协议来完成的,两者配合使用。本文主要从数据处理的角度实现对H.264的RTP封装进行详细介绍。二、RTP协议解析RTP协议是由RTP H

2021-03-05 14:29:20 605 1

原创 音视频数据处理(三)-AAC音频码流分析

一、AAC概述AAC(Advanced Audio Coding),高级音频编码,是基于MPEG-2的音频编码技术,于1997年推出,主要用于取代MP3格式。2000年,随着MPEG-4标准的推出,AAC重新集成了新的技术(如SBR、PS等)特性,称之为MEPG-4 AAC。AAC共有9种规格,具体如下所示:编号规格说明1MPEG-2 AAC LC低复杂度规格2MPEG-2 AAC Main主规格3MPEG-2 AAC SSR可变采样率规格4MPEG

2021-01-31 22:00:34 916

原创 音视频数据处理(二)-H265/HEVC视频码流分析

一、H265概述H265/HEVC(Hight Efficiency Video Coding)是由ITU-T和ISO/IEC两大组织在H264/AVC的基础之上推出的新一代高效视频编码标准,主要为应对高清和超高清视频在网络传输和数据存储方面带来的挑战。上一篇文章对H264/AVC视频码流进行了详细的分析,本文继续从数据处理的角度对H265/HEVC视频码流进行详细分析。二、H265分层结构H265的分层结构与H264类似,分为视频编码层(VCL:Video Code Layer)和网络抽象层(NAL

2021-01-29 14:00:41 1184

原创 音视频数据处理(一)-H264/AVC视频码流分析

一、H264概述H264是MPEG-4的第十部分,是由ITU-T和ISO/IEC两大组织联合提出的视频编解码标准,这个标准通常被称之为H.264/AVC。H264编码是一种主流编码方式,本文主要从数据处理的角度对H264视频码流进行分析。二、H264码流结构H264原始码流(裸流)是由多个NAL单元组成的,具体如下图所示:…NALUNALUNALU…NALU单元是由什么组成的呢?NALU单元主要由三部分组成,具体如下图所示:Start CodeNALU Heade

2021-01-28 11:02:44 727

转载 高性能网络库:state-threads

译文在后面;代码我放在GITHUB了:http://github.com/ossrs/state-threads。 State Threads for Internet Applications Introduction State Threads is an application library which provides a foundation for writing fast and highly scalable Internet Applica...

2020-12-03 10:24:19 788

原创 jrtplib在Ubuntu1604下的编译安装

前言RTP是现在常用的一种流媒体传输协议,jrtplib库是一个开源的C++RTP库,具备TCP和UDP两种传输方式。下载源码可通过以下两种方式下载:(1) git clone https://github.com/j0r1/JRTPLIB.git(2) 通过主页下载:j0r1’s page如果需要使用jthread的话,需要先编译安装jthread,编译安装方法与jrtplib相同,jthread主要负责线程调用函数和mutex。编译使用环境为Ubuntu16.04安装cmake生

2020-10-20 16:08:16 133

原创 Ubuntu16.04git安装与gitee码云使用

前言Ubuntu16.04下安装git并进行配置,利用Gitee(码云)进行项目及代码的管理git安装与卸载安装:apt-get install git卸载:apt-get remove git安装成功后可用以下命令查看git版本号:git --versiongit配置1、配置用户名git config --global user.name “your name”用户名和git...

2020-06-09 14:18:25 2667

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除