2012-03-06 3 views
0

Я использовал пример из http://cekirdek.pardus.org.tr/~ismail/ffmpeg-docs/output-example_8c-source.html:av_guess_format возвращение нулевой

out_ctx = avformat_alloc_context(); 
out_ctx->oformat = av_guess_format(NULL, filename, NULL); 
if (out_ctx->oformat == NULL) 
{ 
    out_ctx->oformat = av_guess_format("mpeg4", NULL, NULL); 
    if (out_ctx->oformat == NULL) 
    { 
     LOGI(1, "Could not guess output format\n"); 
     exit(1); 
    } 
} 

av_guess_format всегда возвращают нуль. Я не понимаю, что мне нужно повторно настроить в FFMPEG для включения любых форматов.

+0

Какой тип файла вы пытаетесь идентифицировать? Что такое расширение и что возвращает утилита «file» при работе с файлом? –

+0

На это был дан ответ: http://stackoverflow.com/questions/8526738/ffmpeg-av-guess-format-returns-null –

ответ

2

Если вы прочитали эту тему, вы увидите, что на вопрос не был дан ответ - есть еще один плакат, требующий окончательного решения, но ответа от первоначального искателя нет. Мне также трудно с этим справиться и, как таковое, чувствовать, что этот поток нужно оставить открытым, так как исходный вопрос остается без ответа.

Но, так как я теперь знаю ответ, я мог бы также поделиться им здесь:

Вы должны вызвать av_register_all(), а также avcodec_register_all() после того, как вы установили кодек библиотеку с вызовом avcodec_init(), это решило проблему для меня и прекрасно работает сейчас. Пожалуйста, дайте мне знать, если это вам поможет.

+0

он работает для меня после добавления вызова для av_register_all() –

0

Вызов

av_register_all(); 
avcodec_register_all(); 

перед использованием av_guess_format() решить эту проблему для меня.

Смежные вопросы