Функция avformat_open_input из ffmpeg lib не может открыть файл - PullRequest
0 голосов
/ 09 ноября 2011

Я пробовал открыть файл из моего кода с помощью ffmpeg lib.И avformat_open_input всегда получает ошибку «Нет такого файла или каталога».Я пробовал разные файлы и каталоги, но результаты одинаковы.

Я использую VS 2010 на Win7 и скомпилировал lib и dll из http://ffmpeg.zeranoe.com/builds/

Немного моего кода.

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 голосов
/ 25 мая 2012

Я понимаю, что это своего рода старый вопрос, но это

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

это ваша проблема. Windows передает широкую строку символов, и вы приводите ее к символьной строке, поэтому ffmpeg видит только первый ее байт. Изменив это на

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

Исправит это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...