Portál AbcLinuxu, 27. dubna 2024 06:56


Dotaz: mkfifo a videostreaming z quadrocoptery

23.12.2014 20:35 Jiri K. | skóre: 1
mkfifo a videostreaming z quadrocoptery
Přečteno: 343×
Odpovědět | Admin

Dobry den,

mam na raspberry Pi kameru, jejiz vystup streamuju pres prikaz " ... | nc -l -p 5001". Na stream se pak pripojim takto: "nc 10.0.0.10 5001 | tee camStream > /dev/null". Soubor camStream je vytvren pres "mkfifo". Z tohoto souboru pak muzu cist jednak z MPlayeru, druhak si ho muzu otevrit pres OpenCV v moji C++ aplikaci kde delam nejaky image processing.

  1. Doufam ze pri pouziti mkfifo se vubec nepouziva disk, ale vse se deje pres pamet. Je to tak?
  2. Vzdy kdyz ukoncim moji C++ aplikaci, ukonci se mi spustene naslouchani na strane Raspi i na strane mojeho notebooku - nejde ten prikaz "nc" nejak lepe nastavit, aby se naslouchani/pripojovani neprerusovalo?
  3. Pres OpenCV se mi nedari primo se pripojit na stream na strane RPi pres prikaz VideoCapture cap("10.0.0.10:5001") - nenapada vas, jak by mel byt spravny format toho stringu, aby to slo primo?
  4. Je mkfifo vhodny i pro komunikaci mezi aplikacemi?

Dekuji


Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

pepe_ avatar 23.12.2014 21:00 pepe_ | skóre: 48
Rozbalit Rozbalit vše Re: mkfifo a videostreaming z quadrocoptery
Odpovědět | | Sbalit | Link | Blokovat | Admin

Muzes to napsat detailneji jak z kamery ctes a jak to prehravas ?  Mam PI s kamerou a chci pres wifi streamovat obraz a zvuk. Diky za navodek.

23.12.2014 23:02 NN
Rozbalit Rozbalit vše Re: mkfifo a videostreaming z quadrocoptery
Odpovědět | | Sbalit | Link | Blokovat | Admin
When processes are exchanging data via the FIFO, the kernel passes all data internally without writing it to the filesystem.
Neni tam to tee zbytecne, kdyz output posilas do /dev/null? Nema byt prvni nc takto?
nc -l 5001
Řešení 1× (Jiri K. (tazatel))
24.12.2014 14:05 Jiri K. | skóre: 1
Rozbalit Rozbalit vše Re: mkfifo a videostreaming z quadrocoptery
Odpovědět | | Sbalit | Link | Blokovat | Admin

Na strane RPi volam:

A na stran2 PC volam:

Je to ten nejrychlejsi pro mne znamy zpusob jak posilat data realtime (vsimi si, ze ctu s rychlejsim fps nez zapisuju, to je dulezite, jinak to ma delay bo se to bufferuje)

Tak ten "tee" slouzi k zapisu do souboru, ne? Tak proto ho pouzivam.

24.12.2014 15:57 DarkKnight | skóre: 26
Rozbalit Rozbalit vše Re: mkfifo a videostreaming z quadrocoptery
K zapisu do souboru slouzi >, tee slouzi pro duplikaci stdin (obsah zapise do souboru a zaroven ho vypisuje na stdout), takze vzhledem k pouziti neni vubec treba
31.12.2014 14:49 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: mkfifo a videostreaming z quadrocoptery
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mám za to, že ve chvíli, kdy z té C++ aplikace přestanete číst tu rouru camStream, dostane program tee, který se do ní pokouší zapisovat, signál SIGPIPE (Broken pipe) a ukončí se. To samé se stane tomu programu nc na notebooku, tím se přeruší síťové spojení a ukončí se i ten naslouchající nc na RPi.

Co s tím? Místo tee můžete třeba použít nějaký program, který bude dělaný pro zápis do roury, tj. bude se signálem SIGPIPE počítat a odpovídajícím způsobem na něj reagovat. Naslouchající nc na notebooku může hlídat nějaký supervizor (např. runit) a když se ukončí, spustí se znovu.
Quando omni flunkus moritati

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.