Mac 上带有 FFmpeg 的网络摄像头:设备不支持选定的帧率 (29.970030)

Webcam with FFmpeg on Mac: Selected framerate (29.970030) is not supported by the device

当我尝试使用 FFmpeg 访问网络摄像头时,Mac 上出现了一个非常奇怪的问题。 例如:

ffmpeg -f avfoundation -i "1" -framerate 60 -vcodec libx264 -preset veryfast -f flv rtmp://localhost:1935/hls/test 

无论我设置什么帧率,错误总是一样。

[avfoundation @ 0x7ff831800000] Selected framerate (29.970030) is not supported by the device
[avfoundation @ 0x7ff831800000] Supported modes:
[avfoundation @ 0x7ff831800000]   320x240@[120.101366 120.101366]fps
[avfoundation @ 0x7ff831800000]   640x480@[120.101366 120.101366]fps
[avfoundation @ 0x7ff831800000]   800x600@[60.000240 60.000240]fps
[avfoundation @ 0x7ff831800000]   1024x768@[30.000030 30.000030]fps
[avfoundation @ 0x7ff831800000]   1280x720@[60.000240 60.000240]fps
[avfoundation @ 0x7ff831800000]   1280x1024@[30.000030 30.000030]fps
[avfoundation @ 0x7ff831800000]   1920x1080@[30.000030 30.000030]fps
[avfoundation @ 0x7ff831800000]   320x240@[30.000030 30.000030]fps
[avfoundation @ 0x7ff831800000]   640x480@[30.000030 30.000030]fps
[avfoundation @ 0x7ff831800000]   800x600@[20.000000 20.000000]fps
[avfoundation @ 0x7ff831800000]   1024x768@[6.000002 6.000002]fps
1: Input/output error

这个问题我找了很多天了,还是没找到解决办法。我现在很迷茫。

我希望使用 Mac 的人可以尝试类似的命令来访问网络摄像头,以查看这是否是一个常见问题。

您正在将 -framerate 设置为输出选项而不是输入选项。 Option location matters,因此将它移到 -i 之前,它将应用于输入:

ffmpeg -f avfoundation -framerate 60 -i default output.mp4

您还需要使用您的设备支持的 -framerate,因此可能不接受任意值。参考 ffmpeg -f avfoundation -i <your device name>.

的输出

另见: