如何知道应该使用哪个帧速率来通过 ffmpeg 捕获网络摄像头?

如何知道应该使用哪个帧速率来通过 ffmpeg 捕获网络摄像头?

我正在使用以下命令从我的网络摄像头捕获视频:

ffmpeg -r 30 -f v4l2 -video_size 160x120 -i /dev/video0 output.avi

-r 选项表示我想要的帧速率。但是,这并不是说我想要 30 FPS,只是否则它无法正常工作。

如果没有帧速率,捕获就会出现很多错误(我猜它试图捕获太多内容,但无法跟上)。

将帧速率设置为 15 时,输出视频的时间是捕获时间的两倍(有点慢动作)。

将帧速率设置为30,似乎就没问题了。

我如何确定我应该使用 30 fps?如果我想捕捉 15 fps,我应该怎么做才能获得正确的回放?

有关我的网络摄像头的信息:

co@macbook2008:~$ v4l2-ctl --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
  Index       : 0
  Type        : Video Capture
  Pixel Format: 'YUYV'
  Name        : YUV 4:2:2 (YUYV)
    Size: Discrete 160x120
      Interval: Discrete 0.033s (30.000 fps)
      Interval: Discrete 0.036s (27.500 fps)
      Interval: Discrete 0.040s (25.000 fps)
      Interval: Discrete 0.044s (22.500 fps)
      Interval: Discrete 0.050s (20.000 fps)
      Interval: Discrete 0.057s (17.500 fps)
      Interval: Discrete 0.067s (15.000 fps)
      Interval: Discrete 0.080s (12.500 fps)
      Interval: Discrete 0.100s (10.000 fps)
      Interval: Discrete 0.133s (7.500 fps)
      Interval: Discrete 0.200s (5.000 fps)
    Size: Discrete 176x144
      Interval: Discrete 0.033s (30.000 fps)
      ... and so on for other resolutions

谢谢

相关内容