gpt4 book ai didi

android - FFMPEG x264 编码器 Android

转载 作者:行者123 更新时间:2023-12-04 23:03:59 25 4
gpt4 key购买 nike

我已经编译了一个 FFMPEG 库,以便在 Android 上使用 libx264 并使用 NDK。

我想对 MPEG 视频文件进行编码,但是在 avcodec_open2 中打开编码器编解码器时应用程序失败。

我从 avcodec_open2 收到的 FFMPEG 日志如下,函数返回 -22。

  • 图片大小 %ux%u 无效。
  • 忽略无效的宽度/高度值
  • 不支持指定的 pix_fmt

  • 在 Windows 上,此代码运行良好,只有在 Android 上才会出现故障。任何想法为什么这会在Android上失败?
    if (!(codec = avcodec_find_encoder(AV_CODEC_ID_MPEG1VIDEO)))
    {
    return -1;
    }

    //Allocate context based on codec
    if (!(context = avcodec_alloc_context3(codec)))
    {
    return -2;
    }

    //Setup Context
    // put sample parameters
    context->bit_rate = 4000000;
    // resolution must be a multiple of two
    context->width = 1280;
    context->height = 720;
    // frames per second
    context->time_base = (AVRational){1,25};
    context->inter_quant_bias = 96;
    context->gop_size = 10;
    context->max_b_frames = 1;
    //IDs
    context->pix_fmt = AV_PIX_FMT_YUV420P;
    context->codec_id = AV_CODEC_ID_MPEG1VIDEO;
    context->codec_type = AVMEDIA_TYPE_VIDEO;


    if (AV_CODEC_ID_MPEG1VIDEO == AV_CODEC_ID_H264)
    {
    av_opt_set(context->priv_data, "preset", "slow", 0);
    }

    if ((result = avcodec_open2(context, codec, NULL)) < 0)
    {
    //Failed opening Codec!
    }

    最佳答案

    此问题是由使用过时的源代码构建 FFMPEG 引起的。

    我从 https://www.ffmpeg.org/ 获得了最新的消息来源并以相同的方式编译它,新库工作正常。

    注意:我没有考虑使用 libx264 的许可证的全部含义。我已经放弃了它。

    关于android - FFMPEG x264 编码器 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26014191/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com