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>
.
的输出
另见:
- FFmpeg avfoundation documentation
- FFmpeg Wiki:使用 avfoundation
捕获 Desktop / Webcam
当我尝试使用 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>
.
另见:
- FFmpeg avfoundation documentation
- FFmpeg Wiki:使用 avfoundation 捕获 Desktop / Webcam