Raspberry Pi를 웹캠용 I/O로 사용

Raspberry Pi를 웹캠용 I/O로 사용

저는 Raspberry Pi가 이더넷을 통해 RPi에 연결된 다른 컴퓨터에 의해 실제로 제어되는 여러 서보의 I/O 보드로 사용되는 프로젝트를 진행하고 있습니다.

프로젝트에 2개의 USB 웹캠을 추가해야 하며, 그것이 타당하다면 I/O를 위한 단일 위치를 유지하기 위해 RPi에 연결하고 싶습니다.

저는 웹캠의 입력을 호스트 시스템으로 전달하는 가장 간단하고 대기 시간이 가장 짧은 방법을 찾고 있습니다. Usbip과 ffmpeg를 사용하여 데이터를 스트리밍하려고 시도했지만 두 방법 모두에서 문제가 발생했습니다. 다른 제안이 있나요? 아니면 내가 시도한 방법 중 하나를 계속 추구해야 할까요?

감사해요!

답변1

웹캠에 하드웨어 압축 기능이 있나요? 아니면 RPi에서 압축을 수행하고 있습니까? VideoCore 프로세서는 이러한 유형의 작업에 적합하지만.... Linux가 실행되는 ARM 보조 프로세서는 저화질 스트림도 압축할 수 있는 수준에 가깝지 않기 때문에 VideoCore로 오프로드하려면 OpenMAX를 사용해야 합니다. VideoCore 코덱을 로드하는 프로그램은 omxplayer일부 gstreamer플러그인입니다.

VideoCore를 사용하더라도 USB의 내부 상호 연결을 통해 원시 비디오 데이터를 가져오는 데 대역폭 문제가 발생합니다.

따라서 가능한 옵션은 다음과 같습니다.

  1. 미리 압축된(웹캠 자체 내부) 비디오를 USB에서 이더넷으로 복사합니다.
  2. Raspberry Pi의 고대역폭 비디오 포트에 인터페이스하고 처리 및 압축을 위해 VideoCore에 직접 연결되는 RPi 카메라 모듈을 사용합니다.

후자의 옵션은 대기 시간이 상당히 낮을 수 있지만 스트림은 하나만 얻을 수 있습니다. 이론적으로는 단일 비디오 포트를 통해 두 개의 스트림을 인터리빙하는 것이 가능하지만 VideoCore의 코덱은 두 개의 스트림을 수용하고 분리하도록 설계해야 하며 이를 위한 기술 데이터는 NDA에 따라 Broadcom의 최대 고객에게만 제공됩니다.

Rasberry Pi 포럼에서 비디오 코덱 개발 프로세스에 대한 자세한 내용을 확인할 수 있습니다. 짧은 버전: Broadcom이 대부분의 작업을 수행하고 Raspberry Pi 재단은 기술 데이터에 액세스할 수 있지만 엔지니어가 충분하지 않으며 NDA는 작업 계약을 금지합니다.

관련 정보