【问题标题】:ffmpeg +libx264 iPhone -> 'avcodec_encode_video' return always 0 . please adviceffmpeg +libx264 iPhone -> 'avcodec_encode_video' 总是返回 0 。请指教
【发布时间】:2011-09-06 19:45:45
【问题描述】:

av_register_all();

 AVCodec *codec;
        AVCodecContext *c= NULL;
        int out_size,大小,outbuf_size;
        //文件 *f;
        uint8_t *outbuf;

        printf("视频编码\n");

        /* 找到 mpeg 视频编码器 */
        codec =avcodec_find_encoder(CODEC_ID_H264);//avcodec_find_encoder_by_name("libx264"); //avcodec_find_encoder(CODEC_ID_H264);//CODEC_ID_H264);
        NSLog(@"codec = %i",codec);
        如果(!编解码器){
            fprintf(stderr, "找不到编解码器\n");
            退出(1);
        }
c=avcodec_alloc_context();

        /* 放样本参数 */
        c->bit_rate = 400000;
        c->bit_rate_tolerance = 10;
        c->me_method = 2;
        /* 分辨率必须是 2 的倍数 */
        c->width = 352;//宽度;//352;
        c->height = 288;//身高;//288;
        /* 每秒帧数 */
        c->time_base= (AVRational){1,25};
        c->gop_size = 10; /* 每十帧发射一帧 */
        //c->max_b_frames=1;
        c->pix_fmt = PIX_FMT_YUV420P;

        c->me_range = 16;
        c->max_qdiff = 4;
        c->qmin = 10;
        c->qmax = 51;
        c->qcompress = 0.6f;

'avcodec_encode_video' 始终为 0。

我猜是因为“非严格单调 PTS”警告,你知道同样的情况吗?

【问题讨论】:

  • 您遇到过这个问题吗?我也遇到了同样的问题,好像和 PTS 值有关。

标签: iphone encoding ffmpeg h.264 pts


【解决方案1】:

对我来说,它也总是返回 0。但编码很好。如果返回0,我认为没有问题。在avcodec.h中,你可以看到这个

"出错时返回负值,成功时返回零或数字 * 输出缓冲区中使用的字节数。"

【讨论】:

    猜你喜欢
    • 2015-04-16
    • 1970-01-01
    • 1970-01-01
    • 2015-09-27
    • 2014-03-20
    • 2013-04-13
    • 2013-03-30
    • 2016-07-13
    • 2023-04-09
    相关资源
    最近更新 更多