User Tools

Site Tools


stream_pc

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
stream_pc [2012/01/12 19:18]
jhb50
stream_pc [2012/04/27 17:32]
jhb50
Line 1: Line 1:
 ** ====== How to Stream Your Windows PC Desktop ====== **  ** ====== How to Stream Your Windows PC Desktop ====== ** 
  
-<note warning> +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 video stream from your PC to the Serviio console as a video livestream at your PC address eg: %%http://192.168.1.10:8081%% .  All the rest involves the setup of your PC to create the stream using VLC, again making changes in the following to using the same static address for your PC. eg: %%http://192.168.1.10:8081%% 
-Process under development and maybe updated at anytime. Last update 12/01/12</note> +
- +
-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 video stream from your PC to the Serviio console as a video livestream at your PC address eg: http:192.168.1.10:8081 .  All the rest involves the setup of your PC to create the stream using VLC, again making changes in the following to using the same static address for your PC. eg: http:192.168.1.10:8081 . +
  
 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.  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. 
Line 14: Line 11:
 This process has been tested and works correctly with VLC 1.1.10. It may break with other versions or nightlys so be warned. Since VLC is registry independent, you can maintain a VLC 1.1.10 version for desktop streaming, while installing updated versions for normal purposes. This Wiki entry does not address the installation of VLC. This process has been tested and works correctly with VLC 1.1.10. It may break with other versions or nightlys so be warned. Since VLC is registry independent, you can maintain a VLC 1.1.10 version for desktop streaming, while installing updated versions for normal purposes. This Wiki entry does not address the installation of VLC.
  
-For the video input filter, I used screen-capture-recorder (SCR)because its free, it works, is configurable and is under active maintenance (download from http://sourceforge.net/projects/screencapturer/files/). Read the README for instructions on how it works and how to use the "Screen Capturer Recorder\configuration_setup_utilities" to set it up for your system. (Other users have indicated the need to install "Microsoft Visual C++" first but there is no mention of it as a pre-req. There is however a provided utility to run and re-register SCR if you do so. They also indicated that in order to configure "screen-capture-recorder" you need the Java JRE installed. See http://forum.serviio.org/viewtopic.php?f=4&t=4660&start=10  I have asked the author to verify this.) +For the video input filter, I used screen-capture-recorder (SCR)because its free, it works, is configurable and is under active maintenance (download from http://sourceforge.net/projects/screencapturer/files/). Read the README for instructions on how it works and how to use the "Screen Capturer Recorder\configuration_setup_utilities" to set it up for your system. (Note that the author has confirmed the need to install "Microsoft Visual C++" first and that you need the Java JRE installed to run some of the utilities. See http://forum.serviio.org/viewtopic.php?f=4&t=4660&start=10.) 
  
 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, run the "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 my screen was set to display which is 1280x720. (Right click your Desktop and click "Screen resolution" to see your current and maximum setable resolutions). Other users have reported the need to set the dimensions that their screen is set to display. 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, run the "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 my screen was set to display which is 1280x720. (Right click your Desktop and click "Screen resolution" to see your current and maximum setable resolutions). Other users have reported the need to set the dimensions that their screen is set to display.
Line 32: Line 29:
 You may also experiment with :dshow-caching=20000 to reduce latency and the transcoded video bit rate vb=10000 to overcome network capacity or transcoding load. You may also experiment with :dshow-caching=20000 to reduce latency and the transcoded video bit rate vb=10000 to overcome network capacity or transcoding load.
  
-Note that your PC must be fast enough to read any incoming stream, render it using a player to the screen, capture the desktop screen, transcode it to an MPEG2 video stream and send it as an output stream, all in real-time, otherwise the TV will sense the real-time delay as the termination of the stream and issue some type of File Format Not Supported message. Reducing your PC screen resolution or the size of the capture window can help reduce the capture and transcoding load. Based on user feedback, even dual core systems can have problems with this. In my case my 8 core I7 uses about 15% cpu but if reduced to 2 cores runs at about 90% cpu.+Note that the use of MPEG2 is essential to the success of this process. While h264 may be considered by some to be a better choice, it requires significantly more CPU cycles to encode than MPEG2, and more significantly that load increases in relation to the dynamics of the area being captured, whereas the MPEG2 load is flat regardless of the dynamics. This can lead to the belief that h264 is satisfactory based on the transcoding of a static desktop, however when a video is being played the h264 load soars while the MPEG2 load stays the same.  
 + 
 +Note that your PC must be fast enough to read any incoming stream, render it using a player to the screen, capture the desktop screen, transcode it to an MPEG2 video stream and send it as an output stream, all in real-time, otherwise the TV will sense the real-time delay as the termination of the stream and issue some type of File Format Not Supported message. Reducing your PC screen resolution or the size of the capture window can help reduce the capture and transcoding load, however the resolution of the streamed picture on the TV will be correspondingly reduced, and only part of the desktop may be streamed. Since neither of these outcomes are consistent with the goals of this wiki to stream your full desktop at its full resolution, and somewhat impractical to use, these alternatives are not further explored. Based on user feedback, even dual core systems can have problems. In my case my 8 core I7 uses about 15% cpu but if reduced to 2 cores runs at about 90% cpu.
 <code>StreamDesktop.bat <code>StreamDesktop.bat
  
Line 40: Line 39:
 :A corresponding player must be started 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</code>+"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}: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
  
 +:Exit
 +</code>
 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: 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:
- +<code>"D:\My Program Downloads\Base Install VPlayers\MPlayer-Mencoder\MPlayer-p3-svn-33216\mplayer.exe" http://@192.168.1.10:8081 -cache 50 
-"D:\My Program Downloads\Base Install VPlayers\MPlayer-Mencoder\MPlayer-p3-svn-33216\mplayer.exe" http://@192.168.1.10:8081 -cache 50 +</code>
 Finally, to setup Serviio to play the stream, add your PC's static address to the Serviio Console/Online Sources/Live Stream/Video 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.  Finally, to setup Serviio to play the stream, add your PC's static address to the Serviio Console/Online Sources/Live Stream/Video 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. 
  
Line 58: Line 58:
 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 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.+- Jan  8, 2012 - Changed setup sequence. Noted stream must be started before adding link to Serviio. Added VACGD info. Added .bat tuning info.
 - Jan 12, 2012 - Edited for more clarity per user feedback. - Jan 12, 2012 - Edited for more clarity per user feedback.
 +- Jan 14, 2012 - Edited to explain why transcoding needs to be to MPEG2
 +- Jan 21, 2012 - Removed soverlay parameter from command as redundant, and identify lack of low resolution/partial screen support.
stream_pc.txt · Last modified: 2013/01/28 17:29 by rogerdpack