Управляем чем угодно откуда угодно

Gstreamer: прием звука на V2R

Обсуждение линуксовой части и софта на борту виртурилки

Gstreamer: прием звука на V2R

Сообщение Anton_0612 » 25 мар 2015, 17:11

Здравствуйте,

Как добиться приемлемого звука при передаче с компьютера на V2R?


Запускаю такие цепочки
PC: gst-launch alsasrc ! "audio/x-raw-int, channels=1, rate=16000, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16" ! faac bitrate=16000 ! rtpmp4apay ! udpsink port=3000 host="IP V2R"

V2R: gst-launch udpsrc port=3000 caps="application/x-rtp, media=(string)audio, clock-rate=(int)16000, encoding-name=(string)MP4A-LATM, cpresent=(string)0, config=(string)40002820, payload=(int)96, ssrc=(uint)3286409006, clock-base=(uint)651450343, seqnum-base=(uint)59757" ! rtpmp4adepay queue-delay=0 ! dmaidec_aac generateTimestamps=true ! alsasink sync=false discont-wait=0 slave-method=2 latency-time=1

Звука нет, одно шуршание. В чем может быть проблема?
Anton_0612
 
Сообщения: 31
Зарегистрирован: 13 сен 2013, 23:25

Re: Gstreamer: прием звука на V2R

Сообщение COBECTb » 26 мар 2015, 00:14

rate 8000 поставь. у меня только так заработало. И на приеме тогда это изменить надо на другую цифру - config=(string)40002820
COBECTb
 
Сообщения: 165
Зарегистрирован: 08 сен 2013, 14:58

Re: Gstreamer: прием звука на V2R

Сообщение Anton_0612 » 29 мар 2015, 00:06

Здравствуйте,

И на приеме тогда это изменить надо на другую цифру - config=(string)40002820


Что за цифра?
Поиск
Код: Выделить всё
gst-inspect udpsrc
ни чего не дал.
Anton_0612
 
Сообщения: 31
Зарегистрирован: 13 сен 2013, 23:25

Re: Gstreamer: прием звука на V2R

Сообщение Serg » 21 май 2015, 11:19

А вообще виртурилка может звук воспроизводить? Допустим я хочу сделать видеоконференцию на паре виртурилок. Это надо usb звуковушку цеплять?
Serg
 
Сообщения: 121
Зарегистрирован: 07 сен 2013, 23:55

Re: Gstreamer: прием звука на V2R

Сообщение realizator » 21 май 2015, 16:21

Serg писал(а):А вообще виртурилка может звук воспроизводить? Допустим я хочу сделать видеоконференцию на паре виртурилок. Это надо usb звуковушку цеплять?

У виртурилки есть звуковой выход, для маленького динамика его вполне хватит. Дополнительный усилок нужен если мощный динамик подключить.
Мы делали решение когда одна виртурилка на другую звук стримила - посмотрите в блоге g0l.ru поиском "рация Бонда". Делалось давно и для побаловаться, решение на практике никому не нужно оказалось.
Аватара пользователя
realizator
virt2real team
 
Сообщения: 641
Зарегистрирован: 17 фев 2012, 23:18

Re: Gstreamer: прием звука на V2R

Сообщение Serg » 21 май 2015, 23:35

Нашел - Джеймс Бонд нервно курит рацию

Насколько я понимаю, передать при этом видеокартинку тоже возможно. Очень хорошо. А из Android/iOS на виртурилку звук можно отправить? Вроде как проблем не вижу - закодировать тем же gstreamer и вперед.
Serg
 
Сообщения: 121
Зарегистрирован: 07 сен 2013, 23:55

Re: Gstreamer: прием звука на V2R

Сообщение realizator » 22 май 2015, 11:45

Serg писал(а):Нашел - Джеймс Бонд нервно курит рацию

Насколько я понимаю, передать при этом видеокартинку тоже возможно. Очень хорошо. А из Android/iOS на виртурилку звук можно отправить? Вроде как проблем не вижу - закодировать тем же gstreamer и вперед.

Ну так оно обычно и бывает - вроде проблем не видим, а пилить приходится много месяцев :-)
Аватара пользователя
realizator
virt2real team
 
Сообщения: 641
Зарегистрирован: 17 фев 2012, 23:18

Re: Gstreamer: прием звука на V2R

Сообщение Serg » 22 май 2015, 18:17

тогда еще один вопрос - к аудиовыходу что-то типа такого надо подключить http://www.ebay.de/itm/Kleinlautspreche ... 3f20069bef ?
Существенно ли сопротивление динамика - 4/8/10/16 Ом?
Serg
 
Сообщения: 121
Зарегистрирован: 07 сен 2013, 23:55

Re: Gstreamer: прием звука на V2R

Сообщение Serg » 27 июл 2015, 15:06

Передаю звук с андроида через rtp, кодек mulaw - там больше то выбрать особо не из чего.
Для проверки принимаю VLC на ноутбуке - качество и громкость приемлимые.

На виртурилке принимаю так:
Код: Выделить всё
gst-launch -v udpsrc port=22222 caps="application/x-rtp" ! queue ! rtppcmudepay ! mulawdec ! audioconvert ! alsasink sync=false


передача идет, но очень тихо (alsamixer на максимум) и с искажениями. Для тестов передававал на виртурилку звук, кодируя его L16, там и с качеством и с громкостью было поприличнее. Но L16 нет в списке доступных кодеков на андроиде.
Подскажите пожалуйста куда копать?
Serg
 
Сообщения: 121
Зарегистрирован: 07 сен 2013, 23:55

Re: Gstreamer: прием звука на V2R

Сообщение Serg » 29 июл 2015, 22:22

К вопросу о 8 и 16кГц. Что-то все-таки не то в консерватории. Скачиваю тестовый файл отсюда
http://www0.cs.ucl.ac.uk/teaching/GZ05/samples/
тот который самый первый 8KHz sampled, u-law, mono, 32KB

Проигрываю на ноутбуке с убунтой командой
Код: Выделить всё
gst-launch -v  filesrc location=/home/serg/ulaw/lathe.wav ! decodebin ! alsasink

все отлично.
Проигрываю на виртурилке
Код: Выделить всё
 gst-launch -v  filesrc location=/home/ftp/lathe.wav ! decodebin ! alsasink


Звук нормальный, но играет в два раза быстрее чем надо. В параметрах везде пишет нормально 8000:

[root@virt2real ftp]# gst-launch -v filesrc location=/home/ftp/lathe.wav ! decodebin ! alsasink
Setting pipeline to PAUSED ...
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = audio/x-wav
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstWavParse:wavparse0.GstPad:sink: caps = audio/x-wav
/GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:src0: caps = audio/x-raw-int, width=(int)16, depth=(int)16, endianness=(int)1234, signed=(boolean)true, rate=(int)8000, channels=(int)1
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMuLawDec:mulawdec0.GstPad:src: caps = audio/x-raw-int, width=(int)16, depth=(int)16, endianness=(int)1234, signed=(boolean)true, rate=(int)8000, channels=(int)1
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMuLawDec:mulawdec0.GstPad:sink: caps = audio/x-mulaw, rate=(int)8000, channels=(int)1
/GstPipeline:pipeline0/GstAlsaSink:alsasink0.GstPad:sink: caps = audio/x-raw-int, width=(int)16, depth=(int)16, endianness=(int)1234, signed=(boolean)true, rate=(int)8000, channels=(int)1
/GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:src0.GstProxyPad:proxypad1: caps = audio/x-raw-int, width=(int)16, depth=(int)16, endianness=(int)1234, signed=(boolean)true, rate=(int)8000, channels=(int)1
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstAudioSinkClock
Got EOS from element "pipeline0".
Execution ended after 2237632917 ns.

Может что-то в gstreamer поправить надо?

Если скачать файл с оцифровкой >16kHz ( rate=(int)44100 например ), то он проигрывается нормально.
Serg
 
Сообщения: 121
Зарегистрирован: 07 сен 2013, 23:55

След.

Вернуться в Софт на виртурилке - SDK, Linux, Github, программирование (C/C++ и др.)

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron