Невозможно найти аудиопоток - PullRequest
0 голосов
/ 16 ноября 2011

Я пытаюсь адаптировать код для добавления функции захвата звука (в прямом эфире) с помощью ffmpeg и directshow.

Когда я пытаюсь поиграть с ffplay файлом AVIsynthвсе работает отлично у меня есть аудио и видео.Но когда я открываю этот входной файл по коду, я нахожу только видеопоток.

Файл Avs:

V = DirectShowSource("Decklink_HDMI.grf", fps=10, framecount=1000000000, seek=false, audio=false)
A = DirectShowSource("Decklink_Audio.grf", fps=1, framecount=1000000000, video=false)
AudioDub(V, A)

Код открытия:

ffmpeg::AVInputFormat * ifmt;

ifmt = ffmpeg::av_find_input_format("avs");

// Open input file
 if(ffmpeg::avformat_open_input(&pFormatCtx, filename.toStdString().c_str(), ifmt, NULL) != 0)

Когда ясоздайте переменную lookout на gdb сразу после открытия.

Я смотрю nb_streams в pFormatCtx-> nb_streams, и он равен 1. Единственный поток, который я могу найти в потоке pFormatCtx->, - это видео.И именно поэтому я не могу уловить звук.

Поэтому я спрашиваю, делаю ли я что-то не так с моим открытием или я что-то пропускаю.

Ps: я знаюпоказанный код короткий, но проблема появляется на этом самом этапе!

Спасибо

Курт

- РЕДАКТИРОВАТЬ -

Я такжезаметил, что когда я снимаю AVFormatContext, видео поток имеет размер 456x32.И я могу найти тот же самый размер окна, отображаемого при попытке запустить поврежденный скрипт с помощью ffplay.

Исходный формат видео при воспроизведении правильного сценария с использованием ffplay имеет размер 1920x1080

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

Я пытаюсь выяснить, как узнать сообщение об ошибке, которое отображается в окнах 456x32

- EDIT2 -

Я выясняю, что написано на этом изображении, и моя проблема решена, плохо установленный avs-скрипт, старый, был местом.

Мне стыдно.

1 Ответ

1 голос
/ 18 ноября 2011

My bad,

Плохо размещенный файл avs был моей проблемой.

В любом случае, ffmpeg немного болезненен в способе отображения ошибки, будучи вынужденным сделать снимок без ошибки msg.или возникло исключение (или, может быть, я потерпел неудачу).

...