ffmpeg linux解码h264命令,linux下,使用ffmpeg解码h264,出错,如何解决?

在2014年的这篇博客中,作者遇到在Linux下使用ffmpeg解码H264时出错的问题。文章提供了一个简单的视频解码示例,并展示了如何保存解码后的帧数据到PGM文件。当调用`avcodec_decode_video2`函数解码时,如果出现错误,程序会打印错误信息。解码成功后,将帧数据保存到不同灰度级别(YUV420p)的PGM文件中。
摘要由CSDN通过智能技术生成

linux下,使用ffmpeg解码h264,出错,如何解决?

linux下,使用ffmpeg解码h264,出错,如何解决?

日期:2014-05-16  浏览次数:20371 次

linux下,使用ffmpeg解码h264,出错,怎么解决???

#include 

#include 

#include 

#include 

#include 

#include 

#include 

#include 

#define INBUF_SIZE 4096

/*

* Video decoding example

*/

static void pgm_save(unsigned char *buf, int wrap, int xsize, int ysize,

char *filename)

{

FILE *f;

int i;

f=fopen(filename,"ab+");

// fprintf(f,"P5\n%d %d\n%d\n",xsize,ysize,255);

for(i=0;i

fwrite(buf + i * wrap,1,xsize,f);

fclose(f);

}

static int decode_write_frame(const char *outfilename, AVCodecContext *avctx,

AVFrame *frame, int *frame_count, AVPacket *pkt, int last)

{

int len, got_frame;

char buf[1024];

printf("as;dkfjaskd\n");

len = avcodec_decode_video2(avctx, frame, &got_frame, pkt);

printf("the len is %d\n",len);

if (len 

fprintf(stderr, "Error while decoding frame %d\n", *frame_count);

return len;

}

if (got_frame) {

printf("Saving %sframe %3d\n", last ? "last " : "", *frame_count);

fflush(stdout);

/* the picture is allocated by the decoder, no need to free it */

//snprintf(buf, sizeof(buf), outfilename, *frame_count);

pgm_save(frame->data[0], frame->linesize[0],

avctx->width, avctx->height, outfilename);

pgm_save(frame->data[1], frame->linesize[1],

avctx->width/2, avctx->height/2, outfilename);

pgm_save(frame->data[2], frame->linesize[2],

avctx->width/2, avctx->height/2, outfilename);

(*frame_count)++;

}

if (pkt->data) {

&nbs

免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值