我需要ffmpeg以MJPEG模式打开网络摄像头(logitech c910),因为使用MJPEG“协议”可以使网络摄像头提供约24帧的速度,而使用YUYV只能提供约10 fps的速度。我可以使用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录制时,ffmpeg会产生正常的h264 strem。另一个编解码器(mjpeg,mpeg4)可以与网络摄像头配合使用……但这是另一回事了。
更新完整ffmpeg的控制台输出:http : //pastebin.com/Hzem6CKF(您可以看到它以YUV模式打开了视频设备,但该设备也可以提供MJPEG输出)。