如何将udp过来的流数据转换为视频设备?

如何将udp过来的流数据转换为视频设备?

我正在尝试与远程计算机共享我的计算机的摄像头。为了做到这一点,我想与 udp 端口​​(流)共享我自己计算机的摄像头,在远程计算机上获取流并将其放在虚拟摄像头上。所以我想我可以在像 google meet 这样的平台上使用我自己的相机与我的远程计算机。

我的申请步骤如下;

/dev/video0我使用 gstream udpsink从本地电脑 ( ) 启动摄像头流,我可以在远程电脑上获取流数据,如下所示:

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

我在远程电脑上创建了一个虚拟摄像头,如下所示:

sudo modprobe v4l2loopback exclusive_caps=1 video_nr=3 card_label="VirtualCAM"

此时,我想将这个流数据转换为视频设备。我尝试使用v4l2sink device=/dev/video5代替,autovideosink但出现了一些错误。

您有什么建议吗?

答案1

我无法使用 GStreamer 转换视频流。但 ffmpeg 对我有用。我开始使用 Ffmpeg 在远程和本地计算机上发送和接收视频流。

对于本地 Linux 机器:

ffmpeg -i /dev/video0 -f mpegts udp://<ip>:<port>

对于远程 Linux 机器

ffmpeg -i udp://<ip>:<port> -f v4l2 /dev/video3

注意:/dev/video3 是远程计算机上的虚拟摄像头

相关内容