Streaming a remote desktop into VidBlaster
It can often be useful to use the desktop display of another computer as a video input to VidBlaster. Probably the best way, quality-wise, is to use a dedicated hardware connection, from the graphics card output to a video capture device on the VidBlaster PC. (See:- Using computer output as a video source) Such a dedicated connection will carry a full-resolution, uncompressed video signal at full frame rate, with low latency determined only by the capture device (and hence similar to any live camera inputs being used).
However, hardware connections are not always convenient. HDMI connections, for example, are not suitable for long cable runs. When computers are located in different rooms, it may not be practical to run additional video cabling, and the only infrastructure wiring might be a network connection. Capturing and transmitting an image of the desktop over an IP connection may be the only option, either because it’s the most practical solution, or the cheapest.
VidBlaster has two different input modules (Camera-I and RTSP/RTMP In) which have IP input capabilities, depending on the protocol and compression format used. This article will show an example of using the RTSP/RTMP In module to receive a stream generated from a remote PC using the VLC Player, with both PCs running Windows 7.
|Personal Note - This article is based on an idea I had for something which I thought would be useful, and which should be possible. What you see on this page are the results of my experiments and what worked for me. I have tried to illustrate my settings in as much detail as possible. However, debugging RTSP streams is not an area in which I have any expertise, so if your attempt to emulate my setup does not produce the same results, please do not ask for support. THIS IS AN UNSUPPORTED PROCEDURE. (Martin Kay, March 2013)|
Setting up the transmitting PC
Next, run the VLC Player (v2.x) and select Stream from the Media menu. Then, under the Capture Device tab, select Desktop as the capture mode and set the Frame Rate - typically to match the frame rate to be used in VidBlaster. It can be set to a slower frame rate, either because the PC isn't powerful enough to screen-grab and stream at full frame rate, or because the screen is likely to have mostly static content and a better compromise is required between data bandwidth usage and latency.
Click the Stream button to move to the next page where the Source is confirmed as "Screen://", then click Next to move on to the Destination Setup page. Choose RTSP from the drop-down list of streaming methods, and click Add.
Make a note of (and optionally set) the Port Number and Path, as these will be used in VidBlaster to construct the stream address.
With Activate Transcoding ticked, select MPEG-2 as the video compression format. Click on the Settings button immediately to the right of that, and under the Video Codec tab are settings for Bitrate, Frame Rate & Scaling. Frame Rate will typically match the frame rate used in VidBlaster (e.g. 25 or 30 fps). Bitrate is effectively the quality setting, so a higher setting will produce less artefacts, but the upper limit may be set by the speed of the network itself. On a fast wired LAN it should be quite possible to run at 10Mb/s or more, and in our example we've chosen 8000Kb/s, around the same rate as used for encoding in MPEG-2 on DVDs.
The last task in the Video Codec tab is to set the size or scaling factor that will be applied to the streamed output. Where the desktop resolution is higher than the working video resolution set in VidBlaster, as is often the case, it makes sense to do the scaling before transmitting the stream - to save on network bandwidth - rather than after it arrives in VidBlaster. This also reduces the load on the CPU in VidBlaster. In our example, the desktop was running at 1280x720 and we were running VidBlaster at 640x360 (half-size 720p) so we have set the Width & Height in VLC to 640x360.
|Note - In the example above, which uses a modified version of VLC's standard RTSP profile, the stream consists of MPEG2 video and MPEG audio. Do not disable the audio (even if you don't need it) if you wish to receive the stream in VidBlaster. VLC will display an incoming RTSP stream which is video-only, but the RTSP Module requires the stream to contain both video & audio.|
Save the MPEG2 Video Codec settings, click Next to move to the Miscellaneous Options page and then click Stream. Confirmation that streaming has started is in the form of a timer/counter running in the lower left corner of the VLC window, after which the VLC Player can be minimised where it will continue to work in the background, streaming the desktop contents with whatever software is running. An error message may be generated if the required codecs are not present, but these settings have been used successfully under Windows 7 & Vista installations.
Receiving the stream in VidBlaster
In VidBlaster, add an RTSP/RTMP In module and choose Enter > URL from its pop-up menu. The stream address is entered in the form rtsp://<IP address>:<port number><path>, so in our screen-grab example would be rtsp://192.168.1.30:8554/. Some beta versions of VidBlaster (prior to v2.21) may generate an error when the URL is entered, but the stream should still be received and, after a brief delay for buffering, will appear in the module's display window, ready for use as a source for selection to the Program output.
If you see no video, double-check the sending device to make sure the stream contains both audio and video components. If the audio stream contains nothing of importance, as in this example, set the output Audio Device in the RTSP module to No sound. Otherwise, choose an audio output device through which the streamed audio will be played.
A video tutorial
This YouTube video illustrates the complete process of sending a remote desktop using the VLC Player and receiving it as a video source in VidBlaster.
If the Media Player above doesn't load in your browser, you can watch the Streaming a Remote Desktop into VidBlaster video on YouTube.