当前位置:  技术问答>linux和unix

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

    来源: 互联网  发布时间:2017-04-28

    本文导语:  #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,                      cha...

#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,"P5n%d %dn%dn",xsize,ysize,255);
    for(i=0;ilinesize[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) {
        pkt->size -= len;
        pkt->data += len;
    }
    return 0;
}

static void video_decode_example(const char *outfilename, const char *filename)
{
    AVCodec *codec;
    AVCodecContext *c= NULL;
    int frame_count;
    FILE *f;
    AVFrame *frame;
    uint8_t inbuf[INBUF_SIZE + FF_INPUT_BUFFER_PADDING_SIZE];
    AVPacket avpkt;

    av_init_packet(&avpkt);

    /* set end of buffer to 0 (this ensures that no overreading happens for damaged mpeg streams) */
    memset(inbuf + INBUF_SIZE, 0, FF_INPUT_BUFFER_PADDING_SIZE);

    printf("Decode video file %s to %sn", filename, outfilename);

    /* find the mpeg1 video decoder */
    codec = avcodec_find_decoder(AV_CODEC_ID_H264);
    if (!codec) {
        fprintf(stderr, "Codec not foundn");
        exit(1);
    }

    c = avcodec_alloc_context3(codec);
    if (!c) {
        fprintf(stderr, "Could not allocate video codec contextn");
        exit(1);
    }

    if(codec->capabilities&CODEC_CAP_TRUNCATED)
        c->flags|= CODEC_FLAG_TRUNCATED; /* we do not send complete frames */

    /* For some codecs, such as msmpeg4 and mpeg4, width and height
       MUST be initialized there because this information is not
       available in the bitstream. */

    /* open it */
    if (avcodec_open2(c, codec, NULL)  0)
            if (decode_write_frame(outfilename, c, frame, &frame_count, &avpkt, 0) 

    
 
 

您可能感兴趣的文章:

  • linux下怎样调用jpeg的硬件解码功能?
  • 谁能给我一些Linux平台的解码器
  • 高分求:LINUX下视频压缩编解码算法实现
  • 可能装Linux的时候没有选多媒体,想用MP3,说不能解码,怎么办
  • 寻求linux开发高手,本人想用linux开发一个视频服务器。本人已将编码和解码部分写完,但对LINUX不熟。特有意寻求合作伙伴。
  • linux shell脚本 linux crond 的一个鲜为人知的错误,单独执行没问题,放到crond 中就执行出错 试问高手们哪个环节出错
  • linux 64位编译出错。linux 32位可以编译过。
  • 编译linux0.01内核时出错,没有权限?
  • 安装arm-linux-gcc出错
  • 还是老问题啊!!!高手吗?帮忙啊!LINUX 9.0安装时出错!
  • RH linux9启动出错?
  • 求教Redhat Linux 9.0安装出错问题?
  • socket在linux下能用,在unix下出错
  • u盘启动linux出错
  • 在移植linux 2.6.32.27与 33时出错
  • linux 网络编程中 send()函数出错
  • 急!!安装linux出错!希望指教!非常谢谢!
  • 安装Linux 出错(急)
  • linux内核升级后启动出错
  • 64位linux下编译C++出错问题,求解决
  • 安装Linux出错
  • arm-linux-gcc交叉编译出错,但gcc编译没错,什么原因呢???
  • Linux Shell提示符出错,并发出警报声
  • linux7.1 安装 oracle8.1.7 出错
  • Redhat Linux安装RealPlayer11出错
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • secureCRT下Linux终端汉字乱码解决方法
  • 先装LINUX 10后装XP,启动进不了Linux,请问怎么解决?
  • Linux/CentOS下的CST和UTC时间的区别以及不一致的解决方法
  • linux中用ifconfig设置完新ip后,重启linux,ip又恢复到原来的值,怎么解决呀?
  • Linux下时钟同步问题:Clock skew detected原因分析及解决方法
  • linux下使用samba mount windows 网络共享盘后,拔掉网线linux死机该如何解决?
  • Linux 下c++开发error while loading shared libraries问题解决
  • Linux进不去了,请问如何解决?(急~~~)
  • linux/centos安装nginx常见错误及解决办法
  • *****(高分!!!)求Java和Linux高手解决servlet远程管理linux用户密码的问题*****
  • Linux数字声音解决方案 OSS4
  • LINUX下的JAVA串口通讯问题,如能解决,不胜感激
  • linux可以ping通win98,win98却ping不通linux,如何解决?
  • Linux视频解决方案 Heroine Virtual
  • Linux下Oracle 10G DBCA等汉字乱码解决方法
  • 如何解决安装完linux开机奇慢的问题
  • linux中非正常关机,出现的错误如何解决?
  • 如何解决Linux乱码?
  • 虚拟机下linux内鼠标和键盘失灵,如何解决?
  • linux登录错误!帮忙解决啊
  • linux下的vi中的乱码问题(急急急,在线等待!!!!!!,解决问题给高分)
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • Linux c字符串中不可打印字符转换成16进制
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • linux命令大全详细分类介绍及常用linux命令文档手册下载
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,