我想将图像传送到虚拟视频设备(例如 /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()