gstreamer: чередование 2 аудио - ошибка связи - PullRequest
2 голосов
/ 21 февраля 2010

Я пытаюсь чередовать два аудиофайла, как указано в документации по чередованию GStreamer:

gst-launch interleave name=i ! audioconvert ! wavenc ! filesink location=file.wav  filesrc location=file1.wav ! \
decodebin ! audioconvert ! "audio/x-raw-int,channels=1" ! queue ! i.sink0   filesrc location=file2.wav !  \
decodebin ! audioconvert ! "audio/x-raw-int,channels=1" ! queue ! i.sink1

Но выполнение этой команды приводит к следующей ошибке:

0: 00: 00.125000000 2264 00332BC0 ОШИБКА GST_PIPELINE grammar.tab.c: 656: gst_parse_perform_link: не удалось связать очередь 0 с i

Если я удаляю вторую команду, связанную с filesrc, т.е. все команды после "filesrc location = file2.wav, команда работает нормально. Что не так с вышеуказанной командой?

Спасибо

1 Ответ

0 голосов
/ 19 мая 2010

1001 * попробовать *

gst-launch interleave name=i ! audioconvert ! wavenc ! filesink location=file.wav  filesrc location=file1.wav ! \
decodebin ! audioconvert ! "audio/x-raw-int,channels=1" ! queue ! i.   filesrc location=file2.wav !  \
decodebin ! audioconvert ! "audio/x-raw-int,channels=1" ! queue ! i.

приемные площадки для элемента чередования - только запрос, поэтому я держу пари, что i.sink0 не существует, когда gst-launch пытается связать элементы. если оставить один период (i.), gst-launch будет пробовать все пэды, пока не будет найден подходящий.

для всех, кроме самых простых примеров, вам лучше создать конвейер вручную на простом языке высокого уровня, таком как python.

см. Также

man gst-launch
...