我尝试将视频从Raspberry Pi(在Raspbian上)流式传输到Windows 7 PC,如此视频中所示:https://www.youtube.com/watch?v=lNvYanDLHZA
我有一台Logitech C270连接到Raspberry Pi,并设法通过TCP流式传输网络摄像头视频:
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
来自我的Pi。使用VLC工作接收此功能,但延迟3秒。 我想通过UDP来做这个以获得更短的延迟(如果我错了,请纠正我)。但不能为我的生活搞清楚。我试过以下:
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
和
gst-launch-1.0 udpsrc port=1234 ! \
"application/x-rtp, payload=127" ! \
rtph264depay ! ffdec_h264 ! fpsdisplaysink sync=false text-overlay=false
分别为Pi和PC端(取自 Webcam streaming using gstreamer over UDP) 但没有运气。 (试图改变视频/ x-raw-yuv以适应1.0版本,但仍然没有运气)
任何提示都将受到高度赞赏!
修改
使用raspi相机(不是网络摄像头),以下工作:
Windows批处理脚本:
@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脚本:
#!/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
但我无法弄清楚如何以相同的方式使用网络摄像头而不是覆盆子pi相机(即v4l2src而不是raspivid)
修改2
以下是有效的,但速度很慢且有很大的延迟:
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
我现在怀疑(感谢来自@Mustafa Chelik的暗示),这个巨大的滞后是由于树莓派必须编码网络摄像头视频,而树莓派视频已经编码,不确定是否这样做感觉不过?
答案 0 :(得分:2)
从http://www.z25.org/static/rd/videostreaming_intro_plab/
找到解决方案的提示以下版本适用于从Rasite pi上的Logitech c270到Windows 7 PC的流视频:
PC端:
gst-launch-1.0 -e -v udpsrc port=5001 ! ^
application/x-rtp, encoding-name=JPEG,payload=26 ! ^
rtpjpegdepay ! jpegdec ! ^
autovideosink
RPi方:
gst-launch-1.0 -v v4l2src device=/dev/video0 \
! "image/jpeg,width=1280, height=720,framerate=30/1" \
! rtpjpegpay \
! udpsink host=$myip port=$myport
我怀疑这是网络摄像头视频对h264的编码在树莓派上太慢了,但是摄像头已经给了jpeg帧,因此没有使用&#34; image / jpeg&#34; <#34; < / p>
答案 1 :(得分:1)
我已经使用了MJPG-Streamer的网络摄像头,并且延迟了0.2秒。 http://wiki.ubuntuusers.de/MJPG-Streamer
优点是您可以使用webbrowser观看它。