标签: usb-camera

如何在 Python 3.8 中为 asyncio.gather 构建任务列表

下面我附上了一个测试程序来演示我在asyncio.gather抛出TypeError时遇到的问题。

我的目标: 进行多个并发异步调用,以从连接到我的计算机的一系列 USB 摄像机中将摄像机图像捕获到文件中。当所有相机都完成了它们的异步捕获后,我想然后继续处理。

此处显示的异步协程take_image()对“ffmpeg”应用程序进行系统调用,该应用程序将图像从指定的相机捕获到指定的文件。

import asyncio
import os
import subprocess
import time

async def take_image(camera_id, camera_name, image_file_path, image_counter):
    image_capture_tic = time.perf_counter()
    try:
        run_cmd = subprocess.run( ["ffmpeg", '-y', '-hide_banner', '-f', 'avfoundation', '-i', camera_id,
                                   '-frames:v', '1', '-f', 'image2', image_file_path], universal_newlines=True,
                                 stdout=subprocess.PIPE, stderr=subprocess.PIPE)  # Note, ffmpeg writes to stderr, not stdout!
    except Exception as e:
        print("Error: Unable to capture image for", image_file_path)
        return "NO IMAGE!"

    image_capture_toc = time.perf_counter()
    print(f"{image_counter}: Captured {camera_name} image in: …
Run Code Online (Sandbox Code Playgroud)

python ffmpeg python-asyncio python-3.8 usb-camera

6
推荐指数
2
解决办法
4003
查看次数

从Android中的webview访问外部USB摄像头

我的Android应用中有一个webview.从webview,我可以在手机上访问默认相机.以下代码工作正常.

webview.setWebChromeClient(new WebChromeClient(){
    // Need to accept permissions to use the camera
    @Override
    public void onPermissionRequest(final PermissionRequest request) {
        L.d("onPermissionRequest");
        request.grant(request.getResources());
    }
});
Run Code Online (Sandbox Code Playgroud)

我的问题是从这个webview访问外部USB摄像头.以上权限将打开webview中的默认摄像头.

我一直无法找到任何文件,甚至说这件事是可能的.是因为一些安全问题吗?

android webview usb-camera

5
推荐指数
1
解决办法
957
查看次数

如何使用 OpenCV 和 python 访问我的 USB 摄像头?

我在使用 OpenCV 和 python 访问 USB 摄像头时遇到问题。

我收到以下错误消息,我理解这意味着没有捕获帧?

error: OpenCV(3.4.1) C:\Miniconda3\conda-bld\opencv-suite_1533128839831\work\modules\highgui\src\window.cpp:356: error: (-215) size.width>0 && size.height>0 in function cv::imshow
Run Code Online (Sandbox Code Playgroud)

我的相机如下: https: //www.gophotonics.com/products/scientific-industrial-cameras/point-grey-research-inc/45-571-cm3-u3-50s5m-cs

简单代码如下。有什么想法吗?一些帮助我会感激

import numpy as np
import cv2

cap = cv2.VideoCapture(0)
while(True):
    ret, frame = cap.read()

    cv2.imshow('frame',frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)

python opencv usb-camera

5
推荐指数
1
解决办法
2万
查看次数

更改USB摄像头的比特率

我使用带有 h264 编解码器输出的 ELP USB 摄像头。

ffmpeg-获取视频流的命令:

ffmpeg -i /dev/video1 -c:v copy output.ts
Run Code Online (Sandbox Code Playgroud)

结果我有一个 4Mb 比特率的视频 - 这个值对于我的任务来说太高了。

我使用GSTreamer时也出现同样的情况:

gst-launch-1.0 v4l2src device=/dev/video1 ! video/x-h264,width=1280,height=720,framerate=30/1 ! mpegtsmux ! filesink location=output.ts
Run Code Online (Sandbox Code Playgroud)

我知道如果我们首先解码 h264 流,然后再次将其编码为 h264,则可以更改比特率。此操作对我的 NanoPI 设备的 CPU 资源要求过高。

主要问题是: 是否可以在不解码的情况下更改 USB 相机的比特率?

提前致谢!

video ffmpeg gstreamer raspberry-pi usb-camera

3
推荐指数
1
解决办法
2432
查看次数