gpt4 book ai didi

python - 以编程方式将图像发送到 v4l2 设备

转载 作者:太空宇宙 更新时间:2023-11-03 18:45:12 27 4
gpt4 key购买 nike

我有一个生成 jpg 的程序。我想在生成这些图像时将其发送到我的虚拟网络摄像头。我可以使用 v4l2loopback 创建虚拟网络摄像头,并且一直在研究 gstreamer,但无法完全让它工作。

我已经尝试使用 multifilesrc 进行 gst-launch,但这似乎只有在我已经生成图像时才有效。我还尝试将 gst-launch 设置为仅将一张图像发送到网络摄像头,然后在生成新图像时覆盖该图像。不幸的是,这会导致 gstreamer 崩溃。

有谁知道我怎样才能做到这一点?我不必使用 gstreamer,但我希望在 Linux 中实现它,最好是在 Python 中。

最佳答案

以下脚本将监视一个目录并将每个新添加的图像传递给 gstreamer,gstreamer 会将其发送到视频设备(/dev/video0,但可以随意更改)。

使用要监视的路径作为唯一参数进行调用(例如./pics2v4l2/tmp/pics)

#!/bin/sh

DIR=$1
DEVICE=/dev/video0

inotifywait -m "${DIR}" \
| awk '$2== "CLOSE_WRITE,CLOSE" {print $1"/"$3; fflush()}' \
| while read f; do
gst-launch-0.10 uridecodebin uri="file://${f}" \
! ffmpegcolorspace \
! videoscale \
! imagefreeze \
! identity error-after=2 \
! v4l2sink show-preroll-frame=false device=${DEVICE}
done

关于python - 以编程方式将图像发送到 v4l2 设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19694215/

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