来自ffmpeg lib的函数avformat_open_input无法打开文件

时间:2011-11-09 10:16:03

标签: visual-c++ ffmpeg

我尝试使用ffmpeg lib从我的代码中打开文件。并且avformat_open_input始终收到错误“没有这样的文件或目录”。我尝试了不同的文件和目录,但结果是一样的。

我在Win7上使用VS 2010并从http://ffmpeg.zeranoe.com/builds/

编译了lib和dll

我的一些代码。

int decode_sound(const char * infile, const char * outfile) 
{
    AVFormatContext *pFormatCtx = 0;
    if((err = avformat_open_input(&pFormatCtx, infile, NULL, 0)) != 0)
       return 1;
}


int _tmain(int argc, _TCHAR* argv[])
{
    avcodec_register_all();

    cout << decode_sound("D:\\DELTA.MPG", "D:\\wav.wav") << endl;

    char errbuf[128];
    const char *errbuf_ptr = errbuf;
    if (av_strerror(err, errbuf, sizeof(errbuf)) < 0)
          strerror_s(errbuf, AVUNERROR(err));
    cout << err << endl << errbuf_ptr << endl;

    system("pause");
    return 0;
}

1 个答案:

答案 0 :(得分:0)

我意识到这是一个古老的问题,但是这个

int _tmain(int argc, _TCHAR* argv[])

是你的问题。 Windows传入一个宽字符串,你将它转换为char字符串,因此ffm​​peg只能看到它的第一个字节。将其更改为

int main(int argc, char* argv[])

将修复它