473,325 Members | 2,860 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,325 software developers and data experts.

Video/Audio Capture

Hi Everyone,

Do any of you gurus out there have any suggestions regarding capturing
audio/video from a video capture card in C#. Although I've written
other programs, I've never worked with audio/video sources before.
I've seen other people recommending DirectShow.NET. Is this one of the
more popular libraries to use? Would anyone recommend other third-
party libraries?

Thanks,
Kris

Oct 2 '07 #1
6 7940
k.*************@gmail.com wrote:
Hi Everyone,

Do any of you gurus out there have any suggestions regarding capturing
audio/video from a video capture card in C#. Although I've written
other programs, I've never worked with audio/video sources before.
I've seen other people recommending DirectShow.NET. Is this one of the
more popular libraries to use? Would anyone recommend other third-
party libraries?
I've only heard of DirectShow.NET. As far as I know (obviously :) ), it
would be your best bet, since it's open-source and has been around long
enough to mature into a nice, usable platform. Granted, I don't have
any personal experience with it...but I've only heard good things about it.

I think for sure, you'll probably want to go with something based on
DirectShow. That's what I've used for video capture, and it's
reasonably well-supported by the various hardware you might run into.
While I haven't used DirectShow in managed code, I've used it in native
Windows stuff and it works as advertised, and provides a flexible API to
use.

One caveat: if you expect to do anything more complicated than just
capturing a/v streams, there are some subtle "gotchas". There's a
Microsoft directx.video newsgroup where you can learn more about those
issues and get help navigating what is basically a simple API but which
has enough varied ways to use it to make it complicated.

Pete
Oct 2 '07 #2
On Oct 2, 6:19 pm, Peter Duniho <NpOeStPe...@NnOwSlPiAnMk.comwrote:
k.vanderstar...@gmail.com wrote:
Hi Everyone,
Do any of you gurus out there have any suggestions regarding capturing
audio/video from a video capture card in C#. Although I've written
other programs, I've never worked with audio/video sources before.
I've seen other people recommending DirectShow.NET. Is this one of the
more popular libraries to use? Would anyone recommend other third-
party libraries?

I've only heard of DirectShow.NET. As far as I know (obviously :) ), it
would be your best bet, since it's open-source and has been around long
enough to mature into a nice, usable platform. Granted, I don't have
any personal experience with it...but I've only heard good things about it.

I think for sure, you'll probably want to go with something based on
DirectShow. That's what I've used for video capture, and it's
reasonably well-supported by the various hardware you might run into.
While I haven't used DirectShow in managed code, I've used it in native
Windows stuff and it works as advertised, and provides a flexible API to
use.

One caveat: if you expect to do anything more complicated than just
capturing a/v streams, there are some subtle "gotchas". There's a
Microsoft directx.video newsgroup where you can learn more about those
issues and get help navigating what is basically a simple API but which
has enough varied ways to use it to make it complicated.

Pete

Thank you very much for the response Pete. The application that I plan
to write needs to record multiple audio/video sources simultaneously.
Generally speaking, as long as the capture card that you've selected
supports multiple inputs, does DirectShow have the flexibility to work
with multiple inputs?

Thanks Again,
Kris

Oct 3 '07 #3
k.*************@gmail.com wrote:
Thank you very much for the response Pete. The application that I plan
to write needs to record multiple audio/video sources simultaneously.
Generally speaking, as long as the capture card that you've selected
supports multiple inputs, does DirectShow have the flexibility to work
with multiple inputs?
Yes, absolutely. The main problem you will run into is bandwidth
issues. But the API itself handles that just fine. The basic paradigm
is a stream graph, with each node having input and output "pins", except
for source nodes that only have output pins and render nodes that only
have input pins.

A graph can have multiple source nodes, or you can just create multiple
graphs, one per source.

Pete
Oct 3 '07 #4
On Oct 2, 9:51 pm, Peter Duniho <NpOeStPe...@NnOwSlPiAnMk.comwrote:
Yes, absolutely. The main problem you will run into is bandwidth
issues. But the API itself handles that just fine. The basic paradigm
is a stream graph, with each node having input and output "pins", except
for source nodes that only have output pins and render nodes that only
have input pins.

A graph can have multiple source nodes, or you can just create multiple
graphs, one per source.
Excellent - that's exactly what I wanted to hear! One last question if
you don't mind. Does DirectShow handle keeping all of the sources in
sync? In the application that I'm writing I would like the audio
sources (up to five) to stay in syn with the video. Once I've recorded
all of the audio/video streams I plan author them into a DVD so it's
important that the video and audio be synchronized.

Thanks,
Kris

Oct 3 '07 #5
k.*************@gmail.com wrote:
On Oct 2, 9:51 pm, Peter Duniho <NpOeStPe...@NnOwSlPiAnMk.comwrote:
>Yes, absolutely. The main problem you will run into is bandwidth
issues. But the API itself handles that just fine. The basic paradigm
is a stream graph, with each node having input and output "pins", except
for source nodes that only have output pins and render nodes that only
have input pins.

A graph can have multiple source nodes, or you can just create multiple
graphs, one per source.

Excellent - that's exactly what I wanted to hear! One last question if
you don't mind. Does DirectShow handle keeping all of the sources in
sync?
Yes and no. A DirectShow graph has a clock that is used to synchronize
all of the filters in the graph. Generally when capturing, the source
filter is used as the sync clock. So DirectShow does have the concept
to keeping various media streams in sync.

That's the "yes". The "no" is that there are certain drift issues that
do still exist. I won't try to detail them here, as much because I
haven't personally run into them as because this is definitely wandering
off-topic for this newsgroup. :)

I do know from reading what others have written on the topic that the
drift is somewhat endemic to the basic problem of capturing a/v data;
DirectShow solves it as best as it can, but there are apparently
fundamental issues that make it impossible to address completely.

For the most part, people who run into those problems are doing
applications that capture streams for very long periods of time (many
hours, if not days). If you are capturing DVD-length stuff, I think
keeping things synchronized shouldn't be an issue.

Pete
Oct 3 '07 #6
On Oct 2, 10:16 pm, Peter Duniho <NpOeStPe...@NnOwSlPiAnMk.comwrote:
Yes and no. A DirectShow graph has a clock that is used to synchronize
all of the filters in the graph. Generally when capturing, the source
filter is used as the sync clock. So DirectShow does have the concept
to keeping various media streams in sync.

That's the "yes". The "no" is that there are certain drift issues that
do still exist. I won't try to detail them here, as much because I
haven't personally run into them as because this is definitely wandering
off-topic for this newsgroup. :)

I do know from reading what others have written on the topic that the
drift is somewhat endemic to the basic problem of capturing a/v data;
DirectShow solves it as best as it can, but there are apparently
fundamental issues that make it impossible to address completely.

For the most part, people who run into those problems are doing
applications that capture streams for very long periods of time (many
hours, if not days). If you are capturing DVD-length stuff, I think
keeping things synchronized shouldn't be an issue.
Thanks for the excellent information Pete - that's definitely enough
to get me started. Guess it's time to start playing around with
DirectShow now. :)

Cheers,
Kris

Oct 3 '07 #7

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
by: DMS | last post by:
I need to create some specifications and budget request for a workstation (G5) and all necessary hardware and software for authoring online college courses. The course material would contain short...
2
by: Nick | last post by:
I want to be able to encode a video from a bitmap or handle to bitmap source. The bitmap object would be changing very quickly and I would record these changes to a video. Basically it would be a...
8
by: Nehmo | last post by:
When a page has a JavaScript "link" to a video, like http://www.msnbc.msn.com/id/10478942/ . How do you get the URL of the actual video? Isn't it in the source somewhere? -- )|:__ Nehmo __:|(
1
by: xer | last post by:
How can I get list of avaible video (Screen Capture Direct Show Filtres too) and audio capture devices?
5
by: Juliano.net | last post by:
How can I capture audio and video so I can send them through the internet? I want to create a web conference application.
7
by: Paolo Pantaleo | last post by:
Hi, I need to write a software that allow to see the desktop and hear the microphone capture of a remote PC across a network. I need to do that for a unviresity assignement. The software must ...
2
by: hzgt9b | last post by:
Using VS2003, VB.NET, BACKGROUND I have a window forms based application that will be distributed and executed directly from CD media. The app contains a TreeView control and a WebBroswer...
3
by: Jens Jensen | last post by:
Hello, I'm looking for ways to build a web chat application that can also send audio and video without using flash or any com component. I will use ajax though. But my concerns are, weather i...
2
by: Ken Seehart | last post by:
Hello, I am looking for a good audio/video conferencing library. Ideally it should work with wxPython (or have some means of making it work there). So far my main difficulty in my attempt at...
0
by: ryjfgjl | last post by:
ExcelToDatabase: batch import excel into database automatically...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
1
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: jfyes | last post by:
As a hardware engineer, after seeing that CEIWEI recently released a new tool for Modbus RTU Over TCP/UDP filtering and monitoring, I actively went to its official website to take a look. It turned...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
1
by: Defcon1945 | last post by:
I'm trying to learn Python using Pycharm but import shutil doesn't work
1
by: Shællîpôpï 09 | last post by:
If u are using a keypad phone, how do u turn on JavaScript, to access features like WhatsApp, Facebook, Instagram....
0
by: af34tf | last post by:
Hi Guys, I have a domain whose name is BytesLimited.com, and I want to sell it. Does anyone know about platforms that allow me to list my domain in auction for free. Thank you
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.