流媒体
文章平均质量分 91
壹零仓
勇敢 自信 冷静 乐观
展开
-
ffmpeg扩展支持H265视频流的flv封装
由于Adobe暂停了对RTMP/FLV标准的更新,所以目前标准中没有支持HEVC视频编码格式。为避免各终端和服务器间的兼容性问题,FFmpeg也没有在RTMP/FLV的协议实现中进行HEVC的相关扩展。CDN联盟制定了相关的协议扩展规范,并在FFmpeg中完成了相关代码实现,本文主要介绍如何让ffmpeg扩展支持HEVC视频编码格式的HTTP-FLV流媒体协议。原创 2023-11-14 08:25:35 · 79880 阅读 · 0 评论 -
GB/T28181实时视频传输模式介绍
在GB/T28181-2022版本中增加了基于TCP的视频传输的两种模式:主动模式和被动模式,UDP是面向端口的无连接方式,无所谓主动和被动。下面分别介绍下各种模式的概念和流程。原创 2023-10-31 15:57:06 · 116597 阅读 · 0 评论 -
GB/T28181流媒体相关协议详解
28181协议规范中涉及到SIP、SDP、RTP、RTCP、RTSP等应用层协议,其中SIP+XML主要用于消息交互,SIP+SDP主要用户视频会话,RTP/RTCP主要用于媒体流传输控制,RTSP主要用户录像回放。本文主要介绍28181实时视频的流程原创 2023-10-28 14:01:18 · 123373 阅读 · 3 评论 -
OBS推流工具介绍及桌面录屏推流功能实现
本文介绍了OBS基本操作,并通过一个实际场景的例子,来说明OBS在我们流媒体领域中的应用,其使用方式比ffmpeg更加简单,提供更加易于操作的界面,如果使用好,也能为项目节省不少成本原创 2023-07-31 16:10:36 · 201011 阅读 · 0 评论 -
音视频领域强大的辅助工具-ffmpeg常用操作介绍
ffmpeg -i [输入文件名/地址] [参数选项] -f [格式] [输出文件/地址]-i后为媒体流的输入,可以为文件,也可以是视频流地址[参数选项]定义流媒体转换的参数,详细定义了转换的方式-f 后为输出的媒体流格式,定义输出媒体流的输出格式之后直接为输出媒体流到文件或者到推送地址参数-i后为流媒体的输入,为H264裸流文件test.h264;参数选型为-vcodec copy 表示视频的编码格式为流媒体源的格式,即还是H264;-f mpegts表示输出的流媒体为ts;原创 2023-07-08 16:06:13 · 211868 阅读 · 0 评论 -
流媒体传输系列文章汇总
从去年开始编写有关流媒体传输相关知识的文章,为了方便各位阅读,本文对此系列文章进行梳理和汇总。原创 2023-02-11 13:34:51 · 211821 阅读 · 3 评论 -
视频流TS打包方式详解
TS定义的很多,其实我们真正进行TS的封装和解封装的代码开发的时候,所需要关注的字段很少,封装和解封装很多字段都是默认值,可选字段大部分都是没有的,具体可参照ffmpeg相关代码。原创 2023-01-19 23:45:00 · 191799 阅读 · 0 评论 -
RTMP协议封装H264和H265协议详解
本文主要介绍RTMP发送H264和H265视频时,其RTMP视频消息的格式介绍及抓包分析原创 2023-01-18 23:30:00 · 213824 阅读 · 1 评论 -
HTTP FLV交互流程及实例解析
HTTP FLV利用了一个HTTP的协议约定,http 的content-length头字段如果不存在,则客户端就会一直接收数据,直到HTTP连接断开为止,HTTP FLV传输流程是视频客户端发送HTTP请求,不带content-length头字段,服务器响应HTTP,并一直发送FLV的数据;HTTP FLV传输相比于fmp4阐述,是非常简单,既保证了实时性,又具有HTTP网络的适应性,当前很多直播和交互直播领域广泛应用原创 2023-01-17 22:15:00 · 118707 阅读 · 0 评论 -
使用nginx的rtmp模块搭建RTMP和HLS流媒体服务器
前面文章中已经介绍了《使用nginx搭建rtmp流媒体服务器》和《使用nginx搭建HLS服务器》,其实nginx的RTMP模块本身就支持接收RTMP推流、提供RTMP拉流服务及HLS切片器功能,因此可以直接通过nginx的rtmp模块直接接收RTMP推流、对音视频流进行HLS切片,而不需要ffmpeg去生成切片。原创 2023-01-16 23:45:00 · 164396 阅读 · 0 评论 -
使用nginx搭建HTTP FLV流媒体服务器
前文已经介绍了RTSP、RTMP、HLS的流媒体协议,还有一种比较常见的流媒体协议HTTP FLV,其兼具RTMP的实时性及HLS的网络适应性的优点,在很多点直播领域广泛应用。协议名HTTP FLVRTMPHLS传输方式HTTPTCPHTTP视频封装格式flvTS视频时延低低高数据格式连续音视频流连续音视频流TS切片文件web无插件播放支持,通过flv.js不支持,需要flash插件支持,直接HTML5的video标签即可播放防火墙或代理穿透支持不支持。原创 2023-01-16 19:14:17 · 217929 阅读 · 2 评论 -
使用nginx和ffmpeg搭建HLS流媒体服务器
最近研究HLS流媒体协议,需要临时搭建HLS服务器,这里记录下搭建的过程(操作系统:CentOS Linux release 7.9.2009 (Core))原创 2023-01-12 21:25:46 · 212292 阅读 · 0 评论 -
流媒体之HLS详解
HLS(HTTP Live streaming),是基于HTTP的流媒体传输协议,由apple公司所提出的一种由于传输音视频的协议交互方式,当前HLS被广泛应用于视频点直播领域。HLS采用HTTP协议传输音视频数据,HLS通过将音视频流切割成一个个小的TS切片及生成m3u8的播放列表文件,播放客户端通过HTTP协议下载播放列表文件,按照播放列表文件制定的顺序下载切片文件并播放,从而实现便下载边播放,类似于实时在线播放的效果。原创 2023-01-11 23:30:00 · 218883 阅读 · 0 评论 -
流媒体协议之RTMP详解
RTMP(Real Time Messaging Protocol)实时消息传输协议是Adobe公司提出得一种媒体流传输协议,其提供了一个双向得通道消息服务,意图在通信端之间传递带有时间信息得视频、音频和数据消息流,其通过对不同类型得消息分配不同得优先级,进而在网传能力限制下确定各种消息得传输次序。原创 2023-01-10 23:30:00 · 172109 阅读 · 0 评论 -
使用nginx临时搭建rtmp服务器
由于需要研究rtmp协议交互方式及报数据格式,使用nginx临时搭建一个rtmp服务器,主要通过nginx的rtmp扩展模块实现接收RTMP推送的音视频流,同时提供RTMP拉流服务的能力。原创 2023-01-03 12:22:10 · 165770 阅读 · 3 评论 -
wireshark抓包数据提取TCP/UDP/RTP负载数据方法
在视频抓包分析过程中,有时候需要从TCP、UDP、RTP中直接提取payload数据,比如较老的摄像机,有一些直接通过TCP/UDP传输视频裸流,或者PS打包的视频流,通过提取TCP和UDP的负载数据就可以直接组成裸流或者PS流文件,通过视频分析工具(Elecard StreamEye Tools,可关注公众号。的消息)分析视频流数据是否正常。的消息,获取提取方式,这里详细介绍直接提取RTP负载,不做任何组包操作,这里以PS over rtp流的包为例,从此包中提取RTP流的方式。原创 2022-12-20 20:10:07 · 159671 阅读 · 0 评论 -
wireshark提取视频数据之RTP包中提取H264和H265
本文主要描述从wireshark包数据中提取出H264和H265裸流数据方法,裸流通过RTP封包方式发送,从抓包中直接提取视频流数据,进而进行流媒体问题定位原创 2022-11-18 17:56:38 · 161419 阅读 · 4 评论 -
wireshark提取RTSP over TCP中的视频流
打开小工具,直接双机rtpovertcpto264.exe打开,选择刚刚保存的tcp负载原始二进制文件,选择tcp header中视频流的streamid,样例中streamid=0,点击转换,即可提取出H264原始码流。原创 2022-12-12 16:44:33 · 159131 阅读 · 4 评论 -
chrome 开启HEVC硬件解码
通过上文配置好的快捷键(一定要从入口打开)打开chrome,输入支持HEVC的视频网址(哔哩哔哩有很多HEVC视频),这里采用我们项目的播放器,播放前端HEVC的摄像机视频,能够正常播放,查看GPU使用情况,GPU VIDEO DECODE项有波动,说明已开启硬件解码。安装完成后,打开如下图,如果有红框内容,则表示支持HEVC。有红框的内容,说明配置成功。原创 2022-09-20 19:10:36 · 11532 阅读 · 3 评论 -
流媒体协议之RTSP详解
RTSP(Real Time Streaming Protocol):实时流媒体协议,是由Real network 和 Netscape共同提出的如何有效地在IP网络上传输流媒体数据的应用层协议,RTSP提供一种可扩展的框架,使能够提供能控制的,按需传输实时数据,如音频流、视频流、metadata;遵循规范IETF RFC 2326,4567,6064,其语法和操作参考了HTTP/1.1,基于文本的协议,采用ISO10646字符集,使用UTF-8编码;承载RTSP的传输层协议为TCP,默认端口554;原创 2022-09-19 09:54:25 · 21347 阅读 · 5 评论 -
RTP和RTCP详解
在流媒体相关的领域,我们进场会看到RTP/RTCP,其用于流式传输的最常见的码流传输协议,位于传输层之上,控制流媒体码流传输。RTP经常与RTCP成对使用,广泛应用于流媒体相关的通讯和娱乐,包括电话、视频会议、电视和基于网络的一键通业务。RTCP(Realtime Transport Control Protocol)实时传输控制协议,实现服务质量的监视与反馈、媒体间的同步,以及多播组中成员的标识,其协议规范在IETF RFC3550中定义。原创 2022-09-19 09:51:40 · 5801 阅读 · 3 评论 -
fmp4打包H265视频流
本文主要描述fmp4封装H265的方式,主要对与H264封装的区别部分进行描述,有关相同部分可参照我的另一篇文章fmp4封装和264详解原创 2022-09-16 13:57:30 · 214729 阅读 · 3 评论 -
视频流PS打包方式详解
PS流: Program Stream(节目流),简称PS流,将一个或多个分组但有共同的时间基准的基本数据流(PES)合并成一个整体流,由PS包组成,而一个PS包又由若干个PES包组成(到这里,ES经过了两层的封装)。PS包的包头中包含了同步信息与时钟恢复信息。一个PS包最多可包含具有同一时钟基准的16个视频PES包和32个音频PES包。ES流: Elementary Stream(基本码流),是由编码器输出的原始基础码流,它只含有解码器所必需的、并与原始图象或原始音频相接近的信息。原创 2022-08-23 20:33:30 · 213608 阅读 · 2 评论 -
fmp4打包H264详解
MP4(MPEG-4 Part 14)是在“ISO/IEC 14496-14”标准文件中定义的,属于流媒体文件打包的一种方式;针对流式传输场景,分段的mp4格式,越来越多的被应用,本位主要针对fmp4进行H264打包进行详细说明原创 2022-08-18 13:45:08 · 214988 阅读 · 1 评论 -
H265码流RTP封装方式详解
有关H265编码知识不做详细描述,这里主要介绍和RTP相关的知识,主要指NALU头部解析及类型介绍。H265NALU头部格式如下与h264的nal层相比,h265的nalunitheader有两个字节构成,从图中可以看出hHEVC的nal包结构与h264有明显的不同,hevc加入了nal所在的时间层的ID,取去除了nal_ref_idc,字段解释如下F禁止位,1bit(最高位15位),必须是0,为1标识无效帧Type帧类型,6bits(9~14位),0-31是vclnal单元;......原创 2022-07-27 17:26:11 · 214590 阅读 · 1 评论 -
H264码流RTP封装方式详解
在流媒体传输领域,经常使用的传输协议是RTP/RTCP,本文将对RTP对H264进行封装的过程进行详解原创 2022-07-27 17:23:16 · 215612 阅读 · 1 评论 -
h264和h265视频流SDP描述详解
SDP(Session Description Protocol)会话描述协议,基于RTSP/GB28181 SIP等流媒体描述一般都采用SDP协议,本文主要讲解下H264和H265裸流在SDP中式怎样描述的原创 2022-07-27 17:16:41 · 2213 阅读 · 0 评论 -
H265(HEVC) nal 单元头介绍及rtp发送中的fu分组发送详解
h265(HEVC)nal单元头介绍,及h265视频数据传输,通过rtp传输时fu分组包头结构介绍原创 2015-02-10 21:21:51 · 29623 阅读 · 6 评论