I ended up using FFMpeg.exe (Downloaded from here) to capture the first frame of videos uploaded to my site. This probably isn't the most ideal solution, but I don't have any DirectShow experience and, in my opinion, this solution is much simpler than other suggestions mentioned.
I was not able to get around saving the file to the file system, so I simply wrote the uploaded bytes out to a temporary file on disk performed the work using FFMpeg and then removed each of the files generated during the process.
The processing for this is done on a separate thread from the request thread. If I find this to be an issue, I have a separate Windows service that I can offload the work to with no problem.
The syntax for obtaining a single frame is as follows:
FFMpeg.exe -i "c:\MyPath\MyVideo" -vframes 1 "c:\MyOutputPath\MyImage%d.jpg"
The %d is very important. If you do not include this, FFMpeg will throw an error. The %d will substitute a serial number when writing out the file.
I hope this helps!