web-dev-qa-db-ja.com

FFmpegを使用したMacからのWebカメラストリーミング

FFmpegを使用してMacからWebカメラをストリーミングしたい。

まず、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

Device [0]は私が使いたいウェブカメラです。


次に、ffmpeg -f avfoundation -i "0" out.mpgを使用してWebカメラをキャプチャしようとしました

出力:

[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からこのWebカメラをストリーミングしてみました

出力:

[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

このウェブカメラをキャプチャまたはストリーミングできません。ただし、このWebカメラの代わりにFacetimeカメラを使用した場合は、すべて問題ありませんでした。私はこの問題を数日間探していましたが、それでも修正できません。 MacでウェブカメラとFFmpegの経験がある人はいますか?

7
Galaxy

「-フレームレート」が必要です

あなたは試してみることができます

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

6
Mr_liang

内蔵のFaceTimeカメラのストリーミングが正常に機能するLogitechC920Webカメラをストリーミングしようとしても同じ問題が発生しました。

フレームレートを下げると、報告したエラーメッセージが表示されなくなることがわかりました。これは、Webカメラを機能させるために使用したコマンドです(フレームレートが30の同じコマンドは機能しませんでした)。

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

Webカメラがサポートするビデオ形式から、次のコマンドが機能するように見えます。私は同じウェブカメラを持っていないので、これはあなたの問題を解決しないかもしれませんが。

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

これが解決策を見つけるのに役立つことを願っています。

1
hpgmiskin