ffmpeg를 사용하여 웹캠 녹화

ffmpeg를 사용하여 웹캠 녹화

나는 ffmpeg로 어려움을 겪고 있습니다. 내 웹캠은 30fps에서 720p를 촬영할 수 있지만 MJPEG 코덱을 사용할 때만 가능합니다.

~> v4l2-ctl --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
        Index       : 0
        Type        : Video Capture
        Pixel Format: 'YUYV'
        Name        : YUV 4:2:2 (YUYV)


-- cut -- 

                Size: Discrete 1280x720
                        Interval: Discrete 0.133 s (7.500 fps)
                        Interval: Discrete 0.200 s (5.000 fps)
-- cut --

        Index       : 1
        Type        : Video Capture
        Pixel Format: 'MJPG' (compressed)
        Name        : MJPEG


-- cut -- 
                Size: Discrete 1280x720
                        Interval: Discrete 0.033 s (30.000 fps)
                        Interval: Discrete 0.040 s (25.000 fps)
                        Interval: Discrete 0.050 s (20.000 fps)
                        Interval: Discrete 0.067 s (15.000 fps)
                        Interval: Discrete 0.100 s (10.000 fps)
                        Interval: Discrete 0.200 s (5.000 fps)

-- cut --

ffmpeg에게 MJPEG 압축 형식을 읽도록 지시하는 방법을 모르겠습니다. 원본 버전을 읽으려고 시도하지만 품질이 좋지 않습니다.

답변1

어떤 옵션을 사용하고 있는지는 밝히지 않았지만 다음 두 가지 예를 찾았습니다. 이것이 당신에게 효과가 있나요?

ffmpeg -i <input_file> -vcodec mjpeg -qmin 1 -qmax 1 -o <output_file.avi>
ffmpeg -i <input_file> -vcodec mjpeg -qscale 1 <output_file.avi>

-qscale ...두 번째 예에서는 전환으로 인해 눈에 띄는 차이가 발생했다고 언급한 댓글을 발견했습니다 . x가 낮을수록 품질이 더 좋습니다(범위 2~32, 분수 허용).

관련 정보