This project aims at developing middleware for the acquisition, streaming and presentation of HD video and audio sources. This project ties together video capture hardware with a real-time texture compression library and multicast streaming protocol to deliver multiple HD resolution AV streams over gigabit networks with support for mobility -- which is useful for tiled displays. Input sources include HD video cameras, laptop/desktop machines and even video game consoles.

+

VideoBlaster is a distributed video player which is incorporated inside of [[Research_Projects:_CGLX |CGLX]]. VideoBlaster synchronizes video frames between all nodes and uses audio timing to control the video release rate. VideoBlaster plays a wide variety of formats such as MPEG-4, H264, Mov, etc. VideoBlaster can also play network streams allowing for media such as DVD to be streamed in an uncompressed format to tiled displays.

VideoBlaster plays audio by the specifications of the video without down-mixing. This means that if your video is encoded in 5.1 and you are listening through a stereo output you will be missing 4 of the audio channels. Linux can down-mix using profiles which users can specify. Here is a tutorial of how to do so. [[5.1toStereo_asoundrc_Profile]]

==== Why does the Video play really fast? ====

==== Why does the Video play really fast? ====

Line 46:

Line 50:

This comes from a clipping problem. For now, just disable clipping using the '''--no-clip''' command line argument.

This comes from a clipping problem. For now, just disable clipping using the '''--no-clip''' command line argument.

VideoBlaster is a distributed video player which is incorporated inside of CGLX. VideoBlaster synchronizes video frames between all nodes and uses audio timing to control the video release rate. VideoBlaster plays a wide variety of formats such as MPEG-4, H264, Mov, etc. VideoBlaster can also play network streams allowing for media such as DVD to be streamed in an uncompressed format to tiled displays.

<youtube>aV_nVxCU9F4</youtube>
VideoBlaster feed displayed at 143 megapixel resolution. Keep in mind that the bezels of tiled, LCD-based displays are a temporary artifact, which will be resolved very soon. Our approach is display agnostic and works just as well on projection based multi-tile displays or any display device that accepts one of the standard video connectors.

VideoBlaster plays audio by the specifications of the video without down-mixing. This means that if your video is encoded in 5.1 and you are listening through a stereo output you will be missing 4 of the audio channels. Linux can down-mix using profiles which users can specify. Here is a tutorial of how to do so. 5.1toStereo_asoundrc_Profile

VideoBlaster sometimes detects an incorrect framerate from ffmpeg. Check to make sure the framerate is correct. If it is not, force the framerate using the --framerate or -r command line argument. Most videos playback at 23.976024.

By default, VideoBlaster uses Audio for its timing, but does not actively synchronize the video with the audio. This method usually works fine for videos which are encoded correctly such that the framerate is equal to the number of video frames divded by the length of audio which is played. If this is not the the case, or if the video is coming from a network stream, the audio and video may become out of sync. This can be fixed in two ways. By pressing the + and - keys, users can actively change the video offset until the two streams match. The tag, --enable-audio-sync may also be added in the command line to actively sync audio and video. This synchronization procedure is still in early stages of development.

[edit] Why is the Audio ahead or behind the Audio/Video on the head node?

This comes from the fact that sound card clocks are not perfect. While work to synchronize audio between the wall and head nodes is underway, this process is not trivial. For now, our suggestion is to add the --head-only-audio flag in the command line at startup. This will disable audio on the nodes.

This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by the author's copyright. This work may not be reposted without the explicit permission of the copyright holder.