自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 音视频封装格式总结

音视频常用封装格式

2022-10-08 15:38:03 167 1

原创 音视频协议总结

音视频通信协议总结

2022-10-08 15:33:33 1809

原创 ffmpeg 硬件加速编译

2022-07-19 21:03:29 213

原创 RTMP推流AAC

1.AAC结构详解https://blog.csdn.net/u012538729/article/details/113485494?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_ecpm_v1~rank_v31_ecpm-9-113485494.pc_agg_new_rank&utm_term=aac%E7%A0%81%E6%B5%81%E5%88%86%E6%

2022-03-27 20:39:27 940

原创 RTMP推流H.264

t通过对以下内容的学习完成H.264的推流1.H.264格式分析https://time.geekbang.org/column/article/4616582.FLV格式分析https://blog.csdn.net/weixin_42462202/article/details/886618833.RTMP格式分析https://blog.csdn.net/m0_37599645/article/details/1160822104.H.264封装成FLVhttps://

2022-03-10 14:40:57 631

转载 WEBRTC--windows下载及编译

1.visual studio环境准备(1)visual studio 下载(2017以上版本)安装VS时选择自定义安装,注意事项:必须勾选Desktop development with C++组件中10.0.18362或以上的Win10 SDK,后面还要安装调试工具 必须勾选Desktop development with C++组件中MFC以及ATL这两项 下载路径最好默认C盘后续,不然创建D:/visual studio 2019/2019/Community,并作为下载路径(2)

2021-12-30 19:57:17 935

原创 并发、进程与线程

并发:一个程序可以同时执行多个独立任务。并发以前实现办法,单核CPU,每个任务轮流执行,涉及每个任务切换(上下文切换),有时间开销(保存每个任务当前状态);多核CPU(硬件并发),不同任务在不同核上运行。提高效率核性能进程:一个可执行程序运行起来,即创建一个进程。线程:可以理解为执行代码的通道主线程:每一个进程都会自动创建唯一一个主线程,运行程序时,主线程来执行(调用)main函数执行代码子线程:除了主线程外,还可以创建其他通道来执行程序,和子线程一起执行,使计算机不同时刻可以做不同事情。

2021-12-07 16:41:50 373 1

转载 音视频同步基础——FFMPEG时间戳

文章出处:FFmpeg时间戳详解 - 叶余 - 博客园1. I 帧/P 帧/B 帧I 帧:I 帧(Intra-coded picture, 帧内编码帧,常称为关键帧)包含一幅完整的图像信息,属于帧内编码图像,不含运动矢量,在解码时不需要参考其他帧图像。因此在 I 帧图像处可以切换频道,而不会导致图像丢失或无法解码。I 帧图像用于阻止误差的累积和扩散。在闭合式 GOP 中,每个 GOP 的第一个帧一定是 I 帧,且当前 GOP 的数据不会参考前后 GOP 的数据。P 帧:P 帧(Predictiv

2021-11-16 21:55:06 1366

原创 QT实现像素数据播放(二)

前面一篇记录了最后实现的像素数据播放器方案,在实现最后一版前还有两个版本,在这里记录一下。方案一利用Qpainter实现画图,但是经查阅资料,QPainte实现rYUV / RGB 转换费CPU(QLabel也存在这个问题);QPainter大面积绘制效率不高。功能:播放、暂停、停止界面设计:一共三个按键 播放、暂停、停止多线程部分与前一篇博客一致,这里只记录qt播放器的代码qtwidegt.h#pragma once#include <QtWidge...

2021-11-15 22:52:31 355

原创 基于QT的YUV/RGB的播放器

对最近学习音视频的一点成果汇总,前面对雷神的一些项目进行了复现,但是将像素数据用SDL渲染后在QT上利用 Qlabel展现出来的时候效果不是很好,画质上面有点失真。然后查找资料,做了一个像素数据播放器。1.实现的播放器的功能(1)从文件夹获取文件路径;(2)读取yuv与rgb文件;(3)将像素数据一帧一帧播放出来;(4)设置视频的宽高以及播放速度(5)视频暂停和退出;2.涉及知识点(1)QT的基础知识点(创建ui、控件、布局、控件设置)(2)YUV数据和r...

2021-11-14 21:53:09 2546 1

原创 像素格式RGB与YUV

1.RGB像素格式RGB彩色模式是一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,这个标准几乎包括了人类视力所能感知的所有颜色,是运用最广的颜色系统之一。RGB显色模式大多应用在电子屏幕上,每一个像素点都是由R\G\B三种颜色叠加而成。存储表示时对每一种颜色进行256级量化,每一个颜色可以用一个8位的二进制数进行存储和表示,常用RGB颜色模式有RGB24位,以及RGB32。RGB24是指...

2021-10-25 20:08:35 5071

原创 Ffmpeg\ffplayer\ffprobe基础命令

ffmpeg:Hyper fast Audio and Video encoder超快音视频编码器(类似爱剪辑)ffplay:Simple media player简单媒体播放器ffprobe:Simple multimedia streams analyzer简单多媒体流分析器命令行使用Ffmpeg/ffplay/ffprobe -h(-h/-h long/-h full/ -h type==name) 查看信息usage:ffmpeg [options..

2021-10-18 19:42:40 2757

原创 音视频开发调研和学习路线

音视频开发1.音视频开发1.1音视频开发是做什么的音视频开发就是将我们摄像机、麦克风采集到的画面(视频像素数据,YUV格式)和声音(音频采用数据,PCM格式),通过编码算法进行压缩后(视频压缩为H.264\MPEG4,音频压AAC/MP3),再进行封装为固定格式(FLV,MP4,AVI),通过网络传输到用户端(rtmp,RTSP),在用户端对封装的数据(FLV,MP4,AVI)进行解封为音频数据AAC/MP3和视频数H.264\MPEG4,再通过解码算法恢复为采集到的格式(PCM,YUV),再通

2021-10-14 11:24:19 871

原创 推荐系统基础知识

推荐系统基础知识推荐系统就是联系用户和物品,解决信息过载问题。一个完整的推荐系统一般存在三个参与方:用户、物品提供者、提供推荐系统的网站。基于三方从不同角度出发,提出不同的指标,这些指标包括准确率、覆盖率、用户满意度、新颖度、惊喜度、信任度、透明度实时性、健壮性等,这些指标的有的可以通过离线实验计算、用户调查问卷、在线实验,一个推荐系统的成功上线需要完成这三个以上步骤。准确率:预测评分,可以退通过均方根误差(RMSE)、平方绝对误差(MAE)计算;TOPN推荐,可以通过准确率/召回率度量;覆盖率:描

2021-10-09 21:59:57 324

原创 C++数据结构--队列

基础知识队列是一种特殊的线性表,里边的元素实现先进先出。1.自己实现的数据结构1.1数组实现队列#pragma once#ifndef QUEUE#define QUEUE#define MAXLEN 100#include<iostream>using namespace std;struct Array { int* base;//定义数组的基地址 int front;//循环队列的头指针,删除时头指针加1,在非空,永远指对头元素 int rear;//循环队列的

2021-09-10 15:11:50 87

原创 C++数据结构--栈

栈(stack)是一种特殊的线性表,先入栈的元素最后出去(FILO),仅在表尾及逆行插入和删除,表尾称为栈顶(top),表头称为栈底(bottom)。基本操作:构造空栈、销毁栈、清空栈、去栈顶元素、入栈、出栈、遍历栈。1.顺序栈的实现顺序栈是指利用顺序存储结构实现的栈,同时附设指针top表示栈顶元素,如果top=base,则为空栈。1.1自己定义的栈数据结构1.1.1stack.h#pragma once#ifndef STACK#define STACK#include<iostr

2021-09-08 20:08:13 366

原创 C++数据结构--顺序表

基础知识顺序表是用顺序存储结构来表示元素之间的线性关系。顺序表主要由数组和数组长度两部分构成。常用的操作:初始化、取值、查询、插入、删除、清空等操作。线性表的顺序表在c++的STL库中可以用vector 来实现#include<vector>以下是自己定义的顺序表数据结构1.头文件sqlist.h#pragma once#ifndef SQLIST#define SQLIST#define MAXLEN 100struct sqlist{ int *elem;//首元

2021-09-08 15:01:27 1211

原创 C++数据结构---单链表

C++数据结构—单链表基础知识单链表是线性表的一种,是指用链式存储结构表示线性关系,使逻辑上相邻的元素在结构上也相邻。线性关系是指除了首元元素和尾元元素,任何结点都只有一个一个前驱和一个后继,首元没有前驱尾元没有后继。链式存储结构不同与顺序存储结构其存储空间不是一片连续的存储单元,每个空间除了存储数据信息,还要存储数据的逻辑关系。所以用一个结点来表示,每个结点包含数据域和指针域,数据域用于存储元素本身,指针域定义了一个指针,用于指向元素的下一个结点(指向后继),从而形成链式结构。根据链表结点所含指

2021-09-08 10:06:31 1211

空空如也

空空如也

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

TA关注的人

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