我想使用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/
输出:
[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
我希望这可以帮助您找到解决方案。