Page 1 of 1
RTSP using dshow
Posted: 21 Sep 2006 23:19
by Judas
Hi all.
i have sucessfully made VLC work with RTSP when streaming a video file. I am using -I http to simplify things a bit while setting it up.
i have been reading and searching quite a lot on the forums and the videolan documentation - but i'm still a bit confused.
how do i use RTSP to stream from a dshow device?
i tried setting up the VOD by using the following input:
Code: Select all
:dshow-vdev="WinFast TV2000 XP WDM Video Capture" :dshow-adev="" :dshow-size="" :dshow-caching=200 :dshow-chroma="" :dshow-fps=25.000000 :dshow-config :dshow-tuner :dshow-tuner-channel=31 :dshow-tuner-country=45 :dshow-tuner-input=1 :dshow-video-input=-1 :dshow-audio-input=-1 :dshow-video-output=-1 :dshow-audio-output=-1
when i try opening the stream on the client i get:
Unable to open 'rtsp://192.168.1.3/test'
any help would be very much appreciated.
thanks a lot guys
Posted: 21 Sep 2006 23:27
by dionoea
Could you paste the VLM command batch you're using ? (or just the contents of
http://localhost:8080/vlm_export.html once you've configured everything)
Posted: 21 Sep 2006 23:31
by Judas
Wow quick response.
Code: Select all
##
##
## VLM HTTP interface
## This file can be loaded as is in VLM.
## Comments starting with "##" were added by the HTTP interface.
## You can remove them if you want to.
##
# VLC media player VLM command batch
# http://www.videolan.org/vlc/
new test vod enabled
setup test input "dshow-vdev="WinFast TV2000 XP WDM Video Capture" :dshow-adev="" :dshow-size="" :dshow-caching=200 :dshow-chroma="" :dshow-fps=25.000000 :dshow-config :dshow-tuner :dshow-tuner-channel=31 :dshow-tuner-country=45 :dshow-tuner-input=1 :dshow-video-input=-1 :dshow-audio-input=-1 :dshow-video-output=-1 :dshow-audio-output=-1"
setup test output #transcode{vcodec=mp2v,vb=4096,scale=1}
##
## end of export
##
Posted: 21 Sep 2006 23:49
by dionoea
Wow quick response.
Hehe
you were lucky i guess :p
Should be this instead:
Code: Select all
##
##
## VLM HTTP interface
## This file can be loaded as is in VLM.
## Comments starting with "##" were added by the HTTP interface.
## You can remove them if you want to.
##
# VLC media player VLM command batch
# http://www.videolan.org/vlc/
new test vod
setup test input dshow://
setup test option dshow-vdev="WinFast TV2000 XP WDM Video Capture"
setup test option dshow-adev=
setup test option dshow-size=
setup test option dshow-caching=200
setup test option dshow-chroma=
setup test option dshow-fps=25.000000
setup test option dshow-config
setup test option dshow-tuner
setup test option dshow-tuner-channel=31
setup test option dshow-tuner-country=45
setup test option dshow-tuner-input=1
setup test option dshow-video-input=-1
setup test option dshow-audio-input=-1
setup test option dshow-video-output=-1
setup test option dshow-audio-output=-1
setup test output #transcode{vcodec=mp2v,vb=4096,scale=1}
setup test enabled
##
## end of export
##
I'm not sure if the quotes are needed on the vdev line. Btw, you seem to be using way too many options here
... you could remove those for which you use the default values.
Posted: 21 Sep 2006 23:59
by Judas
ahhh okay. i tried removing all the default values now, but i still get the same result...
u have any hint on how i make the vlm_export look like u said it was suppose to?
Posted: 23 Sep 2006 12:34
by Judas
Thanks for your response dionoea.
i tried sending the vlm commands using the "other" section in the http interface. - The vlm_export now looks like u said it should
but sadly it still won't work...
I thought that it could have been my TV card that was causing the trouble - so i bought a new one
Hauppauge WinTV-PVR 500
however this didn't resolve the issue either - I can stream files but still not dshow.
if anyone has a working setup of vod streaming with dshow i would very much like an example on how u made it work
once again thanks a lot for your help people!
Posted: 23 Sep 2006 12:52
by Judas
oh maybe this could help:
Code: Select all
http debug: executing vlm command: setup test input dshow://
http debug: executing vlm command: setup test option dshow-vdev="Hauppauge WinTV PVR PCI II Capture"
http debug: invalid index constructor (el.instances)
main debug: Connection from 192.168.1.3
http debug: executing vlm command: setup test option dshow-adev=""
main debug: Connection from 192.168.1.3
http debug: executing vlm command: setup test option dshow-size=""
http debug: executing vlm command: setup test option dshow-caching=200
http debug: executing vlm command: setup test option dshow-chroma=""
http debug: executing vlm command: setup test option dshow-fps=25.000000
http debug: executing vlm command: setup test option dshow-config
http debug: executing vlm command: setup test option dshow-tuner
http debug: executing vlm command: setup test option dshow-tuner-channel=31
http debug: executing vlm command: setup test option dshow-tuner-country=45
http debug: executing vlm command: setup test option dshow-tuner-input=2
http debug: executing vlm command: setup test option dshow-video-input=-1
http debug: executing vlm command: setup test option dshow-audio-input=-1
http debug: executing vlm command: setup test option dshow-video-output=-1
http debug: executing vlm command: setup test option dshow-audio-output=-1
http debug: executing vlm command: setup test output #transcode{vcodec=mp2v,vb=4096,scale=1}
http debug: executing vlm command: setup test enabled
main debug: waiting for thread completion
main debug: thread 4276 (input) created at priority 1 (input/input.c:261)
main debug: stream=`transcode'
main debug: looking for sout stream module: 1 candidate
main debug: stream=`description'
main debug: looking for sout stream module: 1 candidate
main debug: using sout stream module "stream_out_description"
main debug: set sout option: sout-transcode-vcodec to mp2v
main debug: set sout option: sout-transcode-vb to 4096
main debug: set sout option: sout-transcode-scale to 1
stream_out_transcode warning: bad aspect ratio
stream_out_transcode debug: codec video=mp2v 0x0 scaling: 1.000000 4096kb/s
main debug: using sout stream module "stream_out_transcode"
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: width x height 0x0
dshow debug: found device: Hauppauge WinTV PVR PCI II Capture
dshow debug: found device: Hauppauge WinTV PVR PCI II Capture
dshow error: can't use device: "Hauppauge WinTV PVR PCI II Capture", unsupported device type
dshow error: can't open video
dshow debug: found device: Realtek AC97 Audio
dshow error: can't use device: "", unsupported device type
dshow error: can't open audio
dshow debug: releasing DirectShow
main warning: no access_demux module matching "dshow" could be loaded
main debug: creating access 'dshow' path=''
main debug: looking for access2 module: 6 candidates
dshow debug: width x height 0x0
dshow debug: found device: Hauppauge WinTV PVR PCI II Capture
dshow debug: found device: Hauppauge WinTV PVR PCI II Capture
dshow error: can't use device: "Hauppauge WinTV PVR PCI II Capture", unsupported device type
dshow error: can't open video
dshow debug: found device: Realtek AC97 Audio
dshow error: can't use device: "", unsupported device type
dshow error: can't open audio
dshow debug: releasing DirectShow
access_file warning: : No such file or directory
main warning: no access2 module matching "dshow" could be loaded
main error: no suitable access module for `dshow://'
main debug: destroying chain... (name=transcode)
main debug: destroying chain... (name=description)
main debug: removing module "stream_out_description"
main debug: destroying chain done
main debug: removing module "stream_out_transcode"
main debug: destroying chain done
main debug: thread times: real 0m0.203125s, kernel 0m0.062500s, user 0m0.000000s
main debug: thread 4276 joined (input/input.c:399)
vod_rtsp debug: created RTSP url: /test
vod_rtsp debug: media has 0 declared ES
http debug: invalid index constructor (el.instances)
does this mean that I can't use that tv card for streaming?:
dshow error: can't use device: "Hauppauge WinTV PVR PCI II Capture", unsupported device type
Posted: 23 Sep 2006 13:30
by dionoea
Did you try without the quotes arround the device's name ? (or like quote arround the full option=value thing ?)
Posted: 23 Sep 2006 13:40
by Judas
just tried removing the quotes - Same result as before...
btw. VLC can open the same caputure card with dshow when i'm using the gui's "open capture card"
do you think it could be the device name that are causing the trouble?
Posted: 23 Sep 2006 14:01
by dionoea
The quotes definitively seem to be the issue:
dshow debug: found device: Hauppauge WinTV PVR PCI II Capture
dshow debug: found device: Hauppauge WinTV PVR PCI II Capture
dshow error: can't use device: "Hauppauge WinTV PVR PCI II Capture", unsupported device type
the third line shouldn't have quotes. Did you try "dshow-vdev=blabla bla" (quotes arrount the full thing) ? (Please paste debug if it doesn't work)
Posted: 23 Sep 2006 14:02
by Judas
heey - I did what u said about putting quotoes around the whole option value thing... now it actually found the video device!
u are da man bro!
Code: Select all
dshow debug: found device: Hauppauge WinTV PVR PCI II Capture
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::EnumPins
dshow debug: CapturePin::QueryDirection
dshow debug: CaptureFilter::EnumPins
dshow debug: CapturePin::QueryDirection
dshow debug: CapturePin::ConnectedTo [not connected]
dshow debug: CapturePin::QueryAccept [OK] (width=384, height=288, chroma=YUY2)
dshow debug: CaptureFilter::GetClassID
dshow debug: CaptureFilter::GetClassID
dshow debug: CaptureFilter::GetClassID
dshow debug: CaptureFilter::GetClassID
dshow debug: CaptureFilter::GetClassID
dshow debug: CaptureFilter::GetClassID
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 output 0 (type 12) to input 0 (type 1)
dshow debug: crossbar at depth 0, found route for output 0 (type 12) to input 0 (type 1)
dshow debug: filters connected successfully !
dshow debug: configuring Device Properties
dshow debug: showing WDM Video Configuration Pages
dshow debug: tuner config: channel 31, country 45, input type 2
dshow debug: CapturePin::QueryPinInfo
dshow debug: CaptureFilter::EnumPins
dshow debug: CapturePin::QueryDirection
dshow debug: CapturePin::ConnectedTo [OK]
dshow debug: configuring Tuner Properties
dshow debug: CapturePin::QueryPinInfo
dshow debug: CaptureFilter::EnumPins
dshow debug: CapturePin::QueryDirection
dshow debug: CapturePin::ConnectedTo [OK]
dshow debug: MEDIATYPE_Video
dshow debug: selected video pin accepts format: YUY2
dshow debug: found device: Realtek AC97 Audio
dshow error: can't use device: "", unsupported device type
dshow error: can't open audio
dshow debug: crossbar at depth 0, routed video output 0 to video input 0
dshow debug: crossbar at depth 0, routed audio output 1 to audio input 1
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
dshow debug: CaptureFilter::EnumPins
main debug: selecting program id=0
main debug: using access_demux module "dshow"
main debug: looking for a subtitle file in I:\Program Files\VideoLAN\VLC\
main debug: looking for packetizer module: 17 candidates
main debug: using packetizer module "rawvideo"
main debug: thread 5436 (decoder) created at priority 0 (input/decoder.c:168)
main debug: starting in async mode
main debug: `dshow://' successfully opened
main debug: adding a new input
stream_out_transcode debug: creating video transcoding from fcc=`YUY2' to fcc=`mp4a'
main debug: looking for decoder module: 27 candidates
main debug: using decoder module "rawvideo"
main debug: looking for encoder module: 10 candidates
ffmpeg error: "MPEG AAC Audio" is not a video encoder
stream_out_transcode error: cannot find encoder ((null))
main debug: removing module "rawvideo"
stream_out_transcode error: cannot create video chain
main error: cannot create packetizer output (YUY2)
now i'm not sure what is wrong - apparently something with the audio
Posted: 23 Sep 2006 14:34
by Judas
u seem to have fixed my first error bro! thanks a lot!
now there's a second one lol
here's the VLM i use:
Code: Select all
new test vod
setup test input dshow://
setup test option "dshow-vdev=Hauppauge WinTV PVR PCI II Capture"
setup test option dshow-adev=""
setup test option dshow-size="720x576"
setup test option dshow-caching=200
setup test option dshow-chroma=""
setup test option dshow-fps=25.000000
setup test option dshow-config
setup test option dshow-tuner
setup test option dshow-tuner-channel=31
setup test option dshow-tuner-country=45
setup test option dshow-tuner-input=2
setup test option dshow-video-input=-1
setup test option dshow-audio-input=-1
setup test option dshow-video-output=-1
setup test option dshow-audio-output=-1
setup test output #transcode{vcodec=mp4v,vb=512,scale=1,acodec=mpga,ab=128}
setup test enabled
if i use the same transcoding option as the one i used for the avi file i successfully streamed i get:
Code: Select all
main debug: selecting program id=0
main debug: using access_demux module "dshow"
main debug: looking for a subtitle file in I:\Program Files\VideoLAN\VLC\
main debug: looking for packetizer module: 17 candidates
main debug: using packetizer module "rawvideo"
main debug: thread 5448 (decoder) created at priority 0 (input/decoder.c:168)
main debug: starting in async mode
main debug: `dshow://' successfully opened
main debug: adding a new input
stream_out_transcode debug: creating video transcoding from fcc=`YUY2' to fcc=`mp4v'
main debug: looking for decoder module: 27 candidates
main debug: using decoder module "rawvideo"
main debug: looking for encoder module: 10 candidates
ffmpeg debug: libavcodec initialized (interface 3344897 )
ffmpeg debug: found encoder MPEG-4 Video
main debug: using encoder module "ffmpeg"
main debug: removing module "ffmpeg"
stream_out_transcode debug: decoder aspect is 576000:432000
stream_out_transcode debug: source pixel aspect is 1.066667:1
stream_out_transcode debug: scaled pixel aspect is 1.066667:1
stream_out_transcode debug: source 720x576, crop 720x576, destination 720x576, padding 720x576
stream_out_transcode debug: encoder aspect is 576000:432000
main debug: looking for encoder module: 10 candidates
ffmpeg debug: libavcodec already initialized
ffmpeg warning: timebase not supported by mpeg 4 standard
(mpeg4@00B3C930)
ffmpeg error: cannot open encoder
stream_out_transcode error: cannot find encoder ((null))
main debug: removing module "rawvideo"
u got any idea of what i'm doing wrong now? lol
thanks again bro
Posted: 25 Sep 2006 19:35
by Judas
hmmm okay, could it be that the encoder thinks that i'm trying to encode a 25000 fps stream?
the property window of the tv card pops up and tells me it's running 25.000 fps - i can't change it.
could that be the problem? or am i looking the wrong place?
Posted: 25 Sep 2006 20:01
by Judas
i found out that if i added fps=25 to the transcode part everything worked!
thanks a lot for your help!
Posted: 26 Sep 2006 21:56
by dionoea
You're welcome
(sorry for not answering earlier)
Posted: 26 Sep 2006 21:57
by Judas
No need to be sorry bro - u are da man
Posted: 26 Nov 2006 04:17
by redmenace
I am a newbie, but shouldn't this solution be put into the wiki?