使用avcodec_open2和libopus时出现无效选项错误

时间:2017-05-10 23:00:29

标签: ffmpeg opus

我在ffmpeg 3.1.6中使用libopus 1.1.4从avcodec_open2获得了无效的选项结果。我已经对所有选项进行了排序,但找不到有问题的选项I created a gist holding the relevant native code。我搜索了所有有关互联网的内容,但至今还没有找到任何有用的信息。我也尝试过使用和不使用opts词典。

results = avcodec_open2(context, codec, &opts);results = avcodec_open2(context, codec, 0);

所有测试和变化返回-22(在第51行第57页)

1 个答案:

答案 0 :(得分:1)

  

memset(context, 0, sizeof(context));

需要删除该代码。它基本上会破坏一切。具体来说,它将根据avcodec_alloc_context3()参数取消设置codec中设置的所有内容,以及更常见的所有与编解码器无关的默认值。

(请注意,它仅将前8个(在x86-64上)字节归零,因为您使用了sizeof(context)而不是sizeof(*context)。)