目录
一、编码分析
想要编码必须是解码时获取的YUV格式——> H264 ——>mp4等格式
1.解码线程:
2.编码线程:
二、ffmpeg编码
1.注册所有组件
av_register_all();
2.编码初始化函数
(1)选择文件后缀
//1.通过文件后缀得到最佳输出格式
AVOutputFormat* outputFormat=
av_guess_format(nullptr,"../fileout/Warcraft3_End.H264",nullptr);
if(outputFormat==nullptr)
{
qDebug()<<"av_guess_format fail";
}
else {
qDebug()<<"av_guess_format success";
}
//1.1 设置格式
this->formatContext->oformat=outputFormat;
(2)打开视频流
int res=avio_open(
&(this->formatContext->pb),"../fileout/Warcraft3_End.H264",AVIO_FLAG_WRITE);
if(res<0)
{
qDebug()<<"avio_open fail";
}
else {
qDebug()<<"avio_open success";
}
(3)新建视频流
//2.1 新建视频流
AVStream *newStream=avformat_new_stream(this->formatContext,nullptr);
if(newStream==nullptr)
{
qDebug()<<"avformat_new_stream fai