我正在尝试与远程计算机共享我的计算机的摄像头。为了做到这一点,我想与 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 是远程计算机上的虚拟摄像头