gpt4 book ai didi

python-3.x - 将 numpy 数组通过管道传输到虚拟视频设备

转载 作者:行者123 更新时间:2023-12-04 23:07:10 24 4
gpt4 key购买 nike

我想将图像通过管道传输到虚拟视频设备(例如/dev/video0),图像是在具有所需帧速率的循环内创建的。
在这个最小的例子中,我只有两个在 cv2 窗口中交替的数组。现在我寻找一个很好的解决方案来将阵列传输到虚拟设备。
我看到了ffmpeg-python可以与 ffmpeg.run_async() 异步运行,但到目前为止,我无法用这个包做任何事情。
没有 ffmpeg 东西的示例代码:

#!/usr/bin/env python3

import cv2
import numpy as np
import time

window_name = 'virtual-camera'
cv2.namedWindow(window_name, cv2.WINDOW_GUI_EXPANDED)

img1 = np.random.uniform(0, 255, (1080, 1440, 3)).astype('uint8')
img2 = np.random.uniform(0, 255, (1080, 1440, 3)).astype('uint8')

for i in range(125):
time.sleep(0.04)
if i % 2:
img = img1
else:
img = img2
cv2.imshow(window_name, img)
cv2.waitKey(1)
cv2.destroyAllWindows()

最佳答案

首先,您必须设置一个虚拟相机,例如 v4l2loopback .见 here如何安装它(忽略使用示例)。
然后,您可以像写入普通文件一样写入虚拟相机(也就是说,让 openCV 将图像写入说 /dev/video0 ;如何做到这一点您必须自己找出来,因为我不是 openCV 专家)。
最后可以使用ffmpeg-python/dev/video0作为输入文件,对视频做一些事情,就是这样!

关于python-3.x - 将 numpy 数组通过管道传输到虚拟视频设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66638531/

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