音视频流媒体
文章平均质量分 55
惊群
桃李不言,下自成溪
展开
-
ffmpeg解码h264流数据并用opencv显示
最近再做一个项目,需要播放服务端传过来的h264裸流数据,于是做了一个简易的播放器,采用ffmpeg解码h264并用opencv显示图像。实现原理很简单,就是接收到一个完整的h264帧之后传给ffmpeg的AVPacket,然后调用avcodec_send_packet()和avcodec_receive_frame()解码,得到一个AVFrame,然后调用sws_scale()把解码后的yuv图像转换成opencv能使用的RGB图像,然后每解码转换一帧数据就调用一次cv::imshow()显示...原创 2021-03-25 10:44:47 · 4627 阅读 · 4 评论 -
海康、国标PS流数据解析
最近做的一个项目,需要对接海康摄像头传过来的视频数据,经过分析知道传过来的是PS封装后的数据,不能直接播放,需要把PS流解析成h264裸流。经过研究有两种方法:1.直接扔给ffmpeg解析,这种方法需要用AVIOContext自定义输入;2.自己解析PS流,这种方法比较直接,只要熟悉PS解析的流程就可以做。我两种方法都实现了,刚开始是用ffmpeg,后来发现因为需要开线程,异步读写,复杂性较高,最主要是因为出现一个内存一直上涨的问题一直没解决,然后想着能不能自己解析PS,于是网上找了很多资料,终于也...原创 2021-03-19 11:19:54 · 2857 阅读 · 4 评论 -
rtmp 协议详解
rtmp 协议详解1. handshake1.1 概述rtmp 连接从握手开始。它包含三个固定大小的块。客户端发送的三个块命名为 C0,C1,C2;服务端发送的三个块命名为S0,S1,S2。握手序列:客户端通过发送 C0 和 C1 消息来启动握手过程。客户端必须接收到 S1 消息,然后发送 C2 消息。客户端必须接收到 S2 消息,然后发送其他数据。 服务端必须接收到 C0 或者 C1 消息,然后发送 S0 和 S1 消息。服务端必须接收到 C2 消息,然后发送其他数据。握手示意转载 2020-11-22 21:52:32 · 552 阅读 · 0 评论 -
【视频】H.264 NALU简介
【视频】H.264 NALU简介一、简介 在H.264/AVC视频编码标准中,整个系统框架被分为了两个层面:视频编码层面(VCL)和网络抽象层面(NAL)。其中,前者负责有效表示视频数据的内容,而后者则负责格式化数据并提供头信息,以保证数据适合各种信道和存储介质上的传输。因此我们平时的每帧数据就是一个NAL单元(SPS与PPS除外)。在实际的H264数据帧中,往往帧前面带有00 00 00 01 或 00 00 01分隔符,一般来说编码器编出的首帧数据为PPS与SPS,接着为I帧……...转载 2020-11-19 15:07:28 · 244 阅读 · 0 评论 -
AAC的ADTS头解析
AAC的ADTS头解析1. ADTS(Audio Data Transport Stream)头之于AACAAC音频文件的每一帧都由一个ADTS头和AAC ES(AAC音频数据)组成。AAC数据帧2. ADTS头分析ADTS头包含了AAC文件的采样率、通道数、帧数据长度等信息。ADTS头分为固定头信息和可变头信息两个部分,固定头信息在每个帧中的是一样的,可变头信息在各个帧中并不是固定值。ADTS头一般是7个字节((28+28)/ 8)长度,如果需要对数据进行CRC校验,则会有2个By转载 2020-11-19 15:03:38 · 340 阅读 · 0 评论 -
RTP协议分析
RTP协议分析第1章.RTP概述1.1.RTP是什么RTP全名是Real-time Transport Protocol(实时传输协议)。它是IETF提出的一个标准,对应的RFC文档为RFC3550(RFC1889为其过期版本)。RFC3550不仅定义了RTP,而且定义了配套的相关协议RTCP(Real-time Transport Control Protocol,即实时传输控制协议)。RTP用来为IP网上的语音、图像、传真等多种需要实时传输的多媒体数据提供端到端的实时传输服务。...转载 2020-11-19 14:51:34 · 296 阅读 · 0 评论 -
flv格式详解+实例剖析
flv格式详解+实例剖析(转载自https://www.cnblogs.com/lidabo/p/9018548.html)简介FLV(Flash Video)是现在非常流行的流媒体格式,由于其视频文件体积轻巧、封装播放简单等特点,使其很适合在网络上进行应用,目前主流的视频网站无一例外地使用了FLV格式。另外由于当前浏览器与Flash Player紧密的结合,使得网页播放FLV视频轻而易举,也是FLV流行的原因之一。FLV是流媒体封装格式,我们可以将其数据看为二进制字节流。总体上看,FLV包转载 2020-11-19 14:42:05 · 712 阅读 · 0 评论