생산자는 소비자가 연결되어 있는지 어떻게 감지합니까?

생산자는 소비자가 연결되어 있는지 어떻게 감지합니까?

저는 v4l2loopback과 가상 카메라 스트림을 생성하기 위해 작성한 프로그램을 사용하고 있습니다. 이제 필요할 때 프로그램을 수동으로 시작하고 중지합니다. 나는 항상 데몬으로 실행하고 소비자가 장치에 연결된 경우에만 출력을 생성하도록 하고 싶습니다.

v4l2loopback 소비자가 연결되어 있는지 생산자가 감지할 수 있는 방법이 있습니까? 항상 쓰기 준비가 된 상태로 반환되는 것 같습니다 poll. 이에 대한 ioctl이나 버퍼 플래그 또는 기타 동작의 변경이 표시되지 않습니다.

어떤 아이디어가 있나요?

답변1

계속 검색하다가 이 문제를 논의하는 스레드를 찾았습니다.https://github.com/umlaeute/v4l2loopback/issues/109

v4l2loopback에는 아무것도 내장되어 있지 않은 것 같지만,코멘트실제로 inotify를 사용하는 것이 좋습니다. inotify는 가장 강력한 솔루션은 아니지만 작동합니다.

답변2

최신 v4l2loopback은 VIDIOC_SUBSCRIBE_EVENT를 지원합니다. 클라이언트가 연결되면 V4L2_EVENT_PRI_CLIENT_USAGE 이벤트를 받게 됩니다.

관련 정보