我有一个连接到覆盆子pi的fisheye usb网络摄像头,我试图将其传输到计算机上。我玩过ffmpeg,看起来有点迟了超过320x240。从我所读到的,人们对gstreamer感到满意。
所以我测试了usb网络摄像头,它在本地工作
gst-launch-1.0 -v v4l2src device=/dev/video0 ! 'video/x-raw,width=640,height=480' ! glimagesink
这些是我尝试用来将视频传输到计算机的命令。然而,我所看到的只是一扇绿色的窗户。
TCP服务器:gst-launch-1.0 -v v4l2src device=/dev/video0 ! 'video/x-raw,width=640,height=480,framerate=30/1' ! x264enc byte-stream=true ! rtph264pay ! gdppay ! tcpserversink host=192.168.200.38 port=5000 sync=false
TCP客户端:gst-launch-1.0 -v tcpclientsrc host=192.168.200.38 port=5000 ! gdpdepay ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false
或
UDP服务器:
gst-launch-1.0 -v v4l2src device=/dev/video0 ! 'video/x-raw,width=640,height=480,framerate=30/1' ! x264enc byte-stream=true ! rtph264pay ! gdppay ! udpsink host=192.168.200.37 port=5000 sync=false
UDP客户端:
gst-launch-1.0 -v udpsrc port=5000 ! gdpdepay ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false
我想我必须以某种方式错误地管道插件。任何建议表示赞赏。
答案 0 :(得分:1)
首先尝试以下方法:
rate = Math.Round((fuel / distance),2);
Console.WriteLine("Your fuel consumption rate is {0} lt/100km", (rate * 100).ToString("#.##"));
(这通常需要在嵌入式系统中使用)如果问题仍未解决,请说明一些观点:
tune=zerolatency
/ filesink
)并解码命令(使用fakesink
)答案 1 :(得分:0)
所以我把东西弄了一天,让它运转起来。我将发布到目前为止的内容。队列让rpi多线程为h264编码部分,我为x264enc提供了omxh264enc,因为它是openmax / accelerated。两种变化都有助于延迟
我想我不需要gdppay? (看到有人在没有它的情况下流Stream webcam video with gstreamer 1.0 over UDP to PC)
rpi方
gst-launch-1.0 -vv -e v4l2src device=/dev/video0 ! "video/x-raw,width=640,height=480" ! queue ! omxh264enc ! h264parse ! rtph264pay ! udpsink host=192.168.200.37 port=5000
计算机端
gst-launch-1.0 -vv -e udpsrc port=5000 ! application/x-rtp, payload=96 ! rtph264depay ! queue ! avdec_h264 ! videoconvert ! autovideosink sync=false