프로젝트 소개

µStreamer(ustreamer)는 웹캠, HDMI/VGA 캡처 동글, Raspberry Pi 카메라 등 모든 V4L2 호환 장치에서 비디오를 캡처하여 브라우저와 VLC 같은 플레이어에 HTTP로 제공하도록 설계된 고성능 MJPEG 스트리밍 서버입니다. 원격 KVM-over-IP 사용 사례에서 최대 해상도와 프레임 속도를 제공하기 위해 PiKVM 프로젝트의 일부로 만들어졌습니다. README에 명시된 주요 기능: - CPU 활용도를 높이기 위한 멀티스레드 JPEG 인코딩. - Raspberry Pi(커널 ≥5.15)에서 V4L2 M2M을 통한 하드웨어 가속 인코딩. - DV-timings 지원: 소스 해상도 변경(예: HDMI 핫플러그)에 동적으로 적응. - 지속적 스트리밍: 입력 장치 연결이 끊기면 "NO LIVE VIDEO" 자리 표시자를 표시하고, 재연결 시 자동으로 재개. - 프레임 중복 제거(`--drop-same-frames`)로 HDMI 같은 정적 디지털 소스의 대역폭을 대폭 절감. - UNIX 도메인 소켓 및 systemd 소켓 활성화 지원. - 스트림 상태를 나타내는 GPIO 신호(libgpiod 사용). - 내장 HTTP 파일 서빙 및 H.264 스트리밍을 위한 Janus WebRTC 통합. - 드롭인 교체를 위한 mjpg-streamer HTTP API 호환. 설치는 소스 빌드(Makefile) 또는 배포판 패키지(Arch, Fedora, Debian/Ubuntu, OpenWRT, FreeBSD)를 통해 이루어집니다. Raspberry Pi 4 HDMI 캡처 설정용 Docker 이미지도 제공됩니다. 구성은 전적으로 명령줄 기반이며, 일반적인 프로덕션 실행 시 입력 형식, 하드웨어 인코더, 작업자 스레드, DV-timings, 프레임 드롭 임계값을 지정합니다. 이 프로젝트는 GPL-3.0-or-later 라이선스를 따릅니다.