List all available media devices on FFmpeg. Supports Windows, OSX and Linux(coming soon)
Via npm:
$ npm install ffdevices --save
You need to have ffmpeg version >= 2.0.7 for this to work. This is the oldest version I tested but it may work on older version also.
Note: If you downloaded the static build most probably FFMPEG_PATH
environment variable is not yet set. You have two options:
- Find the location of the ffmpeg
bin
directory and add it to yourPATH
. - Set the custom
FFMPEG_PATH
using theffdevices.#ffmpegPath
var ffdevices = require('ffdevices')
ffdevices.getAll(function(error, devices) {
if(!error) {
console.log(devices)
}
})
You can set custom FFMPEG_PATH
using ffdevices.ffmpegPath
ffdevices.ffmpegPath = 'C:\\ffmpeg\\bin\\ffmpeg.exe' //PATH to the ffmpeg file.
ffdevices.getAll(function(error, devices){
if(!error) {
console.log(devices)
}
})
gdigrab is the desktop capturer for windows. By default it is enabled, you can disable it if you don't want to include it. Pass this command before you call .getAll()
.
ffdevices.gdigrab = false
ffdevices.getAll(...)
[ { name: 'Desktop Capture',
type: 'video',
value: 'desktop',
deviceType: 'gdigrab',
os: 'win32' },
{ name: 'Webcam C170',
type: 'video',
value: 'Webcam C170',
deviceType: 'dshow',
os: 'win32' },
{ name: 'Microphone (2- Webcam C170)',
type: 'audio',
value: 'Microphone (2- Webcam C170)',
deviceType: 'dshow',
os: 'win32' },
{ name: 'Headset (Voombox-outdoor Hands-Free)',
type: 'audio',
value: 'Headset (Voombox-outdoor Hands-Free)',
deviceType: 'dshow',
os: 'win32' },
{ name: 'Headset (Bluedio Hands-Free)',
type: 'audio',
value: 'Headset (Bluedio Hands-Free)',
deviceType: 'dshow',
os: 'win32' } ]
[ { name: 'Built-in iSight',
type: 'video',
value: 'Built-in iSight',
deviceType: 'avfoundation',
os: 'darwin' },
{ name: 'Capture screen 0',
type: 'video',
value: 'Capture screen 0',
deviceType: 'avfoundation',
os: 'darwin' },
{ name: 'Built-in Input',
type: 'audio',
value: 'Built-in Input',
deviceType: 'avfoundation',
os: 'darwin' } ]
- Linux support(video4linux2)
- Compatibility test to other platforms and machines.
- fluent-ffmpeg - Fluent ffmpeg-API for node.js