gpt4 book ai didi

udp - 使用 gstreamer 1.0 通过 UDP 将网络摄像头视频流式传输到 PC

转载 作者:行者123 更新时间:2023-12-03 22:47:01 28 4
gpt4 key购买 nike

我正在尝试将视频从 Raspberry Pi(在 Raspbian 上)流式传输到 Windows 7 PC,如下面的视频所示:https://www.youtube.com/watch?v=lNvYanDLHZA

我有一个连接到 Raspberry Pi 的 Logitech C270,并设法使用以下方法通过 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 )
但没有运气。 (尝试更改 video/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

树莓派 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

但我无法弄清楚如何以相同的方式使用网络摄像头而不是树莓派相机(即 v4l2src 而不是 raspivid)

编辑 2

以下工作,但很慢,有很大的延迟:

树莓派
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

个人电脑:
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 的提示)巨大的滞后是由于树莓派必须对网络摄像头视频进行编码,而树莓派视频已经编码,但不确定这是否有意义?

最佳答案

http://www.z25.org/static/rd/videostreaming_intro_plab/ 找到解决方案的提示

以下非常适合将视频从 Logitech c270 上的 raspberry pi 流式传输到 windows 7 pc:

电脑端:

gst-launch-1.0 -e -v udpsrc port=5001 ! ^
application/x-rtp, encoding-name=JPEG,payload=26 ! ^
rtpjpegdepay ! jpegdec ! ^
autovideosink

树莓派方面:

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 帧,因此不需要使用“image/jpeg”进行编码

关于udp - 使用 gstreamer 1.0 通过 UDP 将网络摄像头视频流式传输到 PC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27969541/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com