User Tools

Site Tools


stream_pc

This is an old revision of the document!


====== Stream Anything to Your TV that your PC can Play ====== Last Edited Jan 8, 2012 - see Change log at end.

This process allows any video playable on your desktop, preferably in fullscreen, to be streamed and displayed on your TV. The only Serviio change is to add the livestream from your PC to the Serviio console ie: http:192.168.1.10:8081 All the rest involves the setup of your PC to create the stream using VLC.

While the ability to stream your desktop to your TV can give you a remote monitor capability, the real value is to be able to display the output of any application on your TV, in particular the fullscreen output from any video playback application including flash videos.

This means that you can now browse and display all those videos on news sites, tv network shows, movie sites, social sites or music sites etc, that are not available as rss feeds, or unencripted rtmp live streams. You can now also access and display the text info that usually accompanys many of those videos, or the subtitles that overlay videos such as hulu, or the music title/artist/album information which are is available directly to Servio online streams.

To stream your desktop you need to install VLC to do the streaming (I'm using 1.1.10), a directshow video input filter to capture the desktop area, and a directshow audio input filter to capture the sound output from the application.

For the video input filter, I used screen-capture-recorder because its free, it works, is configurable and is under active maintenance (download from http://sourceforge.net/projects/screencapturer/files/)

By default, it is supposed to capture the whole screen. For some reason however on initial install I got a lot of static. If this happens to you, see the read me for instructions on how to run the installed C:\Program Files (x86)\Screen Capturer Recorder\configuration_setup_utility\edit_config.bat and set the height and width to your screen's maximum dimensions, or edit the registry keys as I did. You must however use the exact maximum dimensions recognized by your screen driver, In my case 1366 x 768 regardless of the resolution your screen is set to display which in my case is 1280×720. (Right click your Desktop and click “Screen resolution” to see your current and maximum setable resolutions)

To get Serviio to play the video stream you also need to include an audio track, but you will also want that audio in order to hear the audio of any video you are playing on the pc.

For the audio input filter, you should try the free virtual audio capture grabber device (VACGD) (download from https://github.com/rdp/virtual-audio-capture-grabber-device/downloads) however it did not work correctly for me on W7-64 and I had to use virtual-audio-cable(VAC) which while not free works flawlessly (available at http://software.muzychenko.net/eng/vac.htm). (Note that I am still working with the author of VACGD to correct my problems with VACGD..Others should try it because my problem may be with my sound card driver and not with VACGD)

To setup VAC for streaming, in the Sound Control panel for both Recording and Playback,(accessable by right clicking the Speaker icon in the System tray) right click the Vac “Line 1” and select “Set as Default Device”. This causes the audio from all applications to be connected to the input of the VAC cable and enables the VAC cable output to be available for VLC to stream the application audio. This also disconnects the PC mic and speakers while you are streaming. For VACGD no setup is required as it will stream the default sound card output at full volume even if the speaker volume is turned off or muted.

Then run the following/attached .bat file (after editing it to point at your installed VLC) to start the stream.

This bat will cause VLC to use the named filters to capture the video and audio output, transcode it to Mpeg2Video/MP3 audio with a 1280 x 720 resolution consistent with HDTVs and stream it to the network as a 10000 bps HTTP stream on port 8081. Be sure that only one instance of VLC.exe is running. Sometimes on termination the previous VLC.exe remains active and must be manually terminated, or a kill command added to the bat file.

If you use VACGD replace :dshow-adev=“Line 1 (Virtual Audio Cable)” with :dshow-adev=virtual-audio-capturer
You may also experiment with :dshow-caching=20000 to reduce latency and the transcoded video bit rate vb=10000 to overcome network capacity and or transcoding delays.

StreamDesktop.bat

@echo off

:This bat is used to stream the desktop with VLC using HTTP
:A corresponding player must be started using HTTP

"C:\Programs\VLC TEST 1.1.10\vlc.exe" -vvv dshow:// --sout=#transcode{venc=ffmpeg,vcodec=mp2v,vb=10000,fps=24,scale=0.5,width=1280,acodec=mp3,ab=192,channels=2,samplerate=44100,soverlay}:std{access=http,mux=ts,dst=:8081} --no-sout-rtp-sap --no-sout-standard-sap --ttl=1 --sout-keep   :dshow-vdev=screen-capture-recorder :dshow-adev="Line 1 (Virtual Audio Cable)"  :dshow-caching=2000

You can test it on your PC using mplayer. Here is my .bat for that, but you will want to get and install the latest mplayer.exe:

"D:\My Program Downloads\Base Install VPlayers\MPlayer-Mencoder\MPlayer-p3-svn-33216\mplayer.exe" http://@192.168.1.10:8081 -cache 50

Finally, to setup Serviio to play the stream, add your PC's static address to the Serviio Console/Online Sources/Live Stream in the form http://192.168.1.10:8081 and name it “Desktop”. (Note that zip has advised that the stream must be running, as instructed above, when the link is added to the console, else Serviio will not accept the link or display it in the Online menu.) Then on the TV click on the “Desktop” icon and the stream should play.

Now, each time you want to stream your desktop, access your SoundCard control Panel by right clicking the speaker icon in the system tray and click “playback devices”, right click “Line 1” and click “Set as Default Device” then click the recording tab and again click right click “Line 1” and click “Set as Default Device”. The sound from your PC applications will now be streamed to Serviio. To revert the PC to normal speaker/microphone operation reverse the above and set the speakers and microphone as the default devices. None of this is necessary with VACGD but you will want to mute the PC sound.

Then run the StreamDesktop.bat from a shortcut on your desktop, and open the “Desktop” stream under “Online Feeds” in Serviio.

You may now start whatever PC application you want either directly on the PC or by using a remote mouse/keyboard to operate your PC remotely while viewing the TV screen. You will see a slight overscan on the TV. (in my case about half a line on the top and bottom of the desktop is missing but not enough to prevent me from clicking on the taskbar icons). If this is annoying simply drag the taskbar up to make it double high. Similarly for the top line function access “alt-space” will display the System menu for the active window where you can restore, move, resize, minimize, maximize, or close the window. There will also be a delay (3 to 5 seconds in my case) as the screen is captured, buffered and streamed, but it is irrelevant once your video playback starts and you switch to full screen.

As this Wiki entry is under development check back frequently for changes as logged below.

Please post your experiences with this setup in the “streaming desk top to tv” thread http://forum.serviio.org/viewtopic.php?f=4&t=4660&p=32269

- Jan 8, 2012 - Changed setup sequence. Noted stream must be started before adding link to Serviio. Added VACGD info. Added .bat tuning info.

stream_pc.1326081445.txt.gz · Last modified: 2012/01/09 03:57 by jhb50