#visual-c #ffmpeg
#visual-c #ffmpeg
Вопрос:
Я пытался открыть файл из своего кода с помощью библиотеки ffmpeg. И 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(amp;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:
Я понимаю, что это своего рода старый вопрос, но это
int _tmain(int argc, _TCHAR* argv[])
это ваша проблема. Windows передает расширенную строку символов, а вы преобразуете ее в строку символов, поэтому ffmpeg видит только первый байт из нее. Меняем это на
int main(int argc, char* argv[])
Исправит это