通过ffmpeg实现解码并保存为yuv文件
/**
* 抽取ffmpeg中的函数接口实现视频解码并保存
*/
#define __STDC_CONSTANT_MACROS
#include <stdio.h>
extern "C"
{
#include "libavutil/avutil.h"
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
//新版里的图像转换结构需要引入的头文件
#include "libswscale/swscale.h"
};
char* filename = "720p.m2v";
int main()
{
AVCodec *pCodec; //解码器指针
AVCodecContext* pCodecCtx; //ffmpeg解码类的类成员
AVFrame* pAvFrame; //多媒体帧,保存解码后的数据帧
AVFormatContext* pFormatCtx; //保存视频流的信息
av_register_all(); //注册库中所有可用的文件格式和编码器
pFormatCtx = avformat_alloc_context();
if (avformat_open_input(&pFormatCtx, filename, NULL, NULL) != 0) { //检查文件头部
printf("Can't find the stream!\n");
}
if (av_find_stream_info(pFormatCtx) < 0) { //查找流信息