웹캠이 MJPEG “프로토콜”을 사용하여 ~ 24를, YUYV를 사용하여 ~ 10fps 만 제공 할 수 있기 때문에 MJPEG 모드에서 웹캠 (logitech c910)을 열려면 ffmpeg가 필요합니다. ffmpeg 명령 줄을 사용하여 둘 중에서 선택할 수 있습니까?
xx@(none) ~ $ v4l2-ctl --list-formats
ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: 'YUYV'
Name : YUV 4:2:2 (YUYV)
Index : 1
Type : Video Capture
Pixel Format: 'MJPG' (compressed)
Name : MJPEG
내 현재 명령 줄 :
ffmpeg -y -f alsa -i hw:3,0 -f video4linux2 -r 20 -s 1280x720 -i /dev/video0 -acodec libfaac -ab 128k -vcodec libx264 /tmp/web.avi
ffmpeg는 웹캠에서 녹화 할 때 손상된 h264 스트림을 생성하지만 x11grab에서 녹화 할 때는 일반 h264 스트림이 발생합니다. 또 다른 코덱 (mjpeg, mpeg4)은 웹캠과 잘 작동하지만 … 이것은 또 다른 이야기입니다.
전체 ffmpeg의 콘솔 출력을 업데이트 하십시오 : http://pastebin.com/Hzem6CKF (YUV 모드에서 비디오 장치를 여는 것을 볼 수 있지만 장치는 MJPEG 출력도 제공 할 수 있습니다).
답변
웹캠으로 출력 할 수있는 항목에 대한 추가 정보를 나열 할 수 있습니다 v4l2-ctl --list-formats-ext
. -list_formats
입력 옵션을 사용하여 ffmpeg와 함께 웹캠 정보를 표시 할 수도 있습니다.
$ ffmpeg -f video4linux2 -list_formats all -i /dev/video0
[...]
[video4linux2,v4l2 @ 0x1fb7660] Raw : yuyv422 : YUV 4:2:2 (YUYV) : 640x480 160x120 176x144 320x176 320x240 352x288 432x240 544x288 640x360
[video4linux2,v4l2 @ 0x1fb7660] Compressed: mjpeg : MJPEG : 640x480 160x120 176x144 320x176 320x240 352x288 432x240 544x288 640x360
필자의 예제에서이 웹캠은 원시 ( yuyv422
) 및 압축 ( mjpeg
) 형식을 모두 지원할 수 ffmpeg
있으며 -input_format
입력 옵션으로 원하는 형식을 알려줄 수 있습니다 .
예
MJPEG 비디오 스트림을 스트림 복사합니다 (재 인코딩 없음).
ffmpeg -f v4l2 -input_format mjpeg -i /dev/video0 -c:v copy output.mkv
원시 웹캠 비디오를 H.264로 다시 인코딩하십시오.
ffmpeg -f v4l2 -input_format yuyv422 -i /dev/video0 -c:v libx264 -vf format=yuv420p output.mp4
위와 동일하지만 프레임 속도 및 비디오 크기를 수동으로 선택하십시오 ( v4l2-ctl --list-formats-ext
사용 가능한 프레임 속도 및 비디오 크기의 경우).
ffmpeg -f v4l2 -input_format yuyv422 -framerate 30 -video_size 640x480 -i /dev/video0 -c:v libx264 -vf format=yuv420p output.mp4
-
자세한 옵션 은 video4linux2 입력 장치 설명서를 참조하십시오 .
-
출력되는 프레임 속도가 예상보다 낮 으면 조명을 더 추가하십시오. 웹캠이 어두운 환경에서 더 긴 노출을 얻기 위해 프레임 속도를 낮추는 것일 수 있습니다.
답변
ffmpeg -t 60 -f video4linux2 -input_format mjpeg -i /dev/video0 -c:v libx264 -strict -2 /DataVolume/share/Public/v/outputs.mp4