libavformat / ffmpeg c程序“不适合输入格式”

时间:2013-10-02 19:41:47

标签: c ffmpeg libavcodec libav libavformat

您好我正在尝试使用C ffmpeg库对视频进行编码。出于某种原因,当我尝试创建格式上下文时,我收到错误:

[NULL @ 0x7ff574006600] Requested output format 'mp4' is not a suitable output format

我知道我的ffmpeg是用x264标志编译的,只是一个简单的

ffmpeg -i test.mov test.mp4

工作正常。我也链接所有生成的pch文件,libav *库中的其他所有工作正常。这是一个完整的工作示例,其中包含我收到的错误:

#include <libavformat/avformat.h>
#include <libavcodec/avcodec.h>
#include <libavutil/avutil.h>
#include <libswscale/swscale.h>
#include <libavutil/opt.h>
#include <libswscale/swscale.h>
#include <libavutil/imgutils.h>

#include <stdio.h>

int main() {

    AVFormatContext * output = NULL;

    // now lets initialize the actual format element
    if (avformat_alloc_output_context2(&output, NULL, "mp4", "test.mp4") < 0) {

        printf("%s", "INVALID");
    }

    return 0;

}

1 个答案:

答案 0 :(得分:2)

你必须致电

av_register_all();

在分配输出上下文之前。