Stream webcam video mit gstreamer 1.0 über UDP an den PC
Ich versuche zu stream video aus einem Raspberry Pi (Raspbian) auf einem Windows 7 PC, wie in diesem video: https://www.youtube.com/watch?v=lNvYanDLHZA
Ich habe eine Logitech C270 angeschlossen an den Raspberry Pi und habe es geschafft webcam-video-stream über TCP mit:
gst-launch v4l2src device=/dev/video0 ! \
'video/x-raw-yuv,width=640,height=480' ! \
x264enc pass=qual quantizer=20 tune=zerolatency ! \
rtph264pay ! tcpsink host=$pi_ip port=5000
von meinem Pi. Erhalten diese mit VLC funktioniert, aber mit 3 sec delay.
Ich möchte dies über UDP um eine kürzere Verzögerung (korrigiert mich wenn ich falsch Liege). Aber nicht für das Leben von mir herausfinden. Ich habe versucht Folgendes:
gst-launch-1.0 v4l2src device=/dev/video0 ! \
'video/x-raw-yuv,width=640,height=480' ! \
x264enc pass=qual quantizer=20 tune=zerolatency ! \
rtph264pay ! udpsink host=$pc_ip port=1234
und
gst-launch-1.0 udpsrc port=1234 ! \
"application/x-rtp, payload=127" ! \
rtph264depay ! ffdec_h264 ! fpsdisplaysink sync=false text-overlay=false
Für die Pi-und PC-Seite, bzw. (aus
Webcam streaming mit gstreamer über UDP)
aber mit kein Glück. (habe versucht, ändern Sie die video/x-raw-yuv, um fit 1.0 version, aber noch ohne Glück)
Irgendwelche Tipps würde sehr geschätzt werden!
Bearbeiten
Mit der raspi-Kamera (nicht webcam) der folgenden Werke:
Windows-batch-Skript:
@echo off
cd C:\gstreamer\1.0\x86_64\bin
gst-launch-1.0 -e -v udpsrc port=5000 ! application/x-rtp, payload=96 !
rtpjitterbuffer ! rtph264depay ! avdec_h264 ! fpsdisplaysink sync=false
text-overlay=false
Raspberry Pi Bash-Skript:
#!/bin/bash
clear
raspivid -n -t 0 -rot 270 -w 960 -h 720 -fps 30 -b 6000000 -o - | gst-
launch-1.0 -e -vvvv fdsrc ! h264parse ! rtph264pay pt=96 config-interval=5 !
udpsink host=***YOUR_PC_IP*** port=5000
Aber ich kann nicht herausfinden, wie zu verwenden, um die webcam anstelle des raspberry pi Kamera (d.h. v4l2src anstelle von raspivid) in der gleichen Weise
Edit 2
Folgende funktioniert, aber ist sehr langsam und hat zu einer enormen Verzögerung:
RPi
gst-launch-1.0 -vv -e v4l2src device=/dev/video0 \
! videoscale \
! "video/x-raw,width=400,height=200,framerate=10/1" \
! x264enc pass=qual quantizer=20 tune=zerolatency \
! h264parse \
! rtph264pay config-interval=5 pt=96 \
! udpsink host=$myip port=$myport
PC:
gst-launch-1.0 -e -v udpsrc port=5001 ! ^
application/x-rtp, payload=96 ! ^
rtpjitterbuffer ! ^
rtph264depay ! ^
avdec_h264 ! ^
autovideosink sync=false text-overlay=false
Ich jetzt vermuten, dass (Dank Tipp von @Mustafa Chelik), dass die enorme Verzögerung ist aufgrund der Tatsache, dass der raspberry pi hat zu Kodieren, die webcam-video, während der raspberry pi video ist bereits codiert, nicht sicher, ob das Sinn macht, obwohl?
Ich würde denken, dass UDP schneller war, als für live-streaming, da es ein verbindungsloses Protokoll, in der Erwägung, dass TCP verbindungsorientiert ist, und damit haben einige Weiterverbreitung Verzögerungen (den threeway-handshake und alles, was). Nicht sicher, ob es in der Lage, HD-Videos zu streamen, aber es sollte in der Lage sein, stream guter Qualität video. Nicht sicher über die framerate, noch auf Arbeit herauszufinden, dass heraus.
InformationsquelleAutor simen-andresen | 2015-01-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gefunden, die Hinweise auf die Lösung von http://www.z25.org/static/rd/videostreaming_intro_plab/
Den folgenden arbeitete sehr gut für video-streaming von Logitech c270 auf raspberry pi auf einen windows 7 pc:
PC-Seite:
RPi Seite:
Ich vermute, dass es die Kodierung der webcam-video zu h264, war zu langsam auf dem raspberry pi, jedoch ist die webcamera schon gab jpeg-frames und somit keine Codierung vorzunehmen war mit "image/jpeg"
gst-launch-1.0 -vvv v4l2src device=/dev/video1 ! "image/jpeg,width=800,height=600,framerate=8/1" ! jpegdec ! xvimagesink
Dann begann streaming:gst-launch-1.0 -vvv v4l2src device=/dev/video1 ! "image/jpeg,width=800,height=600,framerate=8/1" ! rtpjpegpay ! udpsink host=127.0.0.1 port=5000
Und empfangen:gst-launch-1.0 -vvv v4l2src device=/dev/video1 ! "image/jpeg,width=800,height=600,framerate=8/1" ! rtpjpegpay ! udpsink host=127.0.0.1 port=5000
schlägt Fehl mit: "GstJpegDec:jpegdec0: Anzahl der Komponenten nicht unterstützt: 0 (max 3)"InformationsquelleAutor simen-andresen
Habe ich für mein webcamstream den MJPG-Streamer und erhalten Sie einen 0,2 Sekunden Verzögerung.
http://wiki.ubuntuusers.de/MJPG-Streamer
Und der Vorteil ist, dass Sie sehen können Sie mit dem webbrowser.
InformationsquelleAutor Waishon