Fråga:
Vilken streaminglösning för Picam har den minsta fördröjningen?
Antonvh
2014-02-01 22:58:13 UTC
view on stackexchange narkive permalink

Det här inlägget visar hur man streamer med VLC. Det fungerar bra och är enkelt, men det ger mig ungefär en andra fördröjning. Det här inlägget använder GStreamer och har 0,3 sekunders fördröjning. Jag skulle vilja ha mindre.

Är det möjligt att använda Raspberry Pi grafikchip för att påskynda kodningen?

Det är inte möjligt än. Fördröjning på 0,3 ms är mycket bra och du kommer inte att bli bättre (för närvarande) på grund av bristen på V2L. [Kanske hjälper det här] (http://pkula.blogspot.co.uk/2013/06/live-video-stream-from-raspberry-pi.html)
@ppumkin Jag tror att OP sa att förseningen var .3 sekunder, inte millisekunder. Menar du också V4L?
Ja 3ms tänkte jag. Video4Linux-drivrutin? Eller kallas det något annat. Du vet. Den inhemska föraren.
@ppumkin Ahh, då skulle du ha fel. [V4L2-drivrutinerna ingick i NOOBS v1.3.3] (http://raspberrypi.stackexchange.com/a/9777/8631).
Då skulle VLC i så fall bara strömma h264-paketen som de är (utan mer kodning - ställ in V4L2-drivrutinen för att göra allt hårt arbete) till destinationen. 0,3 sekunder är mycket bättre än de tidigare 3-sekunderslösningarna. Är du inte säker på hur du kommer snabbare än 0,3 sekunder?
http://www.linux-projects.org/modules/sections/index.php?op=viewarticle&artid=16
Tx. Försöker snart dessa förare. Jag hittade också en lösning med hjälp av netcat. Det kanske hjälper.
Tre svar:
antoine
2014-12-28 20:04:52 UTC
view on stackexchange narkive permalink

Med Ubuntu 14.10 och Gstreamer når jag 100 till 116 ms latens med 1280 x 720 @ 60Hz.

Tankar till @Antonvh som sätter mig på rätt väg. Jag återger här lösningen för senare referens.

För att strömma från Pi:

  raspivid -t 0 -b 2000000 -fps 60 -w 1280 -h 720 -o - \ | gst-launch-1.0 -e -vvv fdsrc! h264parse! rtph264pay pt = 96 config-interval = 5 \! udpsink host = 10.42.0.1 port = 5001  

För att ta emot det på din dator med gst-0.10 och skicka det till en virtuell v4l2-enhet (du behöver verkligen v4l2loopback ):

  gst-launch -v udpsrc port = 5001! applikation / x-rtp, nyttolast = 96! rtph264depay \! ffdec_h264! ffmpegcolorspace! v4l2sink device = / dev / video1  

Sedan kan du öppna enheten / dev / video1 i vilken programvara som helst som stöder v4l2-inspelning.

För en gst-1.0-lösning (v4l2loopback fungerar inte med gst-1.0), jag låter dig se Antonvh-blogginlägget.

Antonvh
2014-04-03 12:36:18 UTC
view on stackexchange narkive permalink

Jag fick 200 ms fördröjning! Tricket: skicka ut mindre ramar från Pi än du läser på fjärrsidan, detta ser till att bufferten förblir tom.

Här är en bild Jag tog av RPi som filmade en stoppur. Det visar tidsskillnaden.

Detta är receptet jag använder. Först på den bärbara datorn (Mac) gör du detta:

  nc -l 5001 | mplayer -fps 24 -cache 1024 -  

sedan på RPI startar streaming:

  raspivid -t 999999 -w 1280 -h 720 -fps 20 - o - | nc 192.168.178.22 5001  

Se till att:

  • Installera mplayer först. Endast Homebrew-metoden fungerade för mig. Den vanliga nedladdningen bröts.
  • Ändra IP-numret ovan till numret på din bärbara dator.
Det här är ett smart trick! Jag undrar om det också fungerar för den nya UV4L-drivrutinen
Problemet med denna lösning är att det introducerar mycket stammare från uppspelningssidan. Jag undrade om du hittade en lösning på det.
hendry
2014-03-04 16:12:22 UTC
view on stackexchange narkive permalink

Jag använder det här videoreceptet: http://archpi.dabase.com/#sending-and-receiving-pi-camera-video-over-the-network

Har du provat https://github.com/thaytan/gst-rpicamsrc? Det borde vara lite mer strömlinjeformat. Tbh, jag kan inte bry mig om att prova det.

0,3 s fördröjning är ganska jättebra.

Tack för länkarna! Jag tror att jag har en fördröjning på mindre än 0,3 sekunder nu, jag måste fortfarande dokumentera lösningen och mäta den exakt. Kommer att publicera snart. Om mina mätningar bevisar att det är mer än 0,3 försöker jag det andra receptet.
@Antonvh Hur går forskningen / mätningarna? Ger detta svar dig bättre resultat?


Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...