哪些 ffmpeg 设置可以获得我的网络摄像头能够达到的最佳视频分辨率/帧率?

Ray*_*Ray 6 video compression webcam resolution ffmpeg

我想从我的网络摄像头录制最好的视频文件(在分辨率/帧率/颜色方面)。
现在我正在使用这个命令:

ffmpeg -f v4l2 -framerate 25 -video_size 640x480 -i /dev/video0 output.mkv
Run Code Online (Sandbox Code Playgroud)

我的网络摄像头似乎支持这一点:

$ ffmpeg -f v4l2 -list_formats all -i /dev/video0
…
[video4linux2,v4l2 @ 0xf07d80] Raw       : yuyv422 : YUV 4:2:2 (YUYV) : 640x480 160x120 176x144 320x176 320x240 352x288 432x240 544x288 640x360
[video4linux2,v4l2 @ 0xf07d80] Compressed:   mjpeg :            MJPEG : 640x480 160x120 176x144 320x176 320x240 352x288 432x240 544x288 640x360
Run Code Online (Sandbox Code Playgroud)

我想我得到了解决方案部分,但是如何改进我的命令行:

  • 不使用压缩(我怀疑当前的 .mkv 输出被压缩)
  • 使用相机和计算机能够达到的最佳帧率,也不要复制帧(如果网络摄像头无法以该速率捕获帧,则以 100 fps 保存文件毫无意义)
  • 欢迎所有进一步提高视频质量的想法

小智 1

我用的是: ffmpeg -f video4linux2 -input_format yuyv422 -video_size 640x480 -i /dev/video0 -c:v copy 640x480.mkv