新版很久版还是有差别的,找了资料都难运行,自已写了一个测试程序
我觉得主要还是先了解主要的结构体是用来干嘛的 最好上官网!
#include <libavutil/avutil.h>
#include <stdio.h>
#include <libavcodec/avcodec.h>
#include <libswscale/swscale.h>
#include <libavformat/avformat.h>
//#include <libswscale/swscale_internal.h>
#define DUG printf("当前文件:%s 行数:%d\n",__FILE__,__LINE__);
int framePara[8]={
0};
int main(int argc,char *argv[])
{
AVFormatContext *pFormatCtx;
AVCodecContext *pCodecCtx; //编解码上下文
//AVCodecParameters *pCodcParam; //pFormatCtx->Stream->AVCodecParameters
AVCodec *pCodec; //编解码器
AVPacket *packet; //未解码的包
AVFrame *pFrame; //解码后的帧
const char *filepath="test.264";
const char *output_file="out_test.yuv";
FILE *fp_out;
int i,videoindex;
int ret;
fp_out = fopen(output_file, "wb+");
//打开输入视频流
pFormatCtx = avformat_alloc_context();
ret = avformat_open_input(&pFormatCtx,filepath,NULL,NULL);
if(ret < 0) {
printf("打开输入视频流失败\n"); return -1;}
printf(