
音视频
文章平均质量分 88
浅慕Antonio
分享编程知识
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【音视频】GOP 的设置和分析
GOP(图像组)是H.264编码中两个I帧之间的帧序列,包含I、P、B三种帧类型。GOP长度和Reference间隔是关键参数,影响编码效率与画质:较长的GOP能在相同码率下提升画质,但会受场景切换限制,且增加解码延迟和Seek时间。合理设置GOP需平衡画质、编码效率和操作响应性。原创 2025-08-21 17:00:44 · 366 阅读 · 0 评论 -
【音视频】闭合GOP和开放GOP
摘要: GOP(图像组)是视频编码中的关键概念,分为闭合GOP和开放GOP。闭合GOP(以IDR帧开始)内帧仅参考本组数据,适合点播、ABR切换、直播时移等需要独立解码的场景;开放GOP允许跨组参考,压缩效率更高,适用于存储型视频或顺序播放场景。闭合GOP牺牲压缩率换取灵活性,开放GOP反之,两者选择需权衡实际需求(如随机访问、带宽、延迟等)。技术细节可参考原文及GitHub资料。 (字数:150)原创 2025-08-21 14:20:42 · 943 阅读 · 0 评论 -
【音视频】WebRTC 一对一通话 peerconnection_client 分析
学习WebRTC可以从peerconnection_client项目入手,重点分析其信令流程和API使用。信令服务器需实现SDP交换、Candidate交换和业务逻辑处理,可采用WebSocket或HTTP协议。核心文件conductor.cc包含WebRTC的关键功能如媒体协商、网络协商等,通过回调机制与UI线程交互。初始化时需配置SSL、网络库等系统资源,并建立主窗口与消息循环。整体流程包括客户端连接、信令交换、媒体流传输等环节,可作为WebRTC开发的入门参考。原创 2025-08-19 00:38:53 · 957 阅读 · 0 评论 -
【音视频】WebRTC C++ native 编译
本文介绍了在Windows10+VS2019环境下编译WebRTC源码的完整步骤。主要包括环境搭建(安装VS2019、Python3和depot_tools工具包)、使用gn生成工程文件、通过ninja编译项目,以及解决编译过程中出现的常见问题。最后展示了编译成功的可执行文件测试结果,包括服务器和客户端的连接测试,并提供了遇到闪退问题的解决方案。文中还附有源码下载地址和环境配置说明,为开发者提供了完整的WebRTC编译指南。原创 2025-08-07 23:38:51 · 956 阅读 · 0 评论 -
【音视频】WebRTC 一对一通话-部署到公网
本文详细介绍了搭建支持HTTPS和WebSocket的Nginx服务器方案。首先通过安装依赖、编译安装Nginx 1.15.8版本,并生成自签名证书;然后配置Nginx实现HTTPS服务,解决WebRTC访问摄像头必须使用安全连接的问题;接着通过Nginx反向代理实现WSS(WebSocket Secure)连接,保障WebSocket通信安全;最后集成Coturn服务器提供STUN/TURN服务,完成完整的WebRTC通信环境搭建。文章提供了完整的配置代码和操作步骤,包括Nginx编译安装、SSL证书生成原创 2025-08-06 00:55:39 · 773 阅读 · 0 评论 -
【音视频】WebRTC 一对一通话-信令服
本文介绍了基于C++的WebSocket服务器实现,重点讲解了房间管理和信令处理机制。服务器采用WebSocketpp库搭建,通过JSON格式与前端通信。主要内容包括: 服务器配置:基于Ubuntu系统,使用WebSocketpp和nlohmann/json库实现WebSocket和JSON解析功能。 WebSocket连接:设置监听端口和回调函数(连接、消息接收、断开连接)。 房间管理:使用map结构存储房间信息,每个房间维护一个客户端列表(包含UID、房间号和连接句柄)。 信令处理:定义了9种信令类型,原创 2025-08-05 17:06:52 · 1103 阅读 · 0 评论 -
【音视频】WebRTC 一对一通话-Web端
本文介绍了基于WebRTC的一对一视频通话实现方案。前端页面包含房间ID输入框、加入/离开房间按钮及本地/远端视频窗口。核心部分通过RTCEngine类实现WebSocket连接管理,封装了创建连接、消息收发等基础功能。系统定义了8种JSON格式信令(join、offer、answer等)用于房间管理和媒体协商,并通过onMessage回调函数处理不同信令类型。本地视频需设置muted属性以避免回声问题。该方案实现了基本的P2P视频通话功能,包含房间管理、信令交互和媒体传输等核心模块。原创 2025-08-05 02:57:37 · 921 阅读 · 0 评论 -
【音视频】WebRTC 一对一通话-实现概述
本文介绍了基于WebRTC技术的音视频通话系统实现方案。系统分为Web端和服务器端:Web端采用HTML+JavaScript实现,通过RTCPeerConnection类处理音视频流;服务器端使用C++开发信令服务器,采用WebSocket协议与Web端通信,并通过coturn实现STUN/TURN服务。系统设计了8种JSON格式信令实现房间管理、媒体协商和网络协商功能。详细说明了媒体协商流程(createOffer/createAnswer)和网络协商机制(addIceCandidate),通过SDP交原创 2025-08-04 17:39:22 · 939 阅读 · 0 评论 -
【音视频】WebRTC 中的RTP、RTCP、SDP、Candidate
本文详细介绍了实时音视频传输中的RTP(实时传输协议)和RTCP(RTP控制协议)在WebRTC中的应用。RTP负责音视频数据的封装、分片传输与时序控制,支持动态载荷类型协商、大帧分片重组和扩展头部功能,并通过SRTP加密确保安全性。RTCP则通过周期性的收发报告(SR/RR)监测网络状态,提供丢包率、抖动和RTT等关键指标,实现自适应码率调整和媒体同步。两者协同工作,共同保障WebRTC在复杂网络环境下的实时通信质量。文章还通过具体示例解析了RTP报文各字段含义,并展示了协议在实际场景中的应用。原创 2025-08-01 17:37:55 · 1114 阅读 · 0 评论 -
【音视频】WebRTC-Web 音视频采集与播放
本文介绍了如何在网页中通过WebRTC API实现摄像头、麦克风等媒体设备的调用。主要内容包括: 打开摄像头:通过video标签、getUserMedia方法和相关回调函数实现摄像头视频流的获取与显示。 打开麦克风:类似摄像头实现,使用audio标签并添加controls控件,修改媒体约束只获取音频。 同时打开摄像头和麦克风:只需在媒体约束中将video和audio都设为true即可。 文章详细说明了HTML标签属性设置、JavaScript媒体约束对象定义、成功/错误回调函数实现,以及如何将媒体流绑定到对原创 2025-07-30 22:15:20 · 1057 阅读 · 0 评论 -
【音视频】WebRTC 开发环境搭建-Web端
本文介绍了WebRTC开发环境搭建流程:1)安装VSCode及Live Server插件用于前端开发测试;2)在Ubuntu系统下通过wget安装Node.js并配置环境变量;3)从GitHub克隆coturn(STUN/TURN服务器)源码,完成编译安装后启动服务并验证3478端口监听状态。文中提供了详细的操作命令和测试方法,包括前端页面实时预览、Node环境检测以及coturn服务器后台启动等关键步骤。原创 2025-07-30 19:36:17 · 378 阅读 · 0 评论 -
【音视频】WebRTC 介绍
WebRTC是一套开源技术标准,实现浏览器间实时音视频通信和数据传输。其核心架构采用分层设计:Web API层为开发者提供标准化JS接口;Native C++层由浏览器厂商实现底层功能;引擎层处理音视频编解码、网络传输等核心逻辑,包括音频引擎(NetEQ、回声消除)、视频引擎(VP8编解码)和网络传输(ICE/STUN/TURN)。通信流程分为媒体协商(通过SDP协议交换编解码能力)和网络协商(通过ICE框架实现NAT穿透)。WebRTC支持跨平台运行,无需插件,已成为实时Web通信的核心技术。原创 2025-07-30 01:53:54 · 1410 阅读 · 0 评论 -
【音视频】nginx-hls-多码率测试环境搭建
本文介绍了nginx-http-flv-module开源项目的功能对比和环境搭建方法。该项目相比nginx-rtmp-module新增了HTTP-FLV播放、GOP缓存、虚拟主机等特性。环境搭建部分详细说明了在Ubuntu系统下安装依赖库(gcc、pcre、zlib、openssl)、下载nginx-http-flv-module源码、配置nginx编译选项(注意处理OpenSSL 3.0的函数弃用警告)以及编译安装的完整过程。其中特别提醒了模块路径配置错误可能导致的问题,并提供了解决OpenSSL版本兼容原创 2025-07-12 00:12:06 · 616 阅读 · 0 评论 -
【音视频】HLS拉流抓包分析
本文介绍了HLS流媒体协议的实际测试与分析过程。首先搭建SRS服务器环境,使用FFmpeg推流RTMP并生成HLS切片文件(.m3u8索引和.ts视频片段)。通过FFplay拉流验证播放效果,并用Wireshark抓取HTTP请求进行协议分析。重点解析了客户端请求.m3u8文件的HTTP报文细节,包括GET方法、查询参数和请求头;以及服务器响应报文的特征,如Content-Type、SRS服务器标识和返回的.m3u8文件内容格式。实验结果表明HLS通过HTTP协议实现流媒体分片传输,客户端需先获取动态更新的原创 2025-07-11 15:04:54 · 1830 阅读 · 0 评论 -
【音视频】HTTP协议介绍
HTTP协议是万维网数据通信的基础,作为应用层协议,它具有简单快速、灵活、无连接和无状态的特点。HTTP报文由起始行、头部字段和消息正文三部分组成,起始行包含请求方法/状态码、请求目标和协议版本。头部字段采用key-value形式,提供报文的详细信息。常见请求字段如User-Agent用于标识客户端类型,而响应字段如Server说明服务器信息。尽管HTTP协议是无状态的,但通过Cookie和Session技术可保持会话状态。该协议支持多种数据类型传输,通过Content-Type标记数据类型,包括表单、JS原创 2025-07-11 00:04:56 · 728 阅读 · 0 评论 -
【音视频】TS协议解析
TS流协议解析与封装流程 摘要:本文解析了TS(Transport Stream)协议的结构与封装流程。TS流由固定188/204字节的数据包组成,适合广播电视等不可靠环境传输。其封装层级为:原始媒体数据ES流→分组化的PES流→最终封装为TS流(多节目)或PS流(单节目)。TS包结构包含同步字节、PID标识、加扰控制等关键字段,解析时需校验包有效性(同步标志、错误指示等)。文中详细说明了TS包头解析方法、无效包判断条件及有效负载定位流程,并对比了TS与PS流的应用差异(实时传输vs本地存储)。通过结构体定原创 2025-07-10 17:15:03 · 821 阅读 · 0 评论 -
【音视频】TS协议介绍
TS协议(Transport Stream)是MPEG-2标准中用于多媒体传输的容器格式,广泛应用于广播电视和网络流媒体。TS流采用固定188字节的包结构,包含TS头、自适应域和有效载荷三部分。通过PID标识不同类型的数据包,关键表包括PAT(指明PMT表PID)和PMT(指明音视频流PID)。TS协议具有强容错性,支持从任意位置解码,其分层结构包括TS层(传输流)、PES层(带时间戳)和ES层(原始音视频数据)。自适应域用于解决时钟同步问题,定期传输PCR(节目时钟参考)确保解码器同步。原创 2025-07-09 12:51:25 · 1148 阅读 · 0 评论 -
【音视频】HLS-m3u8协议介绍
m3u8协议是HLS流媒体传输中的核心索引格式,基于M3U扩展而成,采用UTF-8编码的文本文件(.m3u8)描述媒体片段信息。其核心作用包括:指示流媒体分片地址、时长及多码率版本,实现动态自适应播放。m3u8文件包含关键标签如#EXTM3U(文件头)、#EXT-X-VERSION(版本)、#EXTINF(分片时长)、#EXT-X-TARGETDURATION(最大分片时长)等,支持点播(带#EXT-X-ENDLIST)和直播场景。HLS通过m3u8索引TS分片,客户端根据网络状况选择不同码率的m3u8列表原创 2025-07-08 14:41:06 · 1189 阅读 · 0 评论 -
【音视频】 HLS协议介绍
HLS(HTTP Live Streaming)是苹果公司基于HTTP提出来的一种自适应码率的流媒体传输协议。尤其是在移动端,由于ios/h5不支持flash,使得HLS成了移动端实时音视频流传输的首选。HLS经常应用在直播领域,一些国内的直播云通常使用HLS拉流。但是HLS延迟严重,通常延迟都在10-30s之间。HTTP 实时流(HLS)是使用最广泛的视频流协议之一。尽管它称为 HTTP“实时”流,但它同时适用于点播流和实时流。原创 2025-07-08 13:13:47 · 1991 阅读 · 0 评论 -
【音视频】HLS简介与服务器搭建
HLS(HTTP实时流)是一种广泛使用的视频流协议,适用于点播和实时流传输。它将视频分割为小片段并通过HTTP分发,支持自适应比特率调整以适应不同网络条件。文章介绍了HLS的工作原理,包括服务器端的编码、分段和客户端播放流程,并提供了SRS流媒体服务器的安装配置指南。通过FFmpeg进行RTMP推流和HLS拉流测试,对比显示HLS延迟较高但兼容性更好。SRS服务器配置涉及HLS参数设置,如片段时长和缓存窗口,可优化流媒体性能。原创 2025-07-07 22:48:35 · 709 阅读 · 0 评论 -
【音视频】RTMP拉流抓包分析
本文摘要: RTMP流媒体协议分析:通过ffmpeg推流和ffplay拉流实例,详细解析RTMP协议的三次握手、connect命令及流量控制机制。推流命令示例为ffmpeg -i 1.mp4 -f flv rtmp://ip/live/livestream,拉流使用ffplay -i rtmp://ip/live/livestream。RTMP握手分为三个阶段:C0+C1→S0+S1+S2→C2,通过随机数交互完成认证。握手后发送connect命令(AMF0编码)声明应用名称和编解码参数。最后分析Windo原创 2025-06-27 01:05:10 · 770 阅读 · 0 评论 -
【音视频】Ubuntu下配置ffmpeg库
本文介绍了FFmpeg预编译库的下载与环境配置方法。首先从GitHub仓库下载编译好的动态库并解压,然后在.bashrc文件中添加bin和lib路径的环境变量配置,通过source命令使其生效。最后通过ffmpeg -version命令验证安装是否成功。文中提供了详细的配置截图和路径示例,帮助用户快速完成FFmpeg的环境部署。原创 2025-06-26 14:24:28 · 293 阅读 · 0 评论 -
【音视频】RTMP协议推流抓包分析
RTMP协议解析与推流分析 RTMP是专为实时流媒体设计的应用层协议,基于TCP实现可靠传输。其核心技术包括: 分层传输机制:将数据封装为消息并分块发送,支持命令交互和媒体流传输 低延迟控制:通过时间戳同步和流式传输实现1-3秒延迟 三次握手流程:交换时间戳和随机数完成连接建立 推流实践分析:使用FFmpeg将H.264/AAC封装为FLV并通过RTMP推流,Wireshark抓包显示TCP三次握手过程,验证了端口标识、序列号同步等关键机制。整个流程体现了RTMP在实时音视频传输中的技术优势。原创 2025-06-25 14:45:22 · 749 阅读 · 0 评论 -
【音视频】RTMP协议详解
RTMP协议是Adobe提出的实时多媒体传输协议,主要用于音视频直播领域。该协议基于TCP传输层,通过握手流程建立连接后,将数据拆分为Chunk进行多路复用传输。RTMP的核心机制包括:1) 三次握手建立连接;2) Message分块为Chunk传输,支持动态调整块大小;3) 通过Basic Header和Message Header实现数据标识与重组。协议采用Type 0-3四种Header格式,其中Type 0为完整格式(11字节),其他为差分格式以提高效率。RTMP通过Chunk Stream ID区原创 2025-06-20 23:09:55 · 847 阅读 · 0 评论 -
【音视频】 FFmpeg 硬件(AMD)解码H264
硬件编解码是利用GPU等独立硬件模块进行视频编解码的技术,能降低CPU负荷,提高性能,但兼容性和画质处理较弱。软件编解码则完全依赖CPU,兼容性更好但功耗较高。常见的GPU编解码方案包括厂商SDK(如NVIDIA的NVENC、AMD的AMF)和FFmpeg集成方案。不同平台对硬件编解码的支持差异较大,Windows主要使用Direct3D/DXVA2,Linux支持VAAPI/VDPAU,而macOS使用VideoToolbox。FFmpeg提供了跨平台的硬件加速接口,但在功能完整性和易用性上仍有不足。硬件原创 2025-06-01 19:45:46 · 1877 阅读 · 0 评论 -
【音视频】FFmpeg 硬件(NVDIA)编码H264
原代码使用的是nvdia进行解码,但是我的显卡是AMD的,因此不支持这个解码器,因此该代码转载别人写的代码,具体的测试结果仅供参考!编码器预设编码时间比特率线程数线程类型libx264ultrafast306ms未指定未指定h264_nvencultrafast278ms906.10kbps未指定未指定libx264superfast381ms未指定未指定h264_nvencsuperfast226ms906.10kbps未指定未指定libx264。原创 2025-05-31 16:17:14 · 1132 阅读 · 0 评论 -
【音视频】FFmpeg 编码H265
摘要:本文介绍了使用libx265将本地YUV文件编码为H265格式的实现过程。主要包括:准备YUV输入文件和H265输出文件路径,初始化解码器(查找编码器、分配上下文、设置视频参数),配置高级编码参数(GOP大小、B帧、preset等),处理编码延迟和多线程设置,以及实现文件读取、帧分配和循环编码流程。文章还展示了如何通过FFmpeg查询libx265的更多编码选项。原创 2025-05-30 21:41:32 · 1547 阅读 · 0 评论 -
【音视频】 FFmpeg 解码H265
实现了使用FFmpeg读取对应H265文件,并且保存为对应的yuv文件。原创 2025-05-30 17:53:29 · 1193 阅读 · 0 评论 -
【音视频】H265 NALU分析
H265视频编码技术概述 H265(HEVC)是H264的升级标准,在相同画质下可减少39-44%的视频大小。主要改进包括:1)支持更大的编码单元(8x8至64x64);2)帧内预测模式增至33种;3)采用更先进的运动补偿和矢量预测;4)优化并行处理架构。H265码流由视频编码层(VCL)和网络抽象层(NAL)组成,NAL单元包含2字节头信息(含NALU类型)和前缀Start Code(0x000001)。相比H264,H265运算复杂度更高但压缩效率显著提升,更适合高清视频传输。原创 2025-05-30 15:35:26 · 1075 阅读 · 0 评论 -
【音视频】RTP解包H264 代码实现
本文介绍了手动解包RTP封装的H264视频流并保存为本地文件的方法。通过模拟接收端处理RTP包,将解包后的H264数据添加startcode后写入文件,可直接用ffplay播放。文章详细说明了实现流程,包括文件读取、结构体定义(如rtp_h264_test_t和rtp_payload_t)、回调函数注册以及解包处理逻辑,重点关注了rtp_decode_packet函数如何提取H264裸数据并添加startcode。该方法未处理网络传输中的乱序和丢包问题,后续需针对实际网络环境优化。原创 2025-05-29 16:52:39 · 1217 阅读 · 0 评论 -
【音视频】RTP封包AAC 代码实现
本文介绍了通过UDP发送RTP封装AAC音频数据的方法。实现流程包括:读取本地AAC文件作为音频源数据,定义rtp_aac_test_t结构体存储AAC参数和socket信息,使用rtp_payload_t结构体处理RTP封包回调函数。通过设置payload类型为97(mpeg4-generic)创建AAC编码器,实现RTP数据封装,最终可通过ffplay或VLC播放SDP文件来接收并播放音频流。原创 2025-05-29 00:34:04 · 628 阅读 · 0 评论 -
【音视频】RTP封包H264 代码实现
本文实现了一个通过RTP over UDP发送H264视频流的程序,支持ffplay和VLC播放。核心功能包括:读取本地H264文件,封装为RTP数据包,通过UDP发送,并生成对应的SDP文件用于播放。程序使用自定义结构体rtp_h264_test_t管理RTP编解码参数,包括NALU分片、SPS/PPS参数等。通过回调函数rtp_alloc和rtp_encode_packet实现RTP包的内存分配与网络发送。Windows平台需初始化Winsock套接字,并指定目标IP和端口。最终可通过VLC加载SDP文原创 2025-05-28 00:23:34 · 517 阅读 · 0 评论 -
【音视频】H264 SPS PPS 介绍
SPS和PPS是H.264视频编码中的关键参数集,分别存储全局编码配置和图像参数。SPS包含图像宽高、编码档次等信息,PPS则涉及量化参数、熵编码模式等。它们通常位于码流起始位置,可通过Wireshark抓包或SDP的Base64字段获取。解析时需先解码Base64,再按H.264标准提取语法元素。工具如spsparser可辅助解析这些参数,便于分析视频属性。原创 2025-05-27 18:08:15 · 1074 阅读 · 0 评论 -
【音视频】H.264在RTP中的负载类型与SDP参数解析
H.264视频数据在RTP传输中有三种负载模式,通过NALU头部结构(F/NRI/Type字段)识别。Single模式(Type 1-23)直接封装NALU;Non-interleaved模式支持STAP-A组合包(Type 24)和FU-A分片(Type 28);Interleaved模式通过STAP-B/MTAP实现多时间调度。SDP配置需指定packetization-mode(0/1/2)及profile-level-id等参数。解析时需根据NALU类型处理分片重组(如FU-A分片的S/E标志位),原创 2025-05-27 17:17:35 · 790 阅读 · 0 评论 -
【音视频】RTCP协议介绍
RTCP(实时传输控制协议)是RTP的姐妹协议,主要用于监控传输质量、标识参与者和会话管理。其报文分为五种类型:SR(发送方报告)、RR(接收方报告)、SDES(源描述)、BYE(离开通知)和APP(自定义报文)。SR包含发送状态和时间戳,RR反馈接收质量统计。RTCP报文采用统一格式,包含版本号、填充位、报告块数量和类型等字段,并通过SSRC标识参与者。SR报文含NTP时间戳、RTP时间戳和发送统计,RR报文则记录丢包率、抖动等指标。两者协同确保实时流媒体的传输质量控制和同步。原创 2025-05-26 17:55:17 · 855 阅读 · 0 评论 -
【音视频】录屏推流项目开源
该项目是一个音视频处理系统,主要实现多源音视频采集、编解码、传输及图像处理功能。支持摄像头/桌面视频和麦克风/桌面音频的采集与合成,具备AMD显卡硬编解码能力(仅Windows平台)。系统可本地录制MP4文件,并支持RTMP/RTSP推流(实测延迟500-700ms)。采用QT5开发无边框UI界面,集成OpenCV实现人脸检测、磨皮美白等图像处理功能。技术栈包含FFmpeg 6.0、OpenCV4.2和QOpenGL,项目定位为音视频技术实践平台,重点覆盖编解码、传输和图像分析等技术领域。原创 2025-05-26 00:42:46 · 935 阅读 · 0 评论 -
【音视频】SDP协议介绍
摘要: SDP(Session Description Protocol)是一种基于文本的会话描述协议,用于描述多媒体会话参数,但不参与传输或协商。其格式为<type>=<value>,包含会话级(如名称、时间)和媒体级(如类型、端口)参数。SDP需与其他协议(如SIP、RTSP)配合使用,通过紧凑编码提高效率。关键字段包括版本(v)、源(o)、会话名(s)、时间(t)和媒体(m)。可选字段提供额外信息,如URI、带宽等。媒体描述(m行)定义类型、端口和格式,属性(a行)补充编码细节原创 2025-05-25 20:43:15 · 860 阅读 · 0 评论 -
【音视频】RTSP推流拉流抓包分析
RTSP协议是一种基于文本的应用层协议,用于控制实时媒体流的传输。它与HTTP类似但具有关键差异:RTSP支持双向请求、保持会话状态,并通过RTP协议传输媒体数据。典型的RTSP操作包括DESCRIBE、SETUP、PLAY等命令,实现流媒体会话的建立、控制和终止。文章通过抓包分析展示了推流和拉流过程中的RTSP报文交互,包括OPTIONS、SETUP、PLAY等请求及响应,以及RTP数据包的传输过程。RTSP作为流媒体的"网络远程控制"协议,通常与RTP/RTCP配合完成媒体数据传输。原创 2025-05-25 14:08:53 · 429 阅读 · 0 评论 -
【音视频】RTP封包AAC
本文介绍了AAC音频在RTP协议中的封装格式,主要基于RFC 3640规范。AAC数据需先去除ADTS头(7或9字节),然后添加RTP头部和AU相关字段。关键步骤包括:添加16位AU-headers-length字段、2字节AU-header(包含13位AU长度信息),最后填充AAC有效载荷。SDP参数中需配置AudioSpecificConfig(采样率、通道数等)以及AU-header字段位数(如sizeLength=13)。典型应用场景下,单个RTP包仅含一个AU,此时可简化AU-header结构。文原创 2025-05-25 01:02:13 · 1014 阅读 · 0 评论 -
【音视频】RTP封包H264
本文介绍了H264视频数据通过RTP协议传输的打包方法,主要参考RFC6184标准。RTP支持灵活的负载格式协商,适用于低延迟音视频传输。H264编码数据分为VCL(视频编码层)和NAL(网络抽象层),其中NAL单元(NALU)是传输的基本单位。NALU包含1字节头部和数据部分,头部定义了帧类型、重要性等级等信息。 文章详细讲解了两种RTP打包方式: 单一NALU模式:当NALU≤1400字节时直接封装到单个RTP包; FU-A分片模式:对较大NALU进行分片传输,满足MTU限制(1500字节)。 实际应用原创 2025-05-24 23:58:46 · 807 阅读 · 0 评论