Page 1 of 1

Problems Streaming from ATI "TV Wonder Elite"

Posted: 20 Apr 2005 09:51
by MJK
Hi,

Running Windows XP SP2 with VLC 0.8.1 as the server. Running MacOS X 10.3.8 with VLC 0.8.1 as the stream recipient (although I think this problem lies entirely on the server).

I'm trying to set up VLC to stream a live capture stream from an ATI TV Wonder Elite card.

VLC seems to be able to see the card okay via DirectShow (I can play its input locally), but I'm not able to get it to stream.

Here's what I'm doing:

1) Open Capture Device
2) Click the DirectShow tab
3) Leave the Video and Audio device names set on "Default"
4) Click the "Device properties" check-box
5) Click the "Stream output" check box
6) Slick the Caching check box
7) Click the "Settings..." button next to Stream output
8) Click the "HTTP" check box in the Output methods group
9) Enter my PC's IP address in the address field, and leave the port at the default 1234
10) Leave MPEG TS selected for the Encapsulation
11) Do not select transcoding or misc options.
12) 8-11 yield a destination target of
:sout=#duplicate{dst=std{access=http,mux=ts,url=192.168.15.104:1234}}
13) Close the Settings window by clicking OK, then click OK in the "Open..." dialog
14) The Device Properties windows open one at a time. I just "OK" through them, except for the one where I specify the "Crossbar" input. I'm using the S-Video input on the ATI, so I have to select input "2: Video SVideo In". This shows "Related Pin" "3: Audio Tuner In", and I check the "Link Related Streams" box.

I then try to connect with VLC on the Mac, but I get "main: cannot pre fill buffer".

I tried packet-sniffing this with Ethereal, and noticed that the HTTP connection succeeds with a 200 status, but then no data is sent. After a few seconds, the VLC client on the mac pops up that error.

So, I did all of the above with the Messages window open, and saved the results.

I didn't want to paste the whole giant thing in here, so they are available at http://ng.netgate.net/~mjkobb/VLC_messages.txt

The last little bit of the message file is copied below, though:

main debug: looking for packetizer module
main debug: probing 17 candidates
main debug: using packetizer module "rawvideo"
main debug: thread 4536 (decoder) created at priority 0 (src/input/decoder.c:157)
main debug: looking for packetizer module
main debug: probing 17 candidates
main debug: using packetizer module "packetizer_copy"
main debug: thread 4548 (decoder) created at priority 2 (src/input/decoder.c:157)
main debug: starting in synch mode
main debug: `dshow://' sucessfully opened
main debug: adding a new input
stream_out_duplicate debug: duplicated a new stream codec=YUY2 (es=0 group=0)
main debug: adding a new input
mux_ts debug: adding input codec=YUY2 pid=68
main error: cannot add this stream
stream_out_duplicate debug: - failed for output 0
main error: cannot create packetizer output
main debug: adding a new input
stream_out_duplicate debug: duplicated a new stream codec=s16l (es=1 group=0)
main debug: adding a new input
mux_ts debug: adding input codec=s16l pid=69
main error: cannot add this stream
stream_out_duplicate debug: - failed for output 0
main error: cannot create packetizer output


So, it seems like for some reason VLC is unable to make these streams available for serving? Perhaps I have selected an incorrect option someplace?

If I do all the same steps except just don't check the "Stream Input" option, the VLC window opens on the PC just fine and shows the video with audio. So, I know the card is working, and it seems like VLC and DirectShow are talking.

Conversely, if I use a file as a source on the server, and use the same HTTP address, port and so forth, I can stream it beautifully.

I searched this forum and the docs but didn't find anything. I may well have missed the crucial piece, though.

Many thanks for any suggestions.

--Mike Kobb

PS: If I wanted to do this from the command line, is there some way to pass through an argument to indicate that it should use the S-Video input and the corresponding audio?

Posted: 21 Apr 2005 08:08
by MJK
Well, I sort of solved my own problem.

I say sort of because it doesn't seem like a proper solution, and it has brought up some more questions (please see here: viewtopic.php?t=8780 )

I was able to get streaming to happen, finally, by turning on both audio and video transcoding in the Stream output window.

The problem (as described in the thread I mention above) is that this ATI card has a hardware MPEG-2 encoder. It sure seems like what's happening now is that the card is digitizing and encoding MPEG-2, then the PC is decoding it and re-encoding it! My CPU maxes out at 100% unless I also specify a scaling factor of 0.5, and it seems as though with a hardware encoder I should be able to stream an MPEG-2 transport stream with very little CPU demand.

Anyhow, maybe this is somewhat helpful, and I hope somebody may be able to tell me if it's possible to stream the MPEG-2 generated by the card!