
音视频学习
文章平均质量分 74
音视频学习
却道天凉_好个秋
这个作者很懒,什么都没留下…
展开
-
音视频学习(三十二):VP8和VP9
发布者:Google(2013年开源)定位开放的高效视频压缩标准(H.265 竞争者)应用YouTube(主流编码格式)Chrome、Firefox、Edge、Android 原生支持WebRTC(与 VP8 并存)支持 WebM 封装格式(.webm)原创 2025-04-06 21:20:34 · 881 阅读 · 0 评论 -
音视频学习(三十一):DASH协议
DASH 是 HTTP 传输协议,不依赖专用流媒体服务器。支持自适应码率,确保流畅播放。适用于 VOD 和直播,兼容各种编码格式。播放器支持需要额外集成(如 dash.js、Shaka Player)。原创 2025-03-30 19:49:20 · 1058 阅读 · 0 评论 -
音视频学习(三十):fmp4
FMP4 适用于流媒体传输,支持按片段加载,提高播放灵活性。主要由moov(初始化)和(片段)组成。广泛应用于 HLS(CMAF)和 DASH,降低延迟,提高兼容性。原创 2025-03-23 22:00:49 · 709 阅读 · 0 评论 -
音视频学习(二十九):YUV与RGB
YUV 和 RGB 是两种不同的颜色表示方式,主要用于图像和视频处理。原创 2025-03-18 22:44:43 · 490 阅读 · 0 评论 -
音视频学习(二十八):websocket-flv
flv.jsflv协议:https://blog.youkuaiyun.com/www_dong/article/details/128166528。原创 2024-12-25 21:29:56 · 1475 阅读 · 0 评论 -
音视频学习(二十七):SRT协议
SRT(Secure Reliable Transport)是一种开源的网络传输协议,专为实时音视频数据传输设计,具有低延迟、高可靠性和安全性等特点。原创 2024-12-20 21:58:53 · 1417 阅读 · 1 评论 -
音视频学习(二十六):http-flv
FLV 是一种容器格式,主要用于存储视频和音频数据,最早由 Adobe 用于 Flash 播放器的视频流播放。FLV 文件可以包含多种编码格式的视频(如 H.264)和音频(如 MP3 或 AAC)流,便于在 Flash 播放器上流式传输。尽管 Flash Player 已经被淘汰,FLV 格式仍然在一些直播和点播服务中被使用,尤其是在 Flash 被广泛应用于早期的 Web 视频和直播平台中。HTTP-FLV 是通过 HTTP 协议传输 FLV 视频流的技术方案。原创 2024-12-18 22:46:06 · 1314 阅读 · 0 评论 -
音视频学习(二十五):ts
TS(Transport Stream)是一种为广播和流媒体应用设计的容器格式,具有高容错性和灵活性,能够承载视频、音频、字幕等多种数据流。它常用于卫星电视、广播电视、视频流传输等场景。文件扩展名.ts。基本组成:TS 文件将视频和音频编码流(如 H.264、AAC)分割成固定大小的小数据包(通常为 188 字节)。每个数据包包含一个或多个编码流的包头和数据负载。TS 文件(Transport Stream)原创 2024-12-18 22:30:42 · 1073 阅读 · 0 评论 -
音视频学习(二十四):hls协议
HLS协议通过将视频文件切分成多个小的媒体段(通常是10秒左右的.ts文件),并通过HTTP传输给客户端。视频播放过程中,客户端按顺序请求这些小段文件来逐步播放整个视频流。HLS还支持多种码率,以便适应不同网络条件的动态调整(自适应流)。原创 2024-12-18 22:13:51 · 1645 阅读 · 0 评论 -
音视频学习(二十三):srs+ffmpeg实现rtmp的推拉流
rtmp协议:https://blog.youkuaiyun.com/www_dong/article/details/131026072rtmp收流:https://blog.youkuaiyun.com/www_dong/article/details/135073488rtmp发流:https://blog.youkuaiyun.com/www_dong/article/details/135254847。原创 2024-12-15 15:31:53 · 1064 阅读 · 0 评论 -
音视频学习(二十二)——rtmp发流(tcp方式)
本文主要介绍自研的RtmpStreamSender.dll,rtmp库提供接口接收裸流数据,支持将裸流数据封装为flv格式并通过rtmp协议发流。关于rtmp协议基础介绍可查看:https://blog.youkuaiyun.com/www_dong/article/details/131026072关于rtmp收流介绍可查看:https://blog.youkuaiyun.com/www_dong/article/details/135073488。原创 2023-12-27 20:18:54 · 918 阅读 · 0 评论 -
音视频学习(二十一)——rtmp收流(tcp方式)
本文主要介绍rtmp协议收流流程,在linux上搭建rtmp服务器,通过自研的rtmp收流库发起取流请求,使用ffmpeg+qt实现视频流的解码与播放。关于rtmp协议基础介绍可查看:https://blog.youkuaiyun.com/www_dong/article/details/131026072。原创 2023-12-18 22:51:31 · 1583 阅读 · 0 评论 -
音视频学习(二十)——rtsp收流(udp方式)
本文主要介绍通过udp方式实现rtsp拉流。原创 2023-12-07 21:31:14 · 1557 阅读 · 0 评论 -
音视频学习(十九)——rtsp收流(tcp方式)
本文主要介绍以tcp方式实现rtsp拉流。原创 2023-11-28 21:55:40 · 1360 阅读 · 0 评论 -
音视频学习(十八)——使用ffmepg实现视音频解码
【代码】音视频学习(十八)——使用ffmepg实现视音频解码。原创 2023-11-18 21:56:25 · 710 阅读 · 0 评论 -
音视频学习(十七)——rtmp协议
同一个Message产生的多个Chunk只会串行发送,先发送的Chunk一定先到达。不同Message产生的Chunk可以并行发送。并行发送的Chunk复用了一条TCP链接从下图中可以看出,发送端同时发送了3个chunk增加抓包实例发送端、服务端(1)发送端把数据封装成消息(Message):协议控制消息、用户控制消息、音视频数据消息等。把消息分割成消息块(Chunk,网络中实际传输的内容)。将分割后的消息块(Chunk)通过TCP协议发送出去。转载 2023-06-03 21:40:34 · 661 阅读 · 0 评论 -
音视频学习(十六)——rtp over tcp简介
rtp over tcp简介原创 2023-01-30 21:27:28 · 1640 阅读 · 0 评论 -
大华设备网络sdk录像偏移接口问题总结
大华设备网络sdk录像偏移接口问题修改原创 2023-01-10 21:37:04 · 796 阅读 · 0 评论 -
音视频学习(十五)——ffmpeg+sdl实现视频播放
ffmpeg+sdl实现视频播放原创 2022-12-12 22:07:37 · 1403 阅读 · 2 评论 -
音视频学习(十四)——rtsp详解
rtsp介绍原创 2022-12-05 19:53:47 · 3090 阅读 · 0 评论 -
音视频学习(十三)——flv详解
flv详解原创 2022-12-03 21:09:50 · 2018 阅读 · 0 评论 -
音视频学习(十二)——QUIC协议
QUIC协议介绍转载 2022-10-09 21:50:37 · 1081 阅读 · 0 评论 -
音视频学习(十一)——H265视频码流
h265码流简要分析转载 2022-10-09 21:33:28 · 2300 阅读 · 0 评论 -
音视频学习(十)——ps流
PS的封装格式需要支持MPEG2/MPEG4/H.264等视频和MPEG系列的音频,支持在多个层次加入私有数据,方便解码、拖动和加入延时,同时考虑到标准的间的相互转换,提高处理效率。转载 2022-07-25 21:36:25 · 2277 阅读 · 0 评论 -
海康、大华、宇视拉实时流url规则总结
海康、大华、宇视拉实时流url规则总结。原创 2022-07-20 21:17:00 · 1345 阅读 · 0 评论 -
vlc报错——“live555 error: no data received in 10s, aborting”
vlc作为rtsp客户端向自研的rtsp服务端请求实时数据。原创 2022-07-20 21:15:04 · 1396 阅读 · 0 评论 -
音视频学习(九)——RTCP协议
包含CNAME项的SDES包必须包含在美国组合RTCP包中。SDES包可能包括其他源描述项,这要根据特别的应用需要,并同时考虑带宽限制。3)WebRTC中的SDES。转载 2022-07-17 22:35:31 · 566 阅读 · 0 评论 -
音视频学习(七)——AAC音频码流
Audio Data Interchange Format 音频数据交换格式。这种格式的特征是可以确定的找到这个音频数据的开始,不需进行在音频数据流中间开始的解码,即它的解码必须在明确定义的开始处进行。故这种格式常用在磁盘文件中。Audio Data Transport Stream。是AAC音频的传输流格式。这种格式的特征是它是一个有同步字的比特流,解码可以在这个流中任何位置开始。ADTS可以在任意帧解码,也就是说它每一帧都有头信息。ADIF只有一个统一的头,所以必须得到所有的数据后解码。且这两种的hea转载 2022-07-12 22:31:37 · 1141 阅读 · 0 评论 -
音视频学习(六)——PCM音频基础
PCM(Pulse Code Modulation),脉冲编码调制。人耳听到的是模拟信号,PCM是把声音从模拟信号转化为数字信号的技术。原理是用一个固定的频率对模拟信号进行采样,采样后的信号在波形上看就像一串连续的幅值不一的脉冲(脉搏似的短暂起伏的电冲击),把这些脉冲的幅值按一定精度进行量化,这些量化后的数值被连续的输出、传输、处理或记录到存储介质中,所有这些组成了数字音频的产生过程(抽样、量化、编码三个过程)。PCM(Pulse Code Modulation,脉冲编码调制)音频数据是未经压缩的音频采样数转载 2022-07-12 22:29:37 · 2747 阅读 · 0 评论 -
音视频学习(五)——H.264视频码流
帧内编码帧 ,I帧表示关键帧,你可以理解为这一帧画面的完整保留;解码时只需要本帧数据就可以完成(因为包含完整画面)。前向预测编码帧。P帧表示的是这一帧跟之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。(也就是差别帧,P帧没有完整画面数据,只有与前一帧的画面差别的数据)。P帧是以I帧为参考帧,在I帧中找出P帧“某点”的预测值和运动矢量,取预测差值和运动矢量一起传送。在接收端根据运动矢量从I帧中找出P帧“某点”的预测值并与差值相加以得到P帧“某点”样值,从而可得到转载 2022-07-08 22:04:21 · 1509 阅读 · 0 评论 -
音视频学习(四)——RGB、YUV视频像素数据
RGB是红、绿、蓝三原色,任何颜色都可以通过这三原色按不同比例混合出来。但在科学研究一般不采用RGB颜色空间,因为它的细节难以进行数字化的调整。它将亮度、色调、饱和度三个量放在一起表示,很难分开。在 YUV 空间中,每一个颜色有一个亮度信号 Y,和两个色度信号 U 和 V。亮度信号是强度的感觉,它和色度信号断开,这样的话强度就可以在不影响颜色的情况下改变,占用的存储空间对于RGB也较小。用16个bit表示一个像素,最高位不用,5个bit表示R(红色),5个bit表示G(绿色),5个bit表示B(蓝色),那么转载 2022-07-08 22:02:31 · 1558 阅读 · 0 评论 -
音视频学习(三)——sip协议
SIP协议全称“会话发起协议”,属于应用层控制协议。它规定一个或多个参与方的终端进行交互通信的标准,能够建立、修改和中断连接实现视频、语音、即时通讯等,在OSI模型中位于会话层,如下图所示: 是一种什么协议?SIP协议的消息是基于文本的协议,标准的消息由开始行、消息头和消息体组成,分为请求消息和响应消息,区别在于消息的起始行是否包含状态信息。SIP请求消息定义了6种方法:响应消息有6种,包含临时应答、请求成功、位置异常通知、请求失败通知、服务器故障或全局错误。SIP协议支持消息扩展,消息类型、消息头和消息体转载 2022-06-23 21:31:41 · 2873 阅读 · 0 评论 -
音视频学习(二)——帧率、码流和分辨率
帧率是每秒显示图像的数量。每一帧是一幅静止的图像,快速连续的显示多帧便形成了运动的"假象"。每秒钟帧数越多,FPS值越高,所显示的视频动作就会越流畅,码流需求就越大。视频数据在单位时间内的数据流量大小,也叫码率,它是视频编码画面质量控制中最重要的部分。同样的分辨率和帧率下,视频数据的码流越大,压缩比就越小,画面质量就越高。图像的大小或尺寸。常见的分辨率有4CIF(704*576)、CIF(352*288)、QCIF(176*144)、VGA(640*480)和百万像素(1920*1080)。在成像的两组数字原创 2022-06-19 22:26:00 · 921 阅读 · 0 评论 -
音视频学习(一)——PTZ控制原理
解码器收到矩阵主机控制器发来的控制信号,解码为电压信号,该电压信号直接驱动摄像机及云台的PTZ操作。原创 2022-06-19 21:28:36 · 1331 阅读 · 0 评论 -
音视频播放器设计(四)——ffmpeg音频处理流程
QAudioFormat:设置音频的格式相关信息,如采样率、采样位数、通道数等信息。QAudioOutput:控制音频的播放、暂停、设置和获取音量等。QIODevice:所有输入输出IO类的基础类,为IO类提供了统一的调用接口。停止音频音频播放使用QAudioOutput的接口resume/suspend来恢复/继续播放音频。音频写入缓冲音频解码查找解码器音频解码通过avcodec_send_packet接口同时发送音视频,avcodec_receive_frame接收解码后的数据。通原创 2022-06-16 21:25:55 · 906 阅读 · 0 评论 -
音视频播放器设计(三)——OpenGL绘制视频
前言视频绘制使用的qt的QOpenGLWidget,QOpenGLWidget已经对OpenGL做了封装处理,这里主要介绍代码的处理。YUV转RGBsws_getContext功能多路码流转换,为每个不同的码流都指定一个不同的转换上下文。函数struct SwsContext *sws_getContext( int srcW, /* 输入图像的宽度 */ int srcH,原创 2022-05-07 20:12:13 · 1441 阅读 · 0 评论 -
音视频播放器设计(二)——ffmpeg视频处理流程
编解码流程图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q994qaTL-1651582640960)(C:\Users\无心\AppData\Roaming\Typora\typora-user-images\image-20220428204434885.png)]ffmpeg库分析libavcodec 编码/解码库libavfilter 基于图的框架编辑库libavformat I/O 和复用/解复用库libavdevice 特殊原创 2022-05-03 20:59:40 · 1642 阅读 · 0 评论 -
音视频播放器设计(一)——环境配置
环境准备vs2019# 下载地址https://visualstudio.microsoft.com/zh-hans/downloads/QT5.12.6# 下载地址https://download.qt.io/archive/qt/5.12/5.12.6/qt插件# 下载地址(qt-vsaddin-msvc2019-2.7.1.vsix)https://download.qt.io/archive/vsaddin/2.7.1/FFMpeg# 下载地址(已编译好的版本---3.4原创 2022-04-27 20:14:09 · 1359 阅读 · 0 评论 -
视频编解码——编码流程介绍
为什么需要编码?原始视频数据很庞大,比如一个150分钟,30FPS,分辨率为720✖480的彩色电影需要占用280GB。无论是物理存储还是网络传输,这都是难以负担的。所以需要编码进行压缩。编码方式一般有两种编码方式:熵编码(entropy coding,以无损的方式将视频压缩到香农极限)和有损编码(lossy coding,删除冗余数据和不重要的数据)。熵编码的压缩率是有限的,但是得益于人类的视觉系统可以容忍细节丢失,有损压缩通常很有效。典型的编解码码流程下图展示了编解码的整体流程。摄转载 2021-03-24 17:12:33 · 2280 阅读 · 0 评论 -
YUV420数据格式详解
YUV简介YUV格式有两大类:planar和packed。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交叉存储的。YUV分为三个分量,Y表示明亮度(Luminance或Luma),也就是灰度值;而U和V表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。与我们熟知的RGB类似,YUV也是一种颜色编码方法,主要用于电视系统以及模转载 2021-03-23 22:55:54 · 14005 阅读 · 0 评论