自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

崔杰城的博客

———崔杰城写字的地方

  • 博客(193)
  • 资源 (15)
  • 收藏
  • 关注

原创 音视频入门基础:H.264专题(16)——FFmpeg源码中,判断某文件是否为H.264裸流文件的实现

FFmpeg是怎样判断出某个文件是否为AnnexB格式的H.264裸流呢?它内部其实是通过h264_probe函数来判断的。AnnexB格式的H.264裸流对应的解析函数就是h264_probe函数

2024-07-22 18:06:36 265

原创 音视频入门基础:H.264专题(15)——FFmpeg源码中通过SPS属性获取视频帧率的实现

FFmpeg源码中计算视频帧率的实现

2024-07-21 18:09:58 232

原创 FFmpeg源码:av_probe_input_format3函数分析

av_probe_input_format3函数是FFmpeg中实现容器格式检测的函数,其内部通过循环while ((fmt1 = av_demuxer_iterate(&i))) 拿到所有容器格式对应的AVInputFormat结构,然后通过score = fmt1->read_probe(&lpd)语句执行不同容器格式对应的解析函数,根据是否能被解析,以及匹配程度,来判断出这是哪种容器格式。

2024-07-21 18:09:28 649

原创 音视频入门基础:H.264专题(14)——计算视频帧率的公式

H.264编码的视频,无论其SPS中的fixed_frame_rate_flag值为多少,视频帧率的计算公式都是:视频帧率 = time_scale / (2 * num_units_in_tick)

2024-07-16 00:15:00 851

原创 音视频入门基础:H.264专题(13)——FFmpeg源码中通过SPS属性获取视频色彩格式的实现

FFmpeg源码中通过SPS属性获取视频色彩格式的实现

2024-07-14 16:09:41 1027

原创 VsCode远程ssh连接失败:Could not establish connection to XXX

VsCode远程ssh连接失败:Could not establish connection to XXX

2024-07-14 16:09:03 336

原创 音视频入门基础:H.264专题(12)——FFmpeg源码中通过SPS属性计算视频分辨率的实现

本文讲解FFmpeg源码中计算视频分辨率的实现。

2024-07-11 19:15:00 1009

原创 音视频入门基础:H.264专题(11)——计算视频分辨率的公式

通过SPS中的属性计算H.264视频分辨率的公式

2024-07-11 00:15:00 862

原创 音视频入门基础:H.264专题(10)——FFmpeg源码中,存放SPS属性的结构体和解码SPS的函数分析

​FFmpeg源码对AnnexB包装的H.264码流解码过程中,通过ff_h2645_extract_rbsp函数拿到该H.264码流中的某个NALU的NALU Header + RBSP后,如果从其NALU Header判断出该NALU的类型为SPS,会调用ff_h264_decode_seq_parameter_set函数对其进行解码,把解码出来的SPS属性放到uint8_t *指针指向的缓冲区中。

2024-07-09 00:15:00 905

原创 FFmpeg源码:av_buffer_ref、av_buffer_unref函数分析

FFmpeg源码中通过av_buffer_ref函数增加AVBuffer的引用计数,av_buffer_unref减少引用计数。通过引用计数,避免了深拷贝的内存开销,又避免了浅拷贝堆的重复释放或内存泄露问题

2024-07-06 00:15:00 844

原创 FFmpeg源码:buffer_create、av_buffer_create、av_buffer_default_free、av_buffer_alloc、av_buffer_allocz函数分析

FFmpeg源码:buffer_create、av_buffer_create、av_buffer_default_free、av_buffer_alloc、av_buffer_allocz函数分析

2024-07-04 20:55:26 1053

原创 FFmpeg引用计数数据缓冲区相关的结构体:AVBuffer、AVBufferRef简介

AVBuffer是一个用于引用计数数据缓冲区的应用程序编程接口,它表示数据缓冲区本身。它是不透明的,不能被直接访问调用,只能通过AVBufferRef间接访问它。

2024-07-04 20:54:56 566

原创 音视频入门基础:H.264专题(9)——SPS简介

nal_unit_type为7的NALU是SPS(Sequence parameter set,序列参数集)

2024-07-03 00:15:00 340

原创 音视频入门基础:H.264专题(8)——H.264官方文档的描述符

H.264官方文档中描述符指定了NALU中每个语法元素的解析过程

2024-06-27 20:45:00 714

原创 音视频入门基础:H.264专题(7)——FFmpeg源码中 指数哥伦布编码的解码实现

FFmpeg源码中 指数哥伦布编码的解码实现:get_ue_golomb、get_ue_golomb_long、get_ue_golomb_31、get_se_golomb和get_se_golomb_long等函数

2024-06-27 19:30:00 1150

原创 音视频入门基础:H.264专题(6)——FFmpeg源码:从H.264码流中提取NALU Header、EBSP、RBSP和SODB

FFmpeg源码中 通过ff_h2645_packet_split这个函数将一个个NALU的NALU Header、EBSP、RBSP和SODB从H.264/H.265码流中提取出来,本文以H.264为例对该函数进行讲解。

2024-06-26 20:30:00 920

原创 FFmpeg字节操作相关的源码:GetByteContext结构体,bytestream2_init、bytestream2_get_bytes_left、bytestream2_tell函数分析

FFmpeg源码中使用GetByteContext结构体和相关的函数来对字节进行操作。比如FFmpeg按字节读取H.264码流时,会用到GetByteContext结构体,bytestream2_init、bytestream2_get_bytes_left、bytestream2_tell、bytestream2_skip等函数。

2024-06-25 20:45:00 790

原创 音视频入门基础:H.264专题(5)——FFmpeg源码中 解析NALU Header的函数分析

FFmpeg源码中 通过h264_parse_nal_header函数将H.264码流的NALU Header解析出来。下面对h264_parse_nal_header函数进行分析。

2024-06-25 19:15:00 1019

原创 音视频入门基础:H.264专题(4)——NALU Header:forbidden_zero_bit、nal_ref_idc、nal_unit_type简介

H.264的NALU Header:forbidden_zero_bit、nal_ref_idc、nal_unit_type简介

2024-06-25 19:00:00 992

原创 FFmpeg中位操作相关的源码:GetBitContext结构体,init_get_bits函数、get_bits1函数和get_bits函数分析

FFmpeg源码中使用GetBitContext结构体来对“位”进行操作。init_get_bits函数初始化GetBitContext结构体。get_bits1函数读取1位数据

2024-06-24 19:31:59 1204

原创 FFmpeg源码:get_bit_length函数分析

调用get_bit_length函数,可以得到nal->data指向的缓冲区的去掉补齐后的位数(bit),也就是NALU Header + SODB的位数。

2024-06-24 19:00:00 923

原创 FFmpeg源码:ff_ctz / ff_ctz_c函数分析

ff_ctz函数等价于ff_ctz_c函数。其作用是:如果形参v的值为0,返回0。否则将形参v转成二进制,返回其最后一个“1”后面“0”的个数。

2024-06-23 22:51:28 514

原创 FFmpeg源码:bytestream2_peek_be32函数分析

bytestream2_peek_be32函数作用是:如果g->buffer_start指向的缓冲区距离被读取到末尾 小于4个字节(g->buffer_end - g->buffer < 4),返回0。否则返回“按照大端模式 读取到的g->buffer指向的地方往后的4个字节”。

2024-06-21 21:05:04 708

原创 FFmpeg源码:AV_RB32宏定义分析

AV_RB32宏定义的作用是:按照大端模式 读取形参指向的缓冲区的前四个字节,并返回。

2024-06-21 20:20:43 974

原创 FFmpeg源码:ff_h2645_extract_rbsp函数分析

ff_h2645_extract_rbsp函数在H.264/H.265的解码时被调用。作用是将去掉第一个startcode的H.264/H.265码流(以下全部以H.264码流为例) 中的第一个NALU 提取出来,分别去掉和保留防竞争字节,存贮到形参nal 指向的缓冲区中。

2024-06-20 19:45:00 1043

原创 音视频入门基础:H.264专题(3)——EBSP, RBSP和SODB

EBSP, RBSP和SODB

2024-06-19 20:44:04 1200

原创 FFmpeg中内存分配和释放相关的源码:av_malloc函数、av_mallocz函数、av_free函数和av_freep函数分析

FFmpeg源码中av_malloc函数、av_mallocz函数、av_free函数和av_freep函数的底层实现原理分析

2024-06-17 21:30:00 1293

原创 音视频入门基础:H.264专题(1)——H.264官方文档下载

H.264官方文档下载

2024-06-09 10:50:48 531

原创 摄像机录制,所需存贮空间计算

某录制软件部署到学校,需要在某个时间段内同时对该学校的n个教室的所有摄像机进行软件录制,计算录制文件所需存贮空间。

2024-05-22 20:30:00 332

原创 音视频入门基础:像素格式专题(3)——FFmpeg源码解析BMP格式图片的底层实现原理

FFmpeg可以将图片或者媒体文件中的信息(比如图片或视频的分辨率,像素格式等信息)解析出来。本文以BMP格式的图片为例子,讲解FFmpeg解析图片的底层实现原理,通过本文也可以了解到FFmpeg的avformat_open_input函数和avformat_find_stream_info函数的内部实现原理。

2024-05-19 16:53:48 1209

原创 FFmpeg源码:#define IMAGEAUTO_DEMUXER(imgname, codecid) 宏定义分析

对FFmpeg源码中的 #define IMAGEAUTO_DEMUXER(imgname, codecid) 宏定义进行分析

2024-05-18 15:52:59 492

原创 FFmpeg源码:bytestream_get_byte函数分析

FFmpeg源码中经常使用到bytestream_get_byte这个函数,本文讲解函数bytestream_get_byte的作用和内部实现

2024-05-17 13:09:37 723

原创 音视频入门基础:像素格式专题(2)——不通过第三方库将RGB24格式视频转换为BMP格式图片

BMP取自位图Bitmap的缩写,也称为DIB(与设备无关的位图),是一种独立于显示器的位图数字图像文件格式。常见于微软视窗和OS/2操作系统,Windows GDI API内部使用的DIB数据结构与 BMP 文件格式几乎相同。BMP文件通常是不压缩的,所以它们通常比同一幅图像的压缩图像文件格式要大很多。例如,一张800×600分辨率的24位的BMP格式图片几乎占据1.4MB空间。因此它们通常不适合在因特网或者其他低速或者有容量限制的介质上进行传输。

2024-05-11 21:23:20 932

原创 音视频入门基础:像素格式专题(1)——RGB简介

三原色光模式(RGB color model,又称RGB表色系统、RGB颜色模型、红绿蓝颜色模型,是一种加色模型,将红(Red)、绿(Green)、蓝(Blue)三原色的色光以不同的比例相加混色,以合成产生各种色彩光。RGB颜色模型的主要目的是在电子系统中检测,表示和显示图像,比如电视和电脑,利用大脑强制视觉生理模糊化(失焦),将红绿蓝三原色子像素合成为一色彩像素,产生感知色彩(其实此真彩色并非加色法所产生的合成色彩,原因为该三原色光从来没有重叠在一起,只是人类为了“想”看到色彩,大脑强制眼睛失焦而形成。

2024-04-30 11:17:59 2376

原创 MySQL连接失败

针对该问题,我检查了接手软件的代码,发现代码存在bug,导致了偶发无法释放数据库连接。然后修改MySQL允许的最大连接数,修改MySQL启动参数文件:vi /etc/my.cnf,在最后一行加入:max_connections=300,这样就把MySQL的最大允许连接数从之前的151改成了300。然后经过上述修改后,发现日志再没有打印连接MySQL失败的问题,说明确实是由于连接数的问题导致的连接失败。最近接手了公司的一个软件项目,通过打印日志,发现该软件会偶发出现连接MySQL数据库失败的问题。

2024-04-23 21:00:00 410

原创 Linux根据时间删除文件或目录

执行完后,再次通过ls -l --time-style="+%Y-%m-%d %H:%M:%S" /home命令查看/home目录下的文件和目录,可以发现90天之前的文件和目录被删掉了。下面我做一些补充,讲述一个具体例子。以删除/home目录下的文件为例。通过date命令可以查看到当前系统时间是2024年3月28日。按照年月日时分秒的形式显示/home目录下的文件和目录。》已经讲述了根据时间删除文件或目录的方法。如果报错:遗漏“-exec”的参数。

2024-03-28 20:25:48 1476

原创 CentOS离线安装命令

某些CentOS安装后默认是没有部分Linux命令的,比如netstat和lsof:一般情况下我们可以通过yum install安装这些命令。但是在CentOS无法访问公网的时候(比如CentOS服务器部署在学校、军工等无法访问外网的环境),我们就只能通过离线安装的方式安装这些命令。

2024-03-27 21:11:08 914

原创 Windows下安装Kafka3

本文讲述Windows(win10)下安装Kafka3的方法。基本流程跟《》一样,也是一样需要先安装Java环境,再部署部署Kafka。首先在官网下载Kafka二进制压缩包。无论是在CentOS还是在Windows下都是下载该压缩包,里面已经包含了Kafka Linux和windows平台下的可执行文件了。选择目前比较新的3.6.1版本下载。

2024-03-12 07:23:41 1070

原创 CentOS下安装Kafka3

kafka是分布式消息队列,本文讲述其在centos(centos 7.5)下的安装。安装过程可以参考其官方文档首先在官网下载Kafka二进制文件(官网的压缩包里面已经包含了Linux和windows的Kafka可执行文件了),选择目前比较新的3.6.1版本下载。

2024-03-03 23:38:39 1074

原创 Wireshark不显示Thrift协议

使用Wireshark对thrift协议进行抓包。设置后,可以发现Wireshark里面显示的协议从Tcp变为Thrift了。将“当前”修改为Thrift,然后点击“确定”"右键" -> "Decode As"选择thrift的tcp端口。

2024-02-07 23:01:52 802

Test14E.rar

本资源为博文《windows下使用OpenGL实现yuv420p转rgb播放视频(三重纹理实现)》,链接:https://blog.csdn.net/u014552102/article/details/118524708?spm=1001.2014.3001.5501的附件资源。里面包含演示用的整个工程,包括所有代码, 依赖的OpenGL的库,演示用的媒体文件。

2021-07-07

Test1A.rar

本资源为博文《C++压缩库zipper的使用》(链接:https://blog.csdn.net/u014552102/article/details/112387107)的附件资源,使用本例子可以将文件和文件夹压缩为zip文件

2021-01-09

Android模拟器虚拟串口实现串口通信的附件资源.rar

本资源为博文《Android模拟器虚拟串口实现串口通信》(链接:https://blog.csdn.net/u014552102/article/details/107891689)的附件资源,包含windows平台的串口调试助手,安卓平台的串口调试助手和虚拟串口工具vspd。

2020-08-09

ffmpeg.rar

本资源为博主自己编译的,具有drawtext功能的FFmpeg。里面包含的ffmpeg.exe和dll,均具有drawtext功能。功能测试已通过。可在32位和64位系统运行。为根据博文《执行FFmpeg命令时报错:No such filter: 'drawtext'》链接:https://blog.csdn.net/u014552102/article/details/104442111,编译出来的FFmpeg

2020-02-23

QtGuiApplication2.rar

本文为博主的博文《通过调用外部程序(ffmpeg.exe)的方式获取本地媒体文件的信息》(链接为https://blog.csdn.net/u014552102/article/details/102535491)的资源文件,包含博文中所用的Qt+vs的工程,代码,引用的ffmpeg.exe和媒体文件。各位可以通过该资源和博主的博文学习通过调用外部程序(ffmpeg.exe)的方式获取本地媒体文件的信息

2019-10-13

博文《关于在Opengl中先平移后旋转和先旋转后平移的效果不一样的原因》的附件资源

本资源是博主的博文《关于在Opengl中先平移后旋转和先旋转后平移的效果不一样的原因》的附件资源,里面包含博文演示用的代码和vs工程。博文地址为https://blog.csdn.net/u014552102/article/details/88136574

2019-03-04

包含GlU32.Lib glut32.dll glut32.lib glut.dll glut.h glut.lib

本资源是博主的博文《fatal error C1083 无法打开包括文件 “gl/glut.h” No such file or directory的解决方法》的附件资源,博文地址为https://blog.csdn.net/u014552102/article/details/88074691。下载下来后可以解决上述问题。

2019-03-02

gl/glext.h

本资源是博主的博文《fatal error C1083 无法打开包括文件 “gl/glext.h” No such file or directory的解决方法》的附件资源,博文地址为https://blog.csdn.net/u014552102/article/details/87945819。下载下来后可以解决上述问题。

2019-02-26

播放YUV视频文件的工程

本资源是博主博文《windows下使用FFmpeg生成YUV视频文件并播放(通过命令的方式)》的附件资源,博文地址https://blog.csdn.net/u014552102/article/details/82926477,资源里面包含博文演示用的ffplay.exe,ffmpeg.exe工具,转换用的video1.mp4视频文件,和转换成功的video1.yuv文件,用户可以结合该资源和博文学习生成和播放yuv文件的方法

2018-10-02

播放PCM音频文件的工程

本资源是博主博文《windows下使用FFmpeg生成PCM音频文件并播放(通过命令的方式)》的附件资源,博文地址https://blog.csdn.net/u014552102/article/details/82734278#t2,资源里面包含博文演示用的ffplay.exe,ffmpeg.exe工具,转换用的mp3音频文件,和转换成功的pcm文件,用户可以结合该资源和博文学习生成和播放pcm文件的方法

2018-09-17

NatvisFile.natvis

将该文件添加到vs2015工程中,可以解决vs2015调试时无法查看stl(vector,string,list等容器类)值的问题,加入方法可以参考博主博客https://blog.csdn.net/u014552102/article/details/82466516

2018-09-08

FFmpeg解封装并获取本地媒体文件信息的源码

本资源是博主的博文《FFmpeg解封装并获取本地媒体文件的信息》的源码,博文地址在https://blog.csdn.net/u014552102/article/details/81709929。该资源里面包含整个vs2015的工程,依赖的FFmpeg库,还有演示用的audio1.mp3和video1.mp4两个媒体文件,使用户可以学到用FFmpeg分别对视频和音频进行解封装的区别和联系。

2018-08-16

NSIS安装包制作工具

NSIS 是制作 windows 安装程序的工具。它提供了安装、卸载、系统设置、文件解压缩等功能。本下载提供nisedit_2.0.3.0.exe和nsis-3.03-setup.exe两个文件。用户下载后可以根据我的另一篇博客https://blog.csdn.net/u014552102/article/details/80385767 学习nsis的使用

2018-05-21

基于Qt的记事本

本设计的开发平台为vs2008和Qt4.7.3,能够实现记事本的新建文档,打开文档,编辑保存文档的功能,自带软键盘,能够方便地移植到嵌入式设备上使用

2018-05-13

基于状态机的独立按键程序

本程序使用一种基于状态转移的独立按键程序,能实现按键的去抖动以及识别按键的短按和长按,例程基于51单片机平台,但无硬件依赖性,能方便地移植到各个平台上

2016-02-15

空空如也

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

TA关注的人

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