Streaming

If one wants to show parts of a local video to a participant simultaneously to an already running video conference in order to discuss its content, transmitting of single A/V streams separately has to be possible. For this purpose, Homer enables sending single A/V data in real-time (also without a simultaneously running video conference) via separate transmission channels. Infrastructure is not needed for this application. The remote station can directly receive the data and use it as input for further processing. In general, Homer uses known codecs for transmission for both video (H.261, H.263(+), H.264, MPEG1/2/4,..) and audio data (MP3, aLAW, uLAW,..). The applied quality level for the A/V transmission can be adjusted by the help of the GUI. It is possible to transmit A/V stream both with very low and very high quality (e.g. HDTV). The actual possibilities are limited by the used hardware. But the software architecture of Homer is constructed for parallelization of internal processing steps. In order to enable high quality settings, as much as possible of the available CPU cores are used simultaneously.

Network protocols

Homer supports for the transmission of A/V stream basically both IPv4 and IPv6. The protocol version is selected automatically. For the transmission of A/V data, Homer does not only support the classic transport protocols TCP and UDP, but also alternative protocols, e.g., SCTP and UDPLite, are supported. The possibilities in this context are limited by the used operating system and the therefore available functions.

Experiments

Additionally to standard application, Homer is also used for experiments by some developers, and it therefore provides in the so called developer/debug mode some extra functions. For example, one can assign additional transmission requirements to an A/V stream. They could include QoS parameters or define that transmitted data has to be delivered to receiver side without any data loss. Homer is able to signal such transmission requirements towards the network. The possible impacts of such extra requirements depend on the used network API and can vary accordingly. Additionally, by the help of the GUI the maximum packet size of an A/V stream can be defined and therefore the behavior during packet creation can be influenced. However, the officially available release versions do not include an explicit support of experiments. The are limited to the standard case, which uses the known Berkeley sockets as interface towards the network. Only the packet size limitation is included and can be used for the optimization of the transmission quality.
Figure: the video output should be streamed to a network receiver
Figure: the dialog for selecting the desired network receiver
Figure: the dialog for configuring the receiving of a video stream
Figure: the dialog for configuring the pre-buffering which is used for the video & audio receiving