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
stream_pc [2012/01/21 21:20]
jhb50
stream_pc [2013/01/28 17:29] (current)
rogerdpack fix url's, typo's
Line 1: Line 1:
 ** ====== How to Stream Your Windows PC Desktop ====== **  ** ====== How to Stream Your Windows PC Desktop ====== ** 
- 
-<note warning> 
-Process under development and maybe updated at anytime. Last update 21/​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%% .  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%% . 
Line 8: Line 5:
 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. ​
  
-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 not available directly to Servio online streams. ​+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 unencrypted ​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 not available directly to Servio online streams. ​
  
 To stream your desktop you need to install VLC to do the streaming, a directshow video input filter to capture the desktop area, and a directshow audio input filter to capture the sound output from the application. ​ To stream your desktop you need to install VLC to do the streaming, a directshow video input filter to capture the desktop area, and a directshow audio input filter to capture the sound output from the application. ​
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. (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.) ​+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 links on https://github.com/rdp/screen-capture-recorder-to-video-windows-free). 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 have 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.  Be careful you may need to set width to a multiple of 4 or 8.
  
-To get Serviio to play the video stream this process requires the inclusion of an audio track, even if you do not want to hear the audio of any video you are playing on the pc. It may be possible to stream the video only, however this process does not addres ​that option.+To get Serviio to play the video stream this process requires the inclusion of an audio track, even if you do not want to hear the audio of any video you are playing on the pc. It may be possible to stream the video only, however this process does not address ​that option.
  
-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)  ​+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) 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. 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.
Line 34: Line 31:
 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 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 usr, these alternatives ​have not been further explored ​  ​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 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 exploredBased 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 61: 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 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. - Jan 21, 2012 - Removed soverlay parameter from command as redundant, and identify lack of low resolution/​partial screen support.
stream_pc.1327180831.txt.gz ยท Last modified: 2012/01/21 21:20 by jhb50