Webcam streaming from Mac using FFmpeg

被刻印的时光 ゝ 提交于 2019-12-03 10:03:11

问题


I want to stream my webcam from Mac using FFmpeg.

First I checked the supported devices using ffmpeg -f avfoundation -list_devices true -i ""

Output:

[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

The device[0] is the webcam I want to use.


Then I tried to capture the webcam using ffmpeg -f avfoundation -i "0" out.mpg

Output:

[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

After that, I tried stream this webcam from my Mac using ffmpeg -f avfoundation -framerate 30 -i "0" -f mpeg1video -b 200k -r 30 -vf scale=1920:1080 http://127.0.0.1:8082/

Output:

[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

I cannot capture or stream this webcam. However when I used the Facetime camera instead of this webcam, everything was OK. I've been searching for this problem for a few days, but still cannot fix it. Does anyone have experience with webcam and FFmpeg on Mac?


回答1:


'-framerate' is needed

you can have a try

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




回答2:


I experienced the same problem trying to stream a Logitech C920 webcam where streaming of the built in FaceTime camera works fine.

I found that reducing the frame rate stopped the error message you reported from being displayed. Here is the command I used to get my webcam working (where the same command with a frame rate of 30 did not work).

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

From the video formats your webcam supports it looks like the following command could work. Though as I do not have the same webcam this may not resolve your issue.

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

I hope this helps you find a solution.



来源:https://stackoverflow.com/questions/37960828/webcam-streaming-from-mac-using-ffmpeg

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!