雷神(雷霄骅)博客学习笔记
我的开源视音频项目汇总
https://blog.csdn.net/leixiaohua1020/article/details/42658139
FFmpeg示例程序是我做的最多的一类程序。这些示例程序展示了利用FFmpeg的类库进行视音频程序开发的方法,比较适合新手学习FFmpeg。目前这些示例程序已经覆盖了从流媒体接收,解封装,解码,像素转换,编码,封装,流媒体发送所有这些流程。
Simplest ffmpeg player
最简单的基于FFMPEG的视频播放器
本程序实现了视频文件的解码和显示。是最简单的FFmpeg视频解码方面的教程。通过学习本例子可以了解FFmpeg的解码流程。
项目包含6个工程:
simplest_ffmpeg_player:标准版,FFmpeg学习的开始。
simplest_ffmpeg_player_su:SU(SDL Update)版,加入了简单的SDL的Event。
simplest_ffmpeg_decoder:一个包含了封装格式处理功能的解码器。使用了libavcodec和libavformat。
simplest_ffmpeg_decoder_pure:一个纯净的解码器。只使用libavcodec(没有使用libavformat)。
simplest_video_play_sdl2:使用SDL2播放YUV的例子。
simplest_ffmpeg_helloworld:输出FFmpeg类库的信息。
simplest ffmpeg streamer
最简单的基于FFmpeg的推流器(推送RTMP)
简介
本例子实现了推送本地视频至流媒体服务器(以RTMP为例)。是使用FFmpeg进行流媒体推送最简单的教程。
文章
《最简单的基于FFmpeg的推流器(以推送RTMP为例)》
《最简单的基于FFMPEG的推流器附件:收流器》
视音频数据处理入门:RGB、YUV像素数据处理
https://blog.csdn.net/leixiaohua1020/article/details/50534150
(1) 分离YUV420P像素数据中的Y、U、V分量
(7)计算两个YUV420P像素数据的PSNR
(8) 分离RGB24像素数据中的R、G、B分量
(9)将RGB24格式像素数据封装为BMP图像
(10)将RGB24格式像素数据转换为YUV420P格式像素数据
[总结]视音频编解码技术零基础学习方法
https://blog.csdn.net/leixiaohua1020/article/details/18893769
生活中的视音频技术
视频播放器原理
流媒体协议
封装格式
视频编码
音频编码
现有网络视音频平台对比
视频压缩编码和音频压缩编码的基本原理
https://blog.csdn.net/leixiaohua1020/article/details/28114081
1.视频编码基本原理
(1) 视频信号的冗余信息
(2) 压缩编码的方法
(a) 变换编码
(b) 熵编码
(c) 运动估计和运动补偿
(d) 混合编码
2.音频编码基本原理
(1) 音频信号的冗余信息
(a) 频谱掩蔽效应
(b) 时域掩蔽效应
(2) 压缩编码方法
多媒体视频开发_(8) H264码流中NALU的理解
https://blog.csdn.net/u010368556/article/details/104340935
H264码流可以分为两层,VCL层和NAL层
NAL层由多个单元NALU组成,NALU由了NALU头(00 00 00 01或者00 00 01)、sps(序列参数集)、pps(图像参数集合)、slice、sei、IDR帧、I帧(在图像运动变化较少时,I帧后面是7个P帧,如果图像运动变化大时,一个序列就短了,I帧后面可能是3个或者4个P帧)、P帧、B帧等数据。
sps、pps、I帧、P帧在NALU中的关系和nalu type判断
IDR帧和I帧的关系
IDR帧就是I帧,但是I帧不一定是IDR帧
当出现了IDR帧时,要更新sps、pps,
GOP的全称是Group of picture图像组,也就是两个I帧之间的距离,GOP值越大,那么I帧率之间P帧和B帧数量越多,图像画质越精细
视音频数据处理入门:H.264视频码流解析
https://blog.csdn.net/leixiaohua1020/article/details/50534369
最简单的基于FFmpeg的推流器(以推送RTMP为例)
https://blog.csdn.net/leixiaohua1020/article/details/39803457