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の経験がある人はいますか?
「-フレームレート」が必要です
あなたは試してみることができます
ffmpeg -f avfoundation -framerate 30 -i "0" -target pal-vcd ./test.mpg
内蔵の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
これが解決策を見つけるのに役立つことを願っています。