V4L2를 사용하여 카메라 스트림 대신 h264 비디오 파일 입력 스트림을 읽을 수 있습니까?

V4L2를 사용하여 카메라 스트림 대신 h264 비디오 파일 입력 스트림을 읽을 수 있습니까?

나는 디스크의 h264 비디오 파일에서 직접 읽는 방법에 대해 C 또는 C++에서 V4L2를 사용하는 명확한 작은 예를 찾으려고 노력하고 있습니다.

또는 구문 분석된 전체 프레임 h264 청크/패킷을 개방형 V4L2 디코딩 장치에 어떻게 전달할 수 있습니까?

이것이 가능한지 또는 실제 사례가 있는지 아는 사람이 있습니까?

(그런데 저는 gstreamer, ffmpeg/avcodec에 대해 알고 있지만 v4l2의 경우 이 문제를 해결하려고 노력 중입니다.)

건배!

답변1

당신이 찾고 있는 것은 기본적으로 /dev/videoX당신이 사용하고 있는 도구에 카메라로 나타나는 가상 장치를 제공하는 v4l2loopback 장치라고 생각합니다.

v4l2loopback-dkms이를 사용하려면 배포판 패키지를 설치하고 다음을 사용하여 모듈을 로드해야 합니다 .modprobe v4l2loopback

이 가상 카메라로 비디오를 스트리밍하려면 다음을 실행하십시오. ffmpeg -re -i input.mp4 -map 0:v -f v4l2 /dev/video0여기서 input.mp4입력 비디오 파일은 /dev/video0v4l2loopback에서 생성된 가상 장치에 해당합니다(어느 것이 올바른지 확인하는 데 사용 v4l2-ctl --list-devices).

관련 정보