feat:obs virtual cam output ready
This commit is contained in:
1 parent
8601645bb0
commit
c537839e6c
2 files changed
+19
-5
No files matched your search
+15
-5
@@ -8,7 +8,8 @@ from .utils.channel_shared_mem import SharedMemoryExclusiveChannel
|
||||
from multiprocessing import shared_memory
|
||||
from .utils.timer_wait import wait_until
|
||||
from PIL import Image
|
||||
|
||||
from .utils.fps import FPS
|
||||
import pyvirtualcam
|
||||
|
||||
|
||||
def main():
|
||||
@@ -79,7 +80,16 @@ def main():
|
||||
last_time : float = time.perf_counter()
|
||||
interval : float = 1.0 / args.frame_rate_limit if args.frame_rate_limit > 0 else 0.0
|
||||
|
||||
from .utils.fps import FPS
|
||||
if args.output_virtual_cam:
|
||||
virtual_cam = pyvirtualcam.Camera(width=cam_width_scale * args.model_output_size,
|
||||
height=args.model_output_size,
|
||||
fps=args.frame_rate_limit,
|
||||
backend='obs',
|
||||
fmt=pyvirtualcam.PixelFormat.RGB)
|
||||
print(f'Using virtual camera: {virtual_cam.device}')
|
||||
else:
|
||||
print("Using OpenCV windows for output display.")
|
||||
|
||||
pipeline_fps = FPS()
|
||||
|
||||
print("Interval set to {:.3f} seconds".format(interval))
|
||||
@@ -93,7 +103,7 @@ def main():
|
||||
last_time += interval
|
||||
|
||||
if args.output_virtual_cam:
|
||||
pass
|
||||
virtual_cam.send(np_ret_shms[i])
|
||||
else:
|
||||
cv2.imshow("Output Frame Batch {}".format(i), np_ret_shms[i])
|
||||
cv2.waitKey(1)
|
||||
@@ -102,8 +112,8 @@ def main():
|
||||
infer_process.pipeline_fps_number.value,
|
||||
input_fps.value,
|
||||
infer_process.average_model_interval.value * 1000,
|
||||
infer_process.cache_hit_ratio.value,
|
||||
infer_process.gpu_cache_hit_ratio.value,
|
||||
infer_process.cache_hit_ratio.value * 100,
|
||||
infer_process.gpu_cache_hit_ratio.value * 100,
|
||||
pipeline_fps()
|
||||
), end ='\r', flush=True)
|
||||
|
||||
|
||||
@@ -199,6 +199,10 @@ class ModelClientProcess(Process):
|
||||
bgr_channels = cv2.cvtColor(bgra_image, cv2.COLOR_BGRA2BGR)
|
||||
ret.append(bgr_channels)
|
||||
elif args.output_virtual_cam:
|
||||
if rgb_channels is None:
|
||||
rgb_channels = cv2.cvtColor(bgra_image, cv2.COLOR_BGRA2RGB)
|
||||
if args.anime4k and not args.alpha_split:
|
||||
rgb_channels = cv2.cvtColor(rgba_image, cv2.COLOR_RGBA2RGB)
|
||||
ret.append(rgb_channels)
|
||||
else:
|
||||
ret.append(rgba_image)
|
||||
|
||||
Reference in new issue
Block a user