473,226 Members | 1,681 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,226 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 7930
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: veera ravala | last post by:
ServiceNow is a powerful cloud-based platform that offers a wide range of services to help organizations manage their workflows, operations, and IT services more efficiently. At its core, ServiceNow...
0
by: VivesProcSPL | last post by:
Obviously, one of the original purposes of SQL is to make data query processing easy. The language uses many English-like terms and syntax in an effort to make it easy to learn, particularly for...
3
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 3 Jan 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). For other local times, please check World Time Buddy In...
0
by: abbasky | last post by:
### Vandf component communication method one: data sharing ​ Vandf components can achieve data exchange through data sharing, state sharing, events, and other methods. Vandf's data exchange method...
2
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 7 Feb 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:30 (7.30PM). In this month's session, the creator of the excellent VBE...
0
by: fareedcanada | last post by:
Hello I am trying to split number on their count. suppose i have 121314151617 (12cnt) then number should be split like 12,13,14,15,16,17 and if 11314151617 (11cnt) then should be split like...
0
by: stefan129 | last post by:
Hey forum members, I'm exploring options for SSL certificates for multiple domains. Has anyone had experience with multi-domain SSL certificates? Any recommendations on reliable providers or specific...
0
Git
by: egorbl4 | last post by:
Скачал я git, хотел начать настройку, а там вылезло вот это Что это? Что мне с этим делать? ...
0
by: MeoLessi9 | last post by:
I have VirtualBox installed on Windows 11 and now I would like to install Kali on a virtual machine. However, on the official website, I see two options: "Installer images" and "Virtual machines"....

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.