Page 1 of 1

Can't stream MPEG-2 from ATI card without transcoding?

Posted: 22 Apr 2005 00:44
by MJK
Please forgive the cross-post, but I wasn't sure if this best belonged in the "Streaming" section or the player section.

Brief summary: after about 2 days of tinkering, I've managed to get VLC 0.8.1 to stream the video from my ATI "TV Wonder Elite" card via UDP to a player on a second computer.

However, I was only able to do this once I enabled the video and audio transcoding options in the Streaming setup window. If I leave them disabled, the server fails to start streaming.

I would like to simply stream the MPEG-2 from the ATI card, since it has a hardware MPEG-2 encoder, and doing the transcode soaks up 100% of my CPU.

Any ideas?

My original thread is here:

viewtopic.php?t=8780

Many thanks.

Posted: 22 Apr 2005 10:46
by Quovodis
Can you run VLC in verbose mode (vlc -vvvv), open the messages box window, and start a capture (without transcoding); stop the capture as soon as you got a few frames; please post the content of the messages window to this forum, so that we can analyse your problem

thanks

Posted: 25 Apr 2005 07:59
by MJK
Thanks for writing back!

I'll do exactly what you suggested, but in the meantime I did post some debug information in my original thread:

viewtopic.php?t=8762

Maybe that will be helpful while I gather the information you asked for!

Posted: 25 Apr 2005 09:07
by MJK
Actually, sorry, let me ask a quick question for clarification. You said to stop the capture as soon as I got a couple of frames. A couple of frames where? I never get streaming to start, so certainly not on the client? Were you wanting me to check the "Play Locally" as well?

Thanks.

Posted: 25 Apr 2005 11:07
by Quovodis
From the debug, your card does not 'tell' VLC that it supports native MPEG2 streaming, hence VLC uses what it sees, which are YUY2 encoded streams.
I would imagine that it is possible to use the hardware MPEG2 encoder by inserting the relevant direct show filter when VLC is building its filter graph (ie. when it is connecting to your capture card). Unfortunately, I do not own an ATI Wonder Elite, hence, it would be difficult for me to help you without a Graph Filter description. is it possible for you to install GraphEdit from the DirectShow SDK and build the Graph that allows you to stream MPEG2 ?

Posted: 25 Apr 2005 16:56
by publius
0.8.1 does not properly support compressed streams from DirectShow. If the hardware MPEG encoding is, as I suspect, basically the same component as in the eHomeWonder TV tuner card I have [which is basically nothing but a varactor tuner and an MPEG encoder], a development VLC version should recognise it just fine.

Posted: 25 Apr 2005 20:17
by MJK
Ah, cool. I'd be happy to install a dev build. Are there nightly/weekly binaries built someplace, or do I need to dust off Dev Studio and compile?

[edit: never mind, Google and I found them. ;)]

Posted: 26 Apr 2005 08:22
by MJK
Well, sadly, it doesn't work. I downloaded the most recent nightly build (0.8.2-svn-20050425) today, and it seems to have the same problem.

(The encoder chip on the card, by the way, is a ATI Theater 550 Pro in case that sheds any light).

When I set up the stream, there are the various Device Properties windows that open when I first start the capture device.

The second one has two boxes: "Video Format" and "Compression".

The Video Format box has a pop-up labeled "Color Space / Compression", but it only has one option: YUY2. The "Compression" box has all of its items disabled.

Would this be where I would select the MPEG-2 encoder on the card? If so, any idea why it's not showing up as an option?

I downloaded GraphEdit, but clearly I will have to read the manual. On first random poking around, it seems to have the same limitation -- I can only select YUY2.

I have updated the card's drivers to the latest version and verified that I'm running DirectX 9.0c (on XP Pro Service Pack 2).

Posted: 26 Apr 2005 10:48
by Quovodis
my gut feeling is that you will need to connect a specific MPEG2 encoder directshow filter between the capture stage and the streaming/preview stage.

the Hauppagge PVR does not give this flexibility since the MPEG2 encoder is part of the capture stage, that's why VLC can handle the PVR since it only provides MPEG2 at the output of the capture, whereby the ATI provides raw YUY2 stream, just like an ordinary All-In-Wonder.

once you have your graph sorted out, could you post a link to the picture of the graph, so that I can see what need to be done to support the encoder

Posted: 26 Apr 2005 23:31
by MJK
OK. I'll read up on GraphEdit and see what I can come up with. Thanks!