On 2/4/20 14:09, Csaba wrote:
Megpróbáltam feltenni gstreamer-nek 1-2 plugin csomagját, így elvileg
elindult a stream, most már csak pár perc múlva közli a már említett
UDP hibát.
Következőképp indítottam:
gst-launch-1.0 -v alsasrc device=hw:1,0 ! udpsink port=3000 host=192.168.1.15
Az IP cím a mobiltelefon IP címe, melyet csatlakozáskor kioszt neki a
router (mindig e címet kapja). Gondolom, hogy a mobiltelefon IP címét
kell megadni ilyenkor? UDP használatával még sose stream-eltem.
Mobiltelefonon a következőképp próbáltam lejátszani: VLC-ben a
hálózati stream-et kiválasztva, majd beírtam: udp://192.168.1.15:3000
Ez így jó? A lejátszás (látszólag) elindult, bár az bármikor
elindítható még akkor is próbálkozik lejátszani, ha nincs elindítva
semmi a Raspberry-n, tehát nem produkál errort mint amikor http
protokollon keresztül próbálom lejátszani, igaz csak régebben
próbáltam így és csak VLC-vel.

Ez elvart mukodes. Ha http-n toltesz le, ott van egy request, amire a tuloldalnak valaszolnia kell. Ha udp socketrol jatszol, akkor a VLC csak kinyitja a portot a gepeden, es varja, hogy mi esik be.

Esetleg rtp:// vagy hasonlóra kell
átírni az udp:// részt?

A problema azzal van, hogy az udpsink altal eloallitott adatfolyamban csak nyers mintak szerepelnek, semmi metaadat (meg az elejen se, nemhogy stream kozben, hogy akkor is el tudja kapni a lejatszo, ha akkor kapcsolodik be, amikor mar megy a stream). Igy a vevooldalo VLC-nek fogalma sincs, hogy a bejovo adatokat hogy kell ertelmezni.

Nekem ugy tunik, hogy az udpsink csak belepakolja UDP csomagokba amit a bemeneten kap. A tuloldali udpsrc meg kiszedi, es mar adja is tovabb. Ez egeszen addig mukodik, amig az udpsink elott illetve a tuloldalon az udpsrc utan allo plugin ugyanazt a formatumot hasznalja.

Ebbol adodik, hogy VLC-vel aligha fogod ezt tudni lejatszani. Vannak gstreamer pluginek, amik tudnak formatumot konvertalni, tomoriteni meg multiplexelni, de arra csekely eselyt latok, hogy ezt a VLC megerti majd. A pluginek eleg rosszul dokumentaltak, szoval csak akkor lass neki, ha kalandos kedvedben vagy.

Amit említettem, streamer program, a VBAN ilyen hibát produkál miután
egy ideig megy a stream (random hogy mikor akad ki). Ez az ALSA hibája
lehet, vagy a rendkívül rossz minőségű USB hangkártya is okozhatja e
hibát?

Error: alsa_read: short read (expected 256, wrote 128)
Error: alsa_read: snd_pcm_writei failed: Broken pipe
ALSA lib pcm.c:8424:(snd_pcm_recover) overrun occurred
Error: main: packet prepared is invalid
vban_emitter version 2.1.0

Asztali gépen, jó minőségű hangkártyával nem produkálta amikor
teszteltem, RPI-n meg egy noname USB kártyával tudok próbálkozni most.
Ez a program hibája vagy ALSA hibája lehet, esetleg a RPI-n futó ALSA
hibája?

Valoszinu.

Gstreamer esetén mit tegyek, hogy működjön, elinduljon és a telefonon
is tudjam fogadni?

Semmit, leginkabb felejtsd el. En a helyedben VLC-t hasznalnek a kuldo oldalon is. Egyreszt meg tud nyitni line in-t, masreszt tud streamelni (akar http-n is, az lenne a legegyszerubb). Ezt a kettot kell osszeraknod es megvagy. Mindkettohoz remek leirasok talahatok szerte az Interneten. Ha a raspberry pi-on nem akarsz X-et futtatni, akkor a VLC parancssorbol is ert.

Nagyjabol igy nez ki: File -> Open capture device, itt kivalasztod a line in-t, Stream output melle pipa, Settings, Stream, kivalasztod a protokollt (HTTP-t javaslom), beallitod a portot meg a keretezest (egyelore mindegy), IP-t uresen hagyod, OK, Open, es elvileg kesz. Macrol Androidra tudok fajlbol streamelni, a line in-t nem hagyja megnyitni a macos. :(

--
cc

_________________________________________________
linux lista      -      linux@mlf.linux.rulez.org
http://mlf.linux.rulez.org/mailman/listinfo/linux

válasz