一、视频编码基础知识
1、纯净的视频编码流程
- 像素数据->压缩编码数据。 例如编码YUV,就是“YUV->H.264”。(本文所介绍)
2、一般的视频编码流程
- 将像素流存储为一定封装格式(例如H264等)中。 例如将像素流编程成MP4格式,就是“YUV->H.264码流->MP4”。
二、FFmpeg编码流程
三、实现效果
四、代码
编码类cpp文件如下
关于解码类(本地视频解码生成YUV像素数据)和界面类的博客和源码请看文末链接
fcode_h264::fcode_h264()
{
av_register_all();//1、注册组件
}
void fcode_h264::codecInit()
{
char *file_out = "./output/codeFrame.h264";
//2、猜测
AVOutputFormat *outputFormat = av_guess_format(nullptr,file_out,nullptr);//已经注册的最合适