According to  it is now possible:
$ ffmpeg -f dshow -i video=”USB2.0_Camera”:audio=”Microphone (USB Audio Device)” output.mkv
You can discover available device names by using
$ ffmpeg -list_devices true -f dshow -i dummy
and types that each supports via:
$ ffmpeg -list_options true -f dshow -i video=<video device>
And specify a type via:
The video options can be set with -r <framerate> -s <size>.
The audio options can be set with -channels <channels> -sample_size
<sample_size> -sample_rate <sample_rate>.
ffplay -f dshow -i video=screen-capture-recorder
Ffmpeg can also take directshow as input by creating an avisynth file (.avs file) that itself gets input from a graphedit file, which graphedit file exposes a pin of your capture source or any filter really, ex (“yo.avs”):
DirectShowSource(“push2.GRF”, fps=35, audio=False, framecount=1000000)
Also this note from  “The input string is in the format video=<video device name>:audio=<audio device name>. It is possible to have two separate inputs (like -f dshow -i audio=foo -f dshow -i video=bar) but my limited tests had shown a better synchronism when both were used in the same input.”