使用FFMPEG从MAC流式摄像头流



我想使用ffmpeg从Mac流式摄像头。

首先,我使用ffmpeg -f avfoundation -list_devices true -i ""

检查了支持的设备

输出:

[AVFoundation input device @ 0x7fdf1bd03000] AVFoundation video devices:
[AVFoundation input device @ 0x7fdf1bd03000] [0] USB 2.0 Camera #2
[AVFoundation input device @ 0x7fdf1bd03000] [1] FaceTime HD Camera
[AVFoundation input device @ 0x7fdf1bd03000] [2] Capture screen 0
[AVFoundation input device @ 0x7fdf1bd03000] [3] Capture screen 1
[AVFoundation input device @ 0x7fdf1bd03000] AVFoundation audio devices:
[AVFoundation input device @ 0x7fdf1bd03000] [0] Built-in Microphone

设备[0]是我要使用的网络摄像头。


然后我尝试使用ffmpeg -f avfoundation -i "0" out.mpg

捕获网络摄像头

输出:

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

之后,我尝试使用ffmpeg -f avfoundation -framerate 30 -i "0" -f mpeg1video -b 200k -r 30 -vf scale=1920:1080 http://127.0.0.1:8082/

从我的Mac流式摄像头流式摄像头

输出:

[avfoundation @ 0x7f8515012800] An error occurred: The activeVideoMinFrameDuration passed is not supported by the device.  Use -activeFormat.videoSupportedFrameRateRanges to discover valid ranges.0: Input/output error

我无法捕获或流式摄像头。但是,当我使用FaceTime摄像头而不是此网络摄像头时,一切都可以。我已经搜索了几天,但仍然无法解决。有人在Mac上有网络摄像头和FFMPEG的经验吗?

' - 需要framerate'

您可以尝试

ffmpeg -f avfoundation -framerate 30 -i "0" -target pal-vcd ./test.mpg

我遇到了同样的问题,试图流式传输Logitech C920网络摄像头,其中内置的FaceTime摄像机的流传输正常。

我发现降低帧速率阻止了您报告的错误消息。这是我用来使网络摄像头工作的命令(其中相同的帧速率为30的命令无效)。

ffmpeg -f avfoundation -framerate 10 -pixel_format yuyv422 -i "0" out.avi

通过视频格式,您的网络摄像头支持以下命令可以正常工作。尽管由于我没有相同的网络摄像头,但这可能无法解决您的问题。

ffmpeg -f avfoundation -framerate 6 -i "0" -target pal-vcd test.mpg

我希望这可以帮助您找到解决方案。

最新更新