Streaming mpeg2 without transcoding from PVR150 (0.8.5, Win)

About encoding, codec settings, muxers and filter usage
rasmusb
New Cone
New Cone
Posts: 3
Joined: 11 Oct 2006 22:15

Streaming mpeg2 without transcoding from PVR150 (0.8.5, Win)

Postby rasmusb » 11 Oct 2006 22:27

I'm trying to stream the mpeg2 that my Hauppauge PVR150 capture to another computer on LAN. I have VLC 0.8.5 and WinXP on both computers.

The captured stream is shown if dshow:// is opened on the capture computer. I'm using the streaming guide in VLC.

First try: source dshow://, method http, package ASF. One or two frames arrive at the streaming client, then everything freezes with loads of asf warnings. I suspect that this line

main debug: using decoder module "rawvideo"

means that the video sent over the network is not actually mpeg2 but rather the raw decoded video stream.

If I try any other container formats I just get this message:

main debug: pre buffering
main debug: prebuffering done 0 bytes in 67s - 0 kbytes/s
main error: cannot pre fill buffer
main warning: cannot create a stream_t from access
main debug: removing module "access_udp"


Is there any way I can make VLC stream the mpeg2 from the capture card?

Best regards,
Rasmus

dionoea
Cone Master
Cone Master
Posts: 5157
Joined: 03 Dec 2003 23:09
Location: Paris, France

Postby dionoea » 11 Oct 2006 23:46

PVR 150 mpeg2 streaming works fine under linux. I guess that you need to tweak some dshow options to get it to send you encoded video (instead of raw video). If you can't figure that out (i unfortunately doubt that i'll be able to help you :( ), could you paste the full debug logs from VLC ?
Antoine Cellerier
dionoea
(Please do not use private messages for support questions)

rasmusb
New Cone
New Cone
Posts: 3
Joined: 11 Oct 2006 22:15

Postby rasmusb » 12 Oct 2006 22:58

Here is the debug log from the capture computer.

Code: Select all

main debug: adding playlist item `dshow://' ( dshow:// ) main debug: creating new input thread main debug: waiting for thread completion main debug: thread 4700 (input) created at priority 1 (input/input.c:261) main debug: stream=`duplicate' main debug: looking for sout stream module: 1 candidate stream_out_duplicate debug: creating 'duplicate' stream_out_duplicate debug: * adding `std{access=http,mux=asf,dst=:1234}' main debug: stream=`std' main debug: looking for sout stream module: 1 candidate main debug: set sout option: sout-standard-access to http main debug: set sout option: sout-standard-mux to asf main debug: set sout option: sout-standard-dst to :1234 stream_out_standard debug: creating `http/asf://:1234' stream_out_standard debug: using `http/asf://:1234' main debug: looking for sout access module: 1 candidate main: creating httpd main debug: net: listening to port 1234 main debug: thread 4052 (httpd host thread) created at priority 0 (network/httpd.c:1076) main debug: using sout access module "access_output_http" stream_out_standard debug: access opened main debug: looking for sout mux module: 1 candidate mux_asf debug: asf muxer opened mux_asf debug: Packet size 4096 mux_asf debug: meta data: title='', author='', copyright='', comment='', rating='' main debug: using sout mux module "mux_asf" stream_out_standard debug: mux opened main debug: using sout stream module "stream_out_standard" main debug: using sout stream module "stream_out_duplicate" main debug: `dshow://' gives access `dshow' demux `' path `' main debug: creating demux: access='dshow' demux='' path='' main debug: looking for access_demux module: 1 candidate dshow debug: found device: Hauppauge WinTV PVR PCI II Capture dshow debug: using device: Hauppauge WinTV PVR PCI II Capture dshow debug: EnumDeviceCaps: input pin: Analog Video In dshow debug: EnumDeviceCaps: input pin: Analog Audio In dshow debug: EnumDeviceCaps: output pin: Capture dshow debug: EnumDeviceCaps: output pin: Audio Out dshow debug: EnumDeviceCaps: output pin: VBI dshow debug: EnumDeviceCaps: output pin: 656 dshow debug: EnumDeviceCaps: trying pin Capture dshow debug: EnumDeviceCaps: input pin default format configured dshow debug: EnumDeviceCaps: input pin media: unsupported format (video HCW2) dshow debug: EnumDeviceCaps: input pin media: using 'I420' in place of unsupported format 'HCW2' dshow debug: CaptureFilter::JoinFilterGraph dshow debug: connecting filters dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::ConnectedTo [not connected] dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::QueryFilterInfo dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryAccept [media type not supported] dshow debug: CapturePin::ReceiveConnection [media type not accepted] dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryAccept [media type not supported] dshow debug: CapturePin::ReceiveConnection [media type not accepted] dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::ConnectedTo [not connected] dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryPinInfo dshow debug: CapturePin::ConnectedTo [not connected] dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryAccept [media type not supported] dshow debug: CapturePin::ReceiveConnection [media type not accepted] dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryAccept [media type not supported] dshow debug: CapturePin::ReceiveConnection [media type not accepted] dshow debug: CaptureFilter::GetClassID dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryAccept [OK] (width=720, height=576, chroma=YUY2) dshow debug: CapturePin::ReceiveConnection [OK] dshow debug: CapturePin::GetAllocatorRequirements dshow debug: CapturePin::GetAllocator dshow debug: CapturePin::NotifyAllocator dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::ConnectedTo [OK] dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::ConnectedTo [OK] dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::ConnectedTo [OK] dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::ConnectedTo [OK] dshow debug: CaptureFilter::EnumPins dshow debug: found existing route for ouput 0 (type 12) to input 2 (type 3) dshow debug: crossbar at depth 0, found route for ouput 0 (type 12) to input 2 (type 3) dshow debug: filters connected successfully ! dshow debug: MEDIATYPE_Video dshow debug: selected video pin accepts format: YUY2 dshow error: no capture device was detected dshow error: can't open audio dshow debug: crossbar at depth 0, routed video output 0 to video input 2 dshow debug: crossbar at depth 0, routed audio output 1 to audio input 4 dshow debug: Playing... dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::QueryPinInfo dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CaptureFilter::EnumPins dshow debug: CapturePin::QueryDirection dshow debug: CapturePin::ConnectedTo [OK] dshow debug: CaptureFilter::SetSyncSource dshow debug: CaptureFilter::Pause dshow debug: CaptureFilter::Run main debug: selecting program id=0 main debug: using access_demux module "dshow" main debug: looking for a subtitle file in C:\Program Files\VideoLAN\VLC\ main debug: looking for packetizer module: 17 candidates main debug: using packetizer module "rawvideo" main debug: thread 4836 (decoder) created at priority 0 (input/decoder.c:159) main debug: starting in synch mode main debug: `dshow://' successfully 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_asf debug: adding input stream_out_duplicate debug: - added for output 0 dshow debug: CaptureFilter::EnumPins mux_asf debug: Asf muxer creating header mux_asf debug: pixel aspect-ratio: 16/15 main warning: late buffer for mux input (164312) main warning: late buffer for mux input (137002) main warning: late buffer for mux input (113646)
[/code]

dionoea
Cone Master
Cone Master
Posts: 5157
Joined: 03 Dec 2003 23:09
Location: Paris, France

Postby dionoea » 12 Oct 2006 23:43

codec=YUV2 -> you're getting raw video from the dshow device. (I really don't know how you can ask it for mpeg2 video instead)
Antoine Cellerier
dionoea
(Please do not use private messages for support questions)

Quovodis
Cone that earned his stripes
Cone that earned his stripes
Posts: 271
Joined: 16 Jun 2004 11:13
Location: Cork, Ireland

Postby Quovodis » 13 Oct 2006 20:49

the dshow module can process native MPEG2 data from a capture device, unfortunately, in case of the PVR II, the driver do not seem to provide this facility, unless the mysterious HCW2 format contains some sort of MPEG content.
Therefore the dshow module is trying to negotiate with the capture card for a known chroma, and YUY2 is what both ends agreed upon.

rasmusb
New Cone
New Cone
Posts: 3
Joined: 11 Oct 2006 22:15

Postby rasmusb » 14 Oct 2006 09:15

Thank you for your answers!

I've noticed that MediaPortal (open source) is able to capture mpeg2 from PVR II to file through some kind of filewriter dshow node. Would it be possible to use that knowledge to stream mpeg2 from the card as well or is their solution inherently limited to writing the captured mpeg2 to a file?

Regards,
Rasmus

rggrgg
New Cone
New Cone
Posts: 2
Joined: 11 Oct 2006 14:11

Works for me

Postby rggrgg » 16 Oct 2006 22:22

Although the VLC doc talks about capture of MPEG2 from WinTV cards being Linux only, I have it happily working on a 1xPVR 250 and 1x350 cards in the same machine. They each stream MPEG2 by default. I think the 150 would work fine too - I was going to get one of these but ended up with the 250/350. I suspect your problem is using ASF to encapsulate - try MPEG TS, no transcoding.

This is one of the command lines:
"C:\Program Files\VideoLAN\VLC\vlc.exe" dshow:// :dshow-vdev="Hauppauge WinTV PVR PCI II Capture" :dshow-size="720x576" :sout=#duplicate{dst=std{access=http,mux=ts,dst=:1234}} --dshow-caching 1000

which works fine streaming http to port 1234. Using two cards is a bit tricky, but I found a post somewhere else which was very helpful. Trust me, this is definitely streaming MPEG2 straight from the card. Uses minimal CPU. I ran the WinTV app to set the input to S-Video first, and set video compression data rates (only needed once), but nothing else was required. This can also be done in graphedit. Linear interlace on the player, great quality. Apologies if I have misunderstood the issue

aNthraXx
New Cone
New Cone
Posts: 4
Joined: 03 Nov 2006 19:31

Postby aNthraXx » 04 Nov 2006 02:09

hello, i have a similar situation. my wintv pvr 150 mce is installed on windows xp home, and works fine in wintv2000 (the hauppage app).

however, when i open the video device in vlc, i select 'Hauppauge WinTV PVR PCI II Capture'. for the audio i select 'default' (the wintv card is not listed? :S)

anyway, it opens the video, and it looks great quality. however the audio does not play, and instead it plays a strange sound that i can only describe as someone running at you.. it gets louder until it turns to static.

the video in VLC appears interlaced wheras in wintv2000 it seems to have been deinterlaced.

ideally i want to be able to stream the output of the tv card to my xbox (running xbmc).

any ideas? do i need a different driver for the card? thanks in advance.

rggrgg
New Cone
New Cone
Posts: 2
Joined: 11 Oct 2006 14:11

Postby rggrgg » 07 Nov 2006 13:29

If you press 'Refresh List' next to the 'Video Device Name" listbox, the Hauppauge device should appear, and can then be configured. Don't know about your sound problem - I use Svideo-in with Audio into the 'Line-in' of the card, and no need to set up audio device in VLC (I assume the Mpeg stream from the card already contains the audio, since if I refresh the 'Audio Device name', I see no Hauppauge device, only the usual PC sound cards. If you're using the tuner input, you might have to fiddle with something in the 'configure' section next to the video device.

Output will be interlaced - needs to be deinterlaced by the player VLC. Tick the 'deinterlace' box in the Video->Filters section of VLC preferences, and select the type of deinterlace under Video->Filters->Deinterlace. In spite of most people saying'Blend' is best, I find for sport in particular that 'Linear' is by far the best. I don't know what your xbox deinterlace is like, or whether it needs to. (I display using a Hauppauge MVP, and there's no need to deinterlace, since it outputs PAL - gives excellent quality)

aNthraXx
New Cone
New Cone
Posts: 4
Joined: 03 Nov 2006 19:31

Postby aNthraXx » 07 Nov 2006 18:45

thanks for your reply rggrgg.

it seems your card is not the media center edition of the wintv pvr 150, as mine does not have the line in plug, instead it has the red and white composite inputs.

no sound (in vlc) seems to be a reccuring problem with this card, i have seen many posts about it. i was referred to an older driver for the card but this simply stopped the wintv2000 application working and made the picture get worse in vlc with no audio still.

also, when i try to stream the video to my xbox (without sound, just to test), none of the encapsulation methods seem to work. on mpeg ts/ps/1 settings, the xbox caches the stream indefinately without showing the output, and with asf it shows one frame and then crashes. however im using an old version of xbmc, i wil update to 2.00 see if it makes any difference.

i am really stumped by this :( in the past vlc has always done what i needed effortlessly and it has really annoyed me that this particular function doesnt work, however i do suspect it is mostly the fault of the driver.

i would apprechiate any help from anyone with a similar setup.

thanks , aNthraXx

dcvie
New Cone
New Cone
Posts: 1
Joined: 11 Nov 2006 17:24

Postby dcvie » 11 Nov 2006 17:33

Hello,

I have the same problem being unable to stream directly from my Hauppauge PVR 150 to the network.
It looks like VLC tries to connect to a wrong output-pin of the "Hauppauge WinTV PVR PCI II Capture" filter called "Capture" (see log "trying pin Capture" ...).
When building a filter graph using graphedit I use the output pin "656" and connect it to a filter called "Hauppauge WinTV PVR PCI II Encoder" which has an input pin called "656" and and MPEG output pin. This works fine in graphedit - I get MPEG video and audio this way.

Is it somehow possible to setup this configuration in VLC ?

Greetings
christian

-----------------------------------
dshow debug: EnumDeviceCaps: output pin: Capture
dshow debug: EnumDeviceCaps: output pin: Audio Out
dshow debug: EnumDeviceCaps: output pin: VBI
dshow debug: EnumDeviceCaps: output pin: 656
dshow debug: EnumDeviceCaps: trying pin Capture
dshow debug: EnumDeviceCaps: input pin default format configured
dshow debug: EnumDeviceCaps: input pin media: unsupported format (video HCW2)
dshow debug: EnumDeviceCaps: input pin media: using 'I420' in place of unsupported format 'HCW2'

xpirito
New Cone
New Cone
Posts: 7
Joined: 28 Apr 2007 17:36

Postby xpirito » 29 Apr 2007 00:24

Any solution for this "no sound" problem?

asdufisn

Postby asdufisn » 03 May 2007 05:56

Hello, I'm waiting too for the solution to this problem.
No sound and weird picture quality when streaming from the wintv pvr 150..

Any advice?
Thanks


Return to “VLC stream-output (sout)”

Who is online

Users browsing this forum: No registered users and 11 guests