#audio #gstreamer #pipeline #mu-law
#Аудио #gstreamer #конвейер #mu-закон
Вопрос:
У меня есть wave-файл с этими свойствами.
sampling rate = 16000 Hz encoding = L16 channels = 1 bit resolution = 16
Я хочу создать 2 конвейера
1) Я отправляю содержимое этого файла в виде пакетов RTP на порт = 5000
2) прослушайте порт = 500, перехватите пакеты rtp и создайте аудиофайл со следующими свойствами
sampling rate = 8000 Hz encoding = PCMU channels = 1 bit resolution = 8
То, что я пробовал, это:
Отправитель:
gst-launch-1.0 filesrc location=/path/to/test_l16.wav ! wavparse ! audioconvert ! audioresample ! mulawenc ! rtppcmupay ! udpsink host=192.168.xxx.xxx port=5000
Приемник:
gst-launch-1.0 udpsrc port=5000 ! "application/x-rtp,media=(string)audio, clock-rate=(int)8000, encoding-name=(string)PCMU, channels=(int)1" ! rtppcmudepay ! mulawdec ! filesink location=/path/to/test_pcmu.ulaw
Но при тестировании я получаю файл L16.ulaw, а не PCMU
Есть предложения?
Ответ №1:
Проверьте, что делает mulawdec
элемент:
Pad Templates:
SINK template: 'sink'
Availability: Always
Capabilities:
audio/x-mulaw
rate: [ 8000, 192000 ]
channels: [ 1, 2 ]
SRC template: 'src'
Availability: Always
Capabilities:
audio/x-raw
format: S16LE
layout: interleaved
rate: [ 8000, 192000 ]
channels: [ 1, 2 ]
Таким образом, в основном он декодирует Mu Law в PCM. Если вы хотите сохранить необработанный закон Mu, вместо этого удалите mulawdec
элемент.
Комментарии:
1. Привет, спасибо за это. Это сработало путем удаления
mulawdec
.