音视频
音视频方向
All In !!!
《活着》一书中的福贵,就是在生活的锤炼下,从悲痛中醒悟、在失去中成长,最终活得豁达从容。
展开
-
FFMPEG -- avformat_alloc_output_context2
avformat_alloc_output_context2(&ofmt_ctx, NULL, NULL, filename);avformat_alloc_output_context2 负责分配输出 AVFormatContext。ffmpeg有各种各样的 Context ,其功能是管理各种各样的模块。例如有一个输出文件:test.mp4,使用 avformat_alloc_output_context2 函数就可以根据文件名分配合适的 AVFormatContext 管理结构...原创 2021-02-07 17:23:29 · 462 阅读 · 0 评论 -
FFMPEG -- avcodec_encode_video2
int ret = avcodec_encode_video2(pCodecCtx, &pkt, pFrame, &got_picture);编码一帧视频。即将AVFrame(存储YUV像素数据)编码为AVPacket(存储H.264等格式的码流数据)。成功时返回0,失败时返回负错误代码 失败时返回错误返回码...原创 2021-02-07 17:22:00 · 1683 阅读 · 0 评论 -
FFMPEG -- fread
if (fread(picture_buf, 1, y_size * 3 / 2, in_file) <= 0) { printf("Failed to read raw data! \n"); return false; }fread函数,从文件流中读取数据,如果不成功或读到文件末尾返回 0原创 2021-02-07 17:20:39 · 150 阅读 · 0 评论 -
FFMPEG -- avpicture_get_size
picture_size = avpicture_get_size(pCodecCtx->pix_fmt, pCodecCtx->width, pCodecCtx->height);计算这个格式的图片,需要多少字节来存储原创 2021-02-07 17:18:45 · 1975 阅读 · 1 评论 -
FFMPEG -- av_dump_format
av_dump_format(pFormatCtx, 0, out_file, 1); av_dump_format()是一个手工调试的函数,能使我们看到pFormatCtx->streams里面有什么内容。原创 2021-02-07 17:15:47 · 239 阅读 · 0 评论 -
FFMPEG -- av_guess_format
av_guess_format(NULL, out_file, NULL);av_guess_format 这是一个决定视频输出时封装方式的函数,其中有三个参数,写任何一个参数,都会自动匹配相应的封装方式。原创 2021-02-07 17:13:48 · 2217 阅读 · 0 评论 -
FFMPEG -- avformat_alloc_context
avformat_alloc_context();AVFormatContext 用 avformat_alloc_context() 进行初始化原创 2021-02-07 17:12:50 · 232 阅读 · 0 评论 -
FFMPEG -- AVFrame
AVFrame* pFrame; AVFrame是包含码流参数较多的结构体原创 2021-02-07 16:30:10 · 152 阅读 · 0 评论 -
FFMPEG -- AVPacket
AVPacket pkt; AVPacket是存储压缩编码数据相关信息的结构体原创 2021-02-07 16:29:34 · 189 阅读 · 0 评论 -
FFMPEG -- AVCodec
AVCodec* pCodec; AVCodec是存储编解码器信息的结构体。原创 2021-02-07 16:28:55 · 226 阅读 · 0 评论 -
FFMPEG -- AVCodecContext
AVCodecContext* pCodecCtx; 编码器上下文结构体,保存了视频(音频)编解码相关信息。原创 2021-02-07 16:28:19 · 155 阅读 · 0 评论 -
FFMPEG -- AVStream
AVStream* video_st; // AVStream是存储每一个视频/音频流信息的结构体。原创 2021-02-07 16:27:39 · 186 阅读 · 0 评论 -
FFMPEG -- AVOutputFormat
AVOutputFormat* fmt; // AVOutputFormat 结构体主要用于muxer,是音视频文件的一个封装器。原创 2021-02-07 16:26:48 · 393 阅读 · 0 评论 -
FFMPEG -- AVFormatContext
AVFormatContext* pFormatCtx;封装格式上下文结构体,也是统领全局的结构体,保存了视频文件封装 格式相关信息。原创 2021-02-07 16:25:09 · 157 阅读 · 0 评论 -
FFmpeg -- YUV格式是什么
一句话简单总结: YUV是视频、图片、相机等应用中使用的一类图像格式,实际上是所有“YUV”像素格式共有的颜色空间的名称。 与RGB格式(红 - 绿 - 蓝)不同,YUV是用一个称为Y(相当于灰度)的“亮度”分量和两个“色度”分量表示,分别称为U(蓝色投影)和V(红色投影),由此得名。 YUV 各代表什么? Y 表示亮度分量:如果只显示Y的话,图像看起来会是一张黑白照。U 表示色度分量:是照片蓝色部分去掉亮度(Y)。V 表示色度分量:是照片红色部分去掉亮度(Y)。若要往深拓展,极力.原创 2021-02-03 17:44:18 · 320 阅读 · 2 评论 -
FFMpeg -- 视频编码【详细注释】
代码不用说,源于雷神!最简单的基于FFMPEG的视频编码器(YUV编码为H.264) 注意:本文只多加了注释 且 注释的非常详细,方便我等小白学习。【几乎每行都有必要注释】第一次研究ffmpeg编解码,甚是艰难,但好在有些进展,将看起来费劲的部分都进行注释了一把,分享一下。建议方式:先熟悉视频编码流程,再看代码就轻松了。/***************** FFMPEG视频编码流程 ******************** 01、av_register_all():注册FFmpeg所有原创 2021-02-03 18:07:48 · 1209 阅读 · 0 评论 -
FFMPEG总结 -- 音视频编解码和转码(全)
在经过一周的学习后,现将其稍加总结下:附代码及详细注释。简单分为如下六个部分一、播放一个视频文件的流程二、ffmpeg 视频编码三、ffmpeg 视频解码注:解码后的数据为什么要经过 sws_scale() 函数处理?四、ffmpeg 音频编码五、ffmpeg 音频解码六、ffmpeg 转码一、播放一个视频文件的流程字不如图,直接看下图,就可以明白二、ffmpeg 视频编码看下图,先搞明白 视频编码的流程。(图源于雷神) 图下紧接着每个步骤的中文含义1、av_register_all():原创 2021-02-07 15:13:07 · 7829 阅读 · 19 评论