ffmpegを使うとビデオキャプチャやWebカメラ等の映像入力デバイスからの映像データをキャプチャしてエンコードしてファイルに保存することができます。
まず以下のコマンドを実行して利用可能な映像入力デバイスを表示します。
ffmpeg -list_devices true -f dshow -i dummy
こんな感じの出力が出ます。
[dshow @ 000001d34aa46c20] DirectShow video devices (some may be both video and audio devices)
[dshow @ 000001d34aa46c20] "Microsoft Camera Front"
[dshow @ 000001d34aa46c20] Alternative name "@device_pnp_\\?\display#int3470#4&1aaa636&0&uid13424#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{bf89b5a5-61f7-4127-a279-e187013d7caf}"
[dshow @ 000001d34aa46c20] "Microsoft Camera Rear"
[dshow @ 000001d34aa46c20] Alternative name "@device_pnp_\\?\display#int3470#4&1aaa636&0&uid13424#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{7c9bbcea-909c-47b3-8cf9-2aa8237e1d4b}"
[dshow @ 000001d34aa46c20] DirectShow audio devices
[dshow @ 000001d34aa46c20] "Microphone Array (Realtek High Definition Audio(SST))"
[dshow @ 000001d34aa46c20] Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{FC6BC544-7D5E-46AD-A8A3-C066F5DA799D}"
dummy: Immediate exit requested
DirectShow video devices
の下に"Microsoft Camera Front", "Microsoft Camera Rear"
のようなものがいますね。この名前が入力ソースとして指定可能なデバイス名です。
これらのデバイスから映像を取り込んでエンコードするには、以下のようなコマンドを入力します。
ffmpeg -f dshow -i video="Microsoft Camera Front" output.mkv
video="○○"
の部分にデバイス名を入れます。コマンドが実行できると映像がoutput.mkv
というファイル名に保存されます。
このコマンドでは実行してから永遠にキャプチャを続けるので、手動でキャプチャを止めなければいけません(さもないとディスクが満杯になります)。キャプチャを止めるにはQ
キーを押します。