音视频技术
文章平均质量分 83
cuijiecheng2018
C++开发工程师
展开
-
音视频入门基础:AAC专题(10)——FFmpeg源码中计算AAC裸流每个packet的pts、dts、pts_time、dts_time的实现
FFmpeg源码中计算AAC裸流每个packet的pts、dts、pts_time、dts_time的实现原创 2024-09-19 19:15:00 · 553 阅读 · 0 评论 -
音视频入门基础:AAC专题(9)——FFmpeg源码中计算AAC裸流每个packet的duration和duration_time的实现
FFmpeg源码中计算AAC裸流每个packet的duration和duration_time的实现原创 2024-09-19 19:00:00 · 1823 阅读 · 0 评论 -
音视频入门基础:AAC专题(8)——FFmpeg源码中计算AAC裸流AVStream的time_base的实现
AAC裸流AVStream的time_base固定为28224000分之一原创 2024-09-18 19:00:00 · 386 阅读 · 0 评论 -
音视频入门基础:AAC专题(7)——FFmpeg源码中计算AAC裸流每个packet的size值的实现
AAC裸流每个packet的size值(该packet的大小,单位为字节)实际上是通过ADTS音频帧(adts音频压缩数据包)的adts_fixed_header中的aac_frame_length属性获取的。原创 2024-09-18 00:00:00 · 800 阅读 · 0 评论 -
音视频入门基础:AAC专题(6)——FFmpeg源码中解码ADTS格式的AAC的Header的实现
FFmpeg对媒体文件/流进行解复用时,会调用avformat_open_input函数,通过avformat_open_input函数内部的av_probe_input_format3函数来检测该文件是否为ADTS格式的AAC裸流。如果是,FFmpeg源码会继续执行avformat_find_stream_info函数读取部分packet(数据包)以获取码流信息。然后在avformat_find_stream_info函数内会调用ff_adts_header_parse函数解码AAC的Header。原创 2024-09-16 16:51:08 · 1217 阅读 · 0 评论 -
音视频入门基础:AAC专题(5)——FFmpeg源码中,判断某文件是否为AAC裸流文件的实现
FFmpeg源码中,判断某文件是否为AAC裸流文件的实现原创 2024-09-15 13:00:13 · 1328 阅读 · 0 评论 -
音视频入门基础:AAC专题(4)——ADTS格式的AAC裸流实例分析
ADTS格式的AAC裸流实例分析原创 2024-09-14 19:15:00 · 930 阅读 · 0 评论 -
音视频入门基础:AAC专题(3)——AAC的ADTS格式简介
AAC的ADTS格式简介原创 2024-09-14 19:00:00 · 1358 阅读 · 0 评论 -
音视频入门基础:AAC专题(1)——AAC官方文档下载
AAC官方文档下载原创 2024-09-10 19:45:00 · 975 阅读 · 0 评论 -
音视频入门基础:AAC专题(2)——使用FFmpeg命令生成AAC裸流文件
使用FFmpeg命令生成AAC裸流文件原创 2024-09-10 20:15:00 · 441 阅读 · 0 评论 -
音视频入门基础:WAV专题(11)——FFmpeg源码中计算WAV音频文件每个packet的pts_time、dts_time的实现
FFmpeg源码中计算WAV音频文件每个packet的pts_time、dts_time的实现原创 2024-09-09 19:45:00 · 2058 阅读 · 0 评论 -
音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现
FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现原创 2024-09-09 00:00:00 · 1111 阅读 · 0 评论 -
音视频入门基础:WAV专题(9)——FFmpeg源码中计算WAV音频文件每个packet的duration和duration_time的实现
FFmpeg源码中计算WAV音频文件每个packet的duration和duration_time的实现原创 2024-09-05 19:00:00 · 1315 阅读 · 0 评论 -
音视频入门基础:WAV专题(8)——FFmpeg源码中计算WAV音频文件AVStream的time_base的实现
WAV音频文件AVStream的time_base为音频采样频率的倒数。比如音频采样频率为44100Hz,其AVStream的time_base为1/44100(44100分之一)。原创 2024-09-02 17:32:31 · 1017 阅读 · 0 评论 -
音视频入门基础:WAV专题(7)——FFmpeg源码中计算WAV音频文件每个packet的size值的实现
当WAV音频文件存贮的是PCM,也就是无压缩的原始音频数据时,其每个packet的size值(该packet的大小,单位为字节)一般为:区块对齐×nb_samples。比如:区块对齐为4,nb_samples为4096,则size值为4 ×4096 = 16384字节。如果读取到WAV音频文件的最后,size值为剩下的还未被读取的不满一个packet大小的字节数。原创 2024-08-29 19:02:05 · 1675 阅读 · 0 评论 -
音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息
通过FFprobe显示WAV音频文件每个数据包的信息原创 2024-08-26 00:00:00 · 567 阅读 · 0 评论 -
音视频相关文章总目录
为了方便各位观看,本文置顶,以目录形式汇集我写过的大部分音视频专题文章。之后文章更新,本目录也会同步更新。原创 2024-08-01 19:15:00 · 1236 阅读 · 0 评论 -
音视频入门基础:WAV专题(5)——FFmpeg源码中解码WAV Header的实现
FFmpeg内部会调用wav_probe函数检测该文件是否为WAV格式的音频文件。然后如果检测出该文件为WAV格式的音频文件,会调用wav_read_header函数解码WAV Header。原创 2024-07-30 18:40:50 · 1099 阅读 · 0 评论 -
音视频入门基础:WAV专题(4)——FFmpeg源码中获取WAV文件音频压缩编码格式、采样频率、声道数量、采样位数、码率的实现
FFmpeg源码中是通过ff_get_wav_header函数来解码Format chunk,获取WAV文件中的音频压缩编码格式、采样频率、声道数量、采样位数、码率等信息的原创 2024-07-30 18:40:01 · 869 阅读 · 0 评论 -
音视频入门基础:WAV专题(3)——FFmpeg源码中,判断某文件是否为WAV音频文件的实现
WAV格式的音频文件对应的解析函数是wav_probe函数原创 2024-07-27 07:25:04 · 761 阅读 · 0 评论 -
音视频入门基础:WAV专题(2)——WAV格式简介
1.WAV的文件头不一定为固定的44字节,由是否存在扩展块和是否存在可选区块决定。所以如果不通过第三方库,自己写解析WAV文件的程序时要注意这一点。原创 2024-07-26 20:27:10 · 1338 阅读 · 0 评论 -
音视频入门基础:WAV专题(1)——使用FFmpeg命令生成WAV音频文件
通过FFmpeg命令可以把PCM文件转为WAV格式的音频文件原创 2024-07-26 19:15:00 · 396 阅读 · 0 评论 -
音视频入门基础:PCM专题(3)——使用Audacity工具分析PCM音频文件
本文介绍通过Audacity工具打开、分析PCM音频文件的方法原创 2024-07-24 19:27:59 · 1830 阅读 · 0 评论 -
音视频入门基础:H.264专题(17)——FFmpeg源码获取H.264裸流文件信息(视频压缩编码格式、色彩格式、视频分辨率、帧率)的总流程
FFmpeg源码获取H.264裸流文件信息(视频压缩编码格式、色彩格式、视频分辨率、帧率)的总流程和内部实现原理原创 2024-07-24 00:15:00 · 1154 阅读 · 1 评论 -
音视频入门基础:H.264专题(16)——FFmpeg源码中,判断某文件是否为H.264裸流文件的实现
FFmpeg是怎样判断出某个文件是否为AnnexB格式的H.264裸流呢?它内部其实是通过h264_probe函数来判断的。AnnexB格式的H.264裸流对应的解析函数就是h264_probe函数原创 2024-07-22 18:06:36 · 990 阅读 · 0 评论 -
音视频入门基础:H.264专题(15)——FFmpeg源码中通过SPS属性获取视频帧率的实现
FFmpeg源码中计算视频帧率的实现原创 2024-07-21 18:09:58 · 551 阅读 · 0 评论 -
音视频入门基础:H.264专题(14)——计算视频帧率的公式
H.264编码的视频,无论其SPS中的fixed_frame_rate_flag值为多少,视频帧率的计算公式都是:视频帧率 = time_scale / (2 * num_units_in_tick)原创 2024-07-16 00:15:00 · 1001 阅读 · 0 评论 -
音视频入门基础:H.264专题(13)——FFmpeg源码中通过SPS属性获取视频色彩格式的实现
FFmpeg源码中通过SPS属性获取视频色彩格式的实现原创 2024-07-14 16:09:41 · 1100 阅读 · 0 评论 -
音视频入门基础:H.264专题(12)——FFmpeg源码中通过SPS属性计算视频分辨率的实现
本文讲解FFmpeg源码中计算视频分辨率的实现。原创 2024-07-11 19:15:00 · 1087 阅读 · 0 评论 -
音视频入门基础:H.264专题(11)——计算视频分辨率的公式
通过SPS中的属性计算H.264视频分辨率的公式原创 2024-07-11 00:15:00 · 957 阅读 · 0 评论 -
音视频入门基础: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 · 1045 阅读 · 0 评论 -
音视频入门基础:H.264专题(9)——SPS简介
nal_unit_type为7的NALU是SPS(Sequence parameter set,序列参数集)原创 2024-07-03 00:15:00 · 470 阅读 · 0 评论 -
音视频入门基础:H.264专题(8)——H.264官方文档的描述符
H.264官方文档中描述符指定了NALU中每个语法元素的解析过程原创 2024-06-27 20:45:00 · 761 阅读 · 0 评论 -
音视频入门基础: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 · 1219 阅读 · 0 评论 -
音视频入门基础: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 · 1034 阅读 · 0 评论 -
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 · 814 阅读 · 0 评论 -
音视频入门基础: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 · 1116 阅读 · 0 评论 -
音视频入门基础: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 · 1097 阅读 · 0 评论 -
FFmpeg中位操作相关的源码:GetBitContext结构体,init_get_bits函数、get_bits1函数和get_bits函数分析
FFmpeg源码中使用GetBitContext结构体来对“位”进行操作。init_get_bits函数初始化GetBitContext结构体。get_bits1函数读取1位数据原创 2024-06-24 19:31:59 · 1280 阅读 · 0 评论 -
FFmpeg源码:get_bit_length函数分析
调用get_bit_length函数,可以得到nal->data指向的缓冲区的去掉补齐后的位数(bit),也就是NALU Header + SODB的位数。原创 2024-06-24 19:00:00 · 951 阅读 · 0 评论