4Sight Administrator Guide Software Edition Version 3.1 rev.
© 2004 Envivio Inc. All rights reserved. 4Sight Administrator Guide 3.1 This manual and the software described in it are furnished under license and may be used or copied only in accordance with the terms of such license. The content of this manual is provided for information only. It is subject to change without notice and should not be construed as a commitment by Envivio Inc. Envivio Inc. assumes no responsibility or liability for any errors or inaccuracies that may appear in this book.
Acknowledgments Envivio Incorporated acknowledges use of software from the following sources and includes their copyright notices and required statements. here. This software is based in part on the code of the Darwin Streaming Server (for which the source code is available under the terms of the Apple Public Source License Version 1.2 at http://www.opensource.apple.com/projects/streaming/). The modifications applied to the original code are available at: http://www.envivio.tv/downloads/qtss.
v Contents Chapter 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 User Guide structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Envivio Professional Services and Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Chapter 2 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Specifications . . . . . . . . . . . . . . . . . . . . . . .
vi 4sight Administrator Guide Contents Uninstallation under Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Installation on Linux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Uninstallation under Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Installing the Envivio Linux Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Installing the Linux kernel patch . . . .
4sight Administrator Guide vii Contents Relay verification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Running 4Sight as a service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Installing 4Sight as a service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Starting, stopping and removing the 4Sight service . . . . . . . . . . . . . . . 51 Embedding streamable content in a web page . . .
viii 4sight Administrator Guide Contents Chapter 8 Stream Switcher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Basic setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Using a specific network interface card as output . . . . . . . . . . . . . . . . . . . . . . .
4sight Administrator Guide ix Contents Access file. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 qtpasswd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Remote access to the WebAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Chapter 11 External authorization module . . . . . . . . . . . . . . . . . . . .103 Overview. . . . . . . . . . . . . . .
x 4sight Administrator Guide Contents Appendix B Configuration examples . . . . . . . . . . . . . . . . . . . . . . . . . .121 Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Configuration examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Example #1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapter 1 Introduction 4Sight streams MPEG-4 media over IP networks. MPEG-4 is a standard that defines how to encode and compose media elements. Envivio products are based on this technology, providing a comprehensive toolset for encoding media to the MPEG-4 format, and streaming it over IP networks. Version 3.
Chapter 1 Introduction User Guide structure This document is divided as follows: - Chapter 2 introduces the main features of 4Sight and some basic concepts of MPEG-4 streaming. - Chapter 3 gives system requirements and describes how to install 4Sight (for Windows and Linux). - Chapter 4 explains how to run 4Sight and stream movies. - Chapter 5 describes specific concepts of the streaming server itself: Setting a movie folder, SNMP monitoring, reflecting, and relaying.
4Sight 13 Administrator Guide Envivio Professional Services and Support You may contact us for specific projects requiring customized options or specific development, available through our service organization. For contact information, see the Envivio website at http://www.envivio.com. If you have support questions, contact Envivio Customer Services. Version 3.
Chapter 1 Introduction Version 3.
Chapter 2 Overview Version 3.
Chapter 2 Overview Specifications 4Sight is an MPEG-4 compliant server that broadcasters and cable operators can use to manage and distribute interactive multimedia content through IP networks to EnvivioTVTM or any other MPEG-4 compliant player. 4Sight consists of three components: • The Streaming Server for video on demand, relaying, and reflecting. • The Playlist Broadcaster that can broadcast a list of MPEG-4 files, which can then be reflected by the streaming server.
4Sight 17 Administrator Guide 4Sight supports trick play (fast forward and fast backward) based on the RTSP RFC 2326 by using play command with a specific SCALE attribute. The range of speeds allowed is by default [-128, -1] for fast backward and [1, 128] for fast forward. You can change them via the streaming server configuration file (see “File module parameters” on page 118).
Chapter 2 Overview Error Resilience 4Sight offers error resilience so that EnvivioTVTM can receive content smoothly under severe network packet loss conditions (up to 2% packet loss rate). Both 4Sight and EnvivioTVTM provide a rebuffering management policy that improves the user experience when traffic is congested. Version 3.
4Sight 19 Administrator Guide Concepts Streaming overview The streaming process includes two parts: a client and a server. The server sends an MPEG-4 formatted movie to a client over a network. Unlike the progressive download or the simple file transfer (where the client waits for the whole movie to be downloaded before playing anything), the server does not send the movie as a whole, it divides it into small packets that can easily be sent over a network.
Chapter 2 Overview Streaming session A streaming session is a set of streams (such as video, audio or BIFS for MPEG-4) that is sent from a server to a client. A stream can contain a live track from a broadcast MPEG-4 movie (for example, audio or video generated by the Playlist Broadcaster or Envivio 4Caster), or from a stored MPEG-4 file. 1. To begin a streaming session, the client sends a request for a movie. 2.
4Sight 21 Administrator Guide Figure 1. Unicast streaming Stream 1 EnvivioTV™ 4View Stream 2 4Sight EnvivioTV™ 4View Stream 3 EnvivioTV™ 4View Multicast streaming Multicast streaming means communication between one sender and multiple receivers. During such a session, one copy of each stream is sent over each branch of a network. The main advantage is that this reduces the network traffic necessary to send data to large numbers of clients.
Chapter 2 Overview NOTE Since multicast is one of the packet types in Internet Protocol Version 6 (IPv6), it will work on a LAN if multicast forwarding is enabled on the routers between the network segments (unless your router does not support multicast mode). However, this will not usually work across the Internet since most of the routers are not configured to support multicast, and you cannot be sure which routers will be used by your streams.
4Sight 23 Administrator Guide Relay 4Sight acts as a relay server when it accepts a stream from a source (a broadcaster or another streaming server) and sends it or "relays" it to one or more other IP addresses. See “Using 4Sight as a relay” on page 42. Broadcast A broadcast is a stream of RTP packets generated by an application or process external to the streaming server (it often runs on a separate machine).
Chapter 2 Overview During the preparation of the MPEG-4 file for streaming, one hint track is added to the MPEG-4 file for each track whose media will be streamed over RTP. The hint tracks within the MPEG-4 file provide the information needed to turn the media into RTP packets. These hint tracks are part of the MPEG-4 atom structure, and are similar to Apple’s QuickTime file format. Version 3.
Chapter 3 Installation Version 3.
Chapter 3 Installation System Requirements The minimal machine configuration to run 4Sight is the following: NOTES • Windows® 2000/2003 advanced server, Red Hat Linux® 8.0 • For Linux/Windows: Pentium® III 800 MHz with 256 MB RAM (512 recommended), SCSI architecture, Gigabit Ethernet Card. On a multiprocessor architecture, 4Sight only uses one processor. 4Sight is not optimized for hyperthreading. We recommend deactivating hyperthreading to fully benefit from the power of the CPU. Version 3.
Envivio Streaming Server 27 Administrator Guide Installation of 4Sight 4Sight is available on Windows and Linux. Both versions are provided with an installer. Installation requires 2 steps: create a registration file which will be used to generate a licence key and install with separately provided licensing file. Installation on Windows Registration 1. Double-click the installer file 4Sight-XXX.
Chapter 3 Installation 3. This creates a registration file that you have to save on your disk before mailing it to your sales contact. 4. When you receive the ZIP file, uncompress it and save the licensing file (LIC extension) into a temporary folder. Installing 4Sight 5. Relaunch the installer, indicate the path to the license file. Then follow the installation instructions. Version 3.
Envivio Streaming Server 29 Administrator Guide Configuration 6. You will have to choose an administration port, by default port 554 is used. NOTE By default, the movie directory is set to c:\Program Files\Envivio\4Sight XXX\Movies . Uninstallation under Windows To uninstall 4Sight, stop the service (if 4Sight was started as a service), and select the Uninstall 4Sight 3.1 command from the Start>Program Files>Envivio>Envivio 4Sight 3.1 menu. Version 3.
Chapter 3 Installation Installation on Linux 1. To install 4Sight on Linux, enter the following command: rpm -ivh 4SightSE-XXX.i386.rpm where XXX is the version number. 2. To create the license registration file, run the following command: /etc/rc.d/init.d/ess register 3. You will be asked for the path to the license file. If you are not registered, enter y (yes) and give your identifier (your host name) and company name.
Envivio Streaming Server 31 Administrator Guide The following executables will be installed in /usr/Envivio/4Sight/sbin : • 4Sight : 4Sight server binary • EnvivioPlaylistBroadcaster : Playlist Broadcaster binary • streamingadminserver.pl : Admin Server startup script • qtpasswd : Password utility The following startup scripts will be installed in /usr/bin : • envivio_server.sh (obsolete, use • • envivio_playlist.sh scripts in /etc/rc.d/init.d) envivio_admin.sh (obsolete, use scripts in /etc/rc.
Chapter 3 Installation Installing the Envivio Linux Kernel Envivio has developed a specific Linux kernel patch to fix some Linux kernel bugs. You must install this patch if you want to use the SDP broadcaster in relay (see “Using 4Sight as a relay” on page 42) or switcher (see “Stream Switcher” on page 75) configurations. WARNING Envivio Linux kernel patch is only valid for Linux version 2.4.18. Installing the Linux kernel patch To install the Linux kernel patch, follow these steps: 1.
Chapter 4 Quick start Version 3.
Chapter 4 Quick start Overview This section describes step by step instructions for using 4Sight. Starting 4Sight 1. Put the MPEG-4 movie file(s) you want to stream in your movie folder. 2. Launch the application: Under Windows, • if you have installed 4Sight as a service, go to “Chapter5 on page 51", • otherwise, go to the Start/Programs/Envivio/4Sight 3.1 menu, and launch 4Sight. Under Linux, type /etc/rc.d/init.d/ess start Streaming your movie 1.
Envivio Streaming Server Administrator Guide Stopping 4Sight Under Windows, • if you have installed 4Sight as a service, go to “Chapter5 on page 51", • otherwise, close the 4sight windows. Under Linux, type /etc/rc.d/init.d/ess stop Version 3.
Chapter 4 Quick start Version 3.
Chapter 5 Streaming Server Version 3.
Chapter 5 Streaming Server Setting up Movie Folders To serve on-demand MPEG-4 files stored on your server, 4Sight needs to know where your files are located. You can change the default movie folder or add new ones using the WebAdmin: 1. Open a web browser and connect to your WebAdmin (see “WebAdmin” on page 71 for further details). 2. Click on the Movie Folders menu item. You will see a list of movie folders. 3.
4Sight Administrator Guide 5. Click the Saves Changes button to add this new folder. Version 3.
Chapter 5 Streaming Server Using 4Sight as a reflector Most routers on the Internet cannot properly interpret multicast information as they are set up to transfer traditional Internet Protocol (IP) unicast packets that have a single, specific destination. A reflector is an RTSP server that has the ability to join a multicast, and to convert the multicast stream into a series of individual unicast streams. A reflector feeds each client with an individual stream.
4Sight 41 Administrator Guide Figure 1. Reflecting Playlist Broadcaster Multicast address EnvivioTV / 4View Router Multicast Router Envivio 4Sight Router Unicast Router Version 3.
Chapter 5 Streaming Server Using 4Sight as a relay 4Sight acts as a relay server when it accepts a stream from a source (a broadcaster or another streaming server) and sends it or "relays" it to one or more other streaming servers. Basic setup Use the WebAdmin to set up a relay (see “WebAdmin” on page 71). Preliminary setup of the server Before configuring 4Sight as a relay, you need to check your streaming server configuration file. In the streamingserver.xml file, look for the ESSRelayModule.
4Sight 43 Administrator Guide Setting up a relay using the WebAdmin 1. Using a web browser, connect to the WebAdmin (see “WebAdmin” on page 71). 2. Click on the Relay Settings menu item. You will see a list of your configured relays. 3. Click on New Relay to create a new relay. The following page is displayed: Fill in the different fields and then click the Save Changes button. NOTE Common use cases are detailed later (see page 44). Version 3.
Chapter 5 Streaming Server 4. Your relay will then be listed in the relay list, followed by its status that can be either Enabled or Disabled. NOTE You can click the relay. or buttons to respectively enable or disable the Common configurations Relay a UDP stream to one or more destinations To relay a UDP stream, you need to follow these steps: 1. Specify the sender address (this address can be either multicast or unicast to the server). 2. Select the Relay a UDP Source radio button. 3.
4Sight 45 Administrator Guide 4. Provide the information about the destination (you can add more destinations if needed). Then click the Save Changes button. 4Sight will then start relaying the source address to the configured destination addresses: NOTE • If a local interface is specified then the output stream will be directed to this interface. • If a SAP session name is specified, then the output will also broadcast an SAP announce message with the given name.
Chapter 5 Streaming Server Relay an announced stream If you are using a broadcaster that supports RTSP announces (such as the Playlist Broadcaster) in conjunction with 4Sight, you can relay the announced stream. For this, you need to set up your relay with the IP address of your broadcaster and select the Wait for announced streams radio button. The announce can be either announced directly to the server or the server can look for a specific announced session using SAP.
4Sight 47 Administrator Guide Relay a requested stream This configuration is for the scenario where you have a server configured and running that you would like to relay, but the server is not broadcasting anything, it is just accepting and handling requests from clients. In order to relay requests, you will need to have an incoming stream.
Chapter 5 Streaming Server Relay a UDP stream using a specific network interface card You can define the network interface card that you want to use for sending packets by specifying the Local Output Interface parameter in the Destination section. For example, imagine that you have two network interface cards, the first one with the IP address 192.178.106.22 and the second one with the IP address 193.178.105.126 and you want to use the second one for sending packets.
4Sight 49 Administrator Guide Status of the configured relays Once everything is configured, you can check that the stream is effectively relayed by going to the Relay status page. The following window should be displayed: Hints Passwords Passwords are not encrypted in the configuration file. You should ensure that your relay configuration files are adequately protected on your system. Relay verification To see if streams are getting relayed properly, you can use a traffic analyzer.
Chapter 5 Streaming Server Running 4Sight as a service NOTE This feature is available only on Windows. Installing 4Sight as a service During the installation process, you are prompted to install 4Sight as a service. If you did not select this option, you can install it by following these steps: 1. Open an MS-DOS window. 2. Go into the Bin directory where you installed 4Sight and type: 4Sight -i Version 3.
4Sight 51 Administrator Guide Starting, stopping and removing the 4Sight service To start the 4Sight service, go to the Start/Settings/Control panel/ Administrative Tools/Services menu and click the button to start the 4Sight service. To stop the 4Sight service, go to the Start/Settings/Control panel/ Administrative Tools/Services menu and click the button to stop the 4Sight service.
Chapter 5 Streaming Server Embedding streamable content in a web page You can display an MPEG-4 streamed file directly into an HTML page. To embed streamable content in a web page, two solutions are available: 1. Use an anchor element pointing to an M4E file: My content where yourfile.m4e contains: url=rtsp://nameoftheserver/yourfile.mp4 2. Or use an anchor with an RTSP URL: My content Version 3.
Chapter 6 Playlist Broadcaster Version 3.
Chapter 6 Playlist Broadcaster Overview The Playlist Broadcaster is a tool for broadcasting a set of movies. This section describes how to configure and start a playlist. It also describes simple use cases and applications of the Playlist Broadcaster. A detailed description of the config file parameters is provided along with troubleshooting hints. Version 3.
4Sight 55 Administrator Guide Basic setup There are two ways to set up a playlist and broadcast it using the Playlist Broadcaster: • using the WebAdmin, • or by editing the playlist configuration files and running the Playlist Broadcaster in command line mode. These two methods are not mutually exclusive and can be combined for advanced use of the Playlist Broadcaster. Version 3.
Chapter 6 Playlist Broadcaster Setting up a playlist using the WebAdmin Using a web browser, connect to the WebAdmin (see “WebAdmin” on page 71 for more details). Click the Playlists menu item. You will see a list of your configured playlists. Click New MPEG4 Movie Playlist to create a new playlist. The following page is displayed: Version 3.
4Sight 57 Administrator Guide Fill in the different fields you need to set up your playlist and then click on the Save Changes button. Example: To broadcast the mp4profile.mp4 file in continuous loop mode, you should follow these steps: 1. Name the playlist: myPlaylist 2. Give a path to the SDP file: myPlaylist.m4e 3. In the Play Mode combo box, select Sequential Looped 4. Click and drag the mp4profile.mp4 file from the list of files to the Playlist items 5.
Chapter 6 Playlist Broadcaster Your playlist will then appear in the list of available playlists. You can then start and stop it directly by clicking on the play/stop icon on the right of the playlist. If an error occurs, a red stop sign appears near the play icon. You can click on it to look at the log file. You can test that your playlist is working by opening the SDP file in your player. Version 3.
4Sight 59 Administrator Guide Setting up a playlist using the command line interface You can also use the Playlist Broadcaster as a command line program. To do this, you need to create two files (that are automatically created by the WebAdmin). • The first one is called the config file and is named using the playlist name to which you append a CONFIG extension. • The second one is the list of files; its name is the name of the playlist to which you append the PLAYLIST extension.
Chapter 6 Playlist Broadcaster The config file will contain the following set of parameters: playlist_file /usr/Envivio/4Sight/Movies/ myPlaylist/myPlaylist.playlist play_mode sequential_looped destination_ip_address 127.0.0.1 #broadcast_name "myPlaylist" sdp_file /usr/Envivio/4Sight/Movies/myPlaylist.m4e destination_sdp_file /usr/Envivio/4Sight/Movies/myPlaylist.m4e broadcast_SDP_is_dynamic enabled pid_file /usr/Envivio/4Sight/Movies/ myPlaylist/myPlaylist.
4Sight 61 Administrator Guide Common scenarios: Broadcasting a playlist Single server configuration If you have 4Sight and Playlist Broadcaster on the same machine, one simple way to broadcast a playlist is to configure your playlist to drop the SDP file directly into the movie folder of your streaming server, and to use the server as a reflector (see “Using 4Sight as a reflector” on page 40). This is done by giving the full path to the SDP file in the movie folder. 1.
Chapter 6 Playlist Broadcaster Multiple servers: Unicast configuration You have two machines, one with Playlist Broadcaster, the other with 4Sight, and you want to make a playlist accessible through 4Sight. When you create or edit the playlist, you need to add some parameters to enable the Playlist Broadcaster to broadcast the playlist directly to the server. 1. If the address of your server is 192.163.25.14, then this address needs to be set as the destination address.
4Sight 63 Administrator Guide Multiple servers: Unicast and announce This is a more automated alternative to the previous setup. Using an announce, the Playlist Broadcaster will send the SDP file directly to 4Sight. You will not have to copy the SDP file to the server. Additional setup is required. 1. First, you need to use the qtpasswd utility to enable write permission on the movie folder of the server (see page 89 for further details). 2.
Chapter 6 Playlist Broadcaster Broadcast to a multicast address Broadcasting to a multicast address is similar to broadcast to a unicast address. All you need to do is to replace your unicast address with the multicast address you want to broadcast to.
4Sight 65 Administrator Guide Configuration file parameters This section describes the different parameters that you can modify in your playlist configuration file. Table 1. List of parameters Keyword Value playlist_file Playlist filename and path. The path can be absolute or relative. play_mode Three modes are available • sequential: The media is broadcast in the order it appears in the playlist file. When the last media file is done playing, the broadcast stops.
Chapter 6 Playlist Broadcaster Table 1. List of parameters Keyword Value destination_base_port The base port number for the broadcast must be an even number. If you do not specify a port number, the default port (5004) is used. recent_movies_list_size The minimum number of files that must play before a file may be repeated. You can specify this only if the play mode is weighted_random.
4Sight 67 Administrator Guide Table 1. List of parameters Keyword Value broadcaster_password Password to be provided to the destination address. multicast_ttl Time to live of the multicast packets in the case of a multicast playlist. rtsp_port RTSP port to use in case of an RTSP announced playlist. pid_file PID file of the broadcaster. This file is mandatory if you want to use the Playlist Broadcaster in both command line and WebAdmin. logging Can be either "enabled" or "disabled".
Chapter 6 Playlist Broadcaster Command line parameters The Playlist Broadcaster takes a playlist configuration file as a mandatory parameter. Table 2.
4Sight 69 Administrator Guide Troubleshooting The Playlist Broadcaster and the WebAdmin If you are using the WebAdmin to configure, start, and stop playlists, make sure the following parameters are set correctly in the streamingadminserver.cfg file • Plroot: set it to your playlist root.
Chapter 6 Playlist Broadcaster Playlist files All the MPEG-4 files that you hint and include in your playlist must be ISMA-compliant and have exactly the same characteristics: NOTE • contain one audio plus one video that have the same duration • same video properties (video size, frames per second) • same audio encoding parameters (frequency, stereo/mono).
Chapter 7 WebAdmin Version 3.
Chapter 7 WebAdmin Overview The WebAdmin allows you to remotely monitor and configure 4Sight. Starting the WebAdmin You can launch the WebAdmin from the Envivio menu on Windows, or from the envivio_admin.sh script on Linux. NOTE This feature requires Perl. You can find it at http://www.perl.com. To monitor 4Sight, you can either: • launch 4Sight Administration from the Envivio menu on Windows • or open a browser and type: http://127.0.0.
4Sight Administrator Guide Configuration parameters Table 1. WebAdmin streamingadminserver.conf parameters Keyword Value port The port on which WebAdmin listens for requests. root The root directory for all the HTML and CGI files. This path should be absolute. plroot The root directory for playlists managed by 4Sight. The path should be absolute. host The host name of 4Sight. qtssIPAddress The IP address of 4Sight to administrate. qtssPort The port of 4Sight to administrate.
Chapter 7 WebAdmin Version 3.
Chapter 8 Stream Switcher Version 3.
Chapter 8 Stream Switcher Overview The Stream Switcher is a tool for relaying one stream out of a number of sources and then permits switching to a different source. The switch to a different source is seamless for the player. EnvivioTV 4View Envivio 4Caster Multicast Multicast Multicast Envivio 4Sight Outputs ... Multicast Envivio Web Admin Sources 4Manager Control The switch between sources can be controlled by an external application such as Envivio 4Manager or by the WebAdmin.
4Sight 77 Administrator Guide Basic setup To set up the Stream Switcher using the WebAdmin, follow these steps: 1. Using a web browser, connect to the WebAdmin (see “WebAdmin” on page 71 for more details). 2. Click on the Switcher Settings menu item. You will see a list of your configured switchers. 3. Click on New Switcher to create a new switcher. The following page is displayed: 4. Fill in the different fields you need to set up your Stream Switcher and then click on the Save Changes button. 5.
Chapter 8 Stream Switcher Using a specific network interface card as output You can define the network interface card that you want to use for sending packets by specifying the Local Output Interface parameter in the Destination section. See “Using 4Sight as a relay” on page 42 for further details. Version 3.
4Sight 79 Administrator Guide Configuration example We will use the following network structure to demonstrate the configuration of the Stream Switcher. Envivio 4Caster 235.55.58.54 236.130.82.35 EnvivioTV 4View Multicast Multicast Envivio 4Sight Output 236.130.211.128 Multicast Web Admin Sources Control To switch a stream, you need to follow these steps: 1.
Chapter 8 Stream Switcher 2. Provide the information about the input. Enter the hostname or IP address, then specify the ports you want to listen to. Ports must be separated by commas or spaces. 3. You can add more sources by clicking the Add source link. 4. Then click the Save Changes button. WARNING If you change an existing active switcher, when saving the modifications, the active source will switch to the first source declared in the switcher. Version 3.
4Sight 81 Administrator Guide Accessing the stream generated by the switcher We will use the following network structure to demonstrate how to access the stream generated by the Stream Switcher. Envivio 4Caster 236.130.82.35 6850 6852 5048 5050 Multicast Envivio 4Sight 236.130.211.128 235.55.58.54 Multicast EnvivioTV 4View 6002 6004 Multicast Output Sources The first Envivio 4Caster broadcasts two streams to the IP multicast address 236.130.82.
Chapter 8 Stream Switcher Viewing the active source To view the output of the switcher: • If the broadcasters broadcast the SDP to port 9875, the switcher will automatically transfer the SDP to port 9875 of the output address. See “Installing the Envivio Linux Kernel” on page 32 for further details on using this feature. • If the broadcasters broadcast the SDP using SAP, the switcher will not be able to send the SDP to the output address.
4Sight 83 Administrator Guide Your SDP file should look like this: v=0 o=- 3557664794 484063668 IN IP4 192.168.105.42 s=ELB c=IN IP4 235.55.58.
Chapter 8 Stream Switcher Status of the configured switchers Once everything is configured, you can check that the stream is effectively relayed by going to the Relay status page. The following window should be displayed: You can switch to the other source by clicking the link "My second source". Version 3.
Chapter 9 Load Balancer Version 3.
Chapter 9 Load Balancer Overview The Load Balancer distributes traffic efficiently among streaming servers so that no individual server is overburdened. The master server redirects the player towards a randomly chosen slave server. EnvivioTV™ 4View 4Sight #1 4 RTSP connection RTSP redirect 3 4Sight #1 2 4Sight #2 Random selection 4Sight #3 1 RTSP connection 4Sight #2 4Sight 4Sight #3 1. The player connects to the server. 2.
4Sight 87 Administrator Guide Basic setup Adding a slave server To set up the load balancing using the WebAdmin, follow these steps: 1. Click the Load Balancing menu item. You will see a list of your configured servers. 2. Check the Enable Load Balancing check box to activate the load balancing mechanism on the server. 3. Click on New Slave server to add a slave server to the list. The following page is displayed: 4.
Chapter 9 Load Balancer 5. The slave server will then be listed, followed by its status (either Enabled or Disabled). 6. Click Save Changes to confirm your modifications. Deleting a slave server To remove a server from the server list, select the IP address of the server you want to delete and click the Delete Slave server. The server is removed from the list after your confirmation.
Chapter 10 Authentication and Authorization Version 3.
Chapter 10 Authentication and Authorization Overview 4Sight provides authentication and authorization services. This is configured using three types of configuration files: • Access file (for example, qtaccess) • User file (for example, qtusers) • Group file (for example, qtgroups) and the qtpasswd executable. Version 3.
4Sight 91 Administrator Guide Basic Setup If you want the end user to be prompted for a user name and password when he/she tries to stream a content from the server, follow the steps described below: 1. Create a user file and/or a group file to define the users and groups allowed on your streaming server. 2. Create passwords for the new users using the qtpasswd utility. 3. Create an access file. The content of each file and the use of the qtpasswd utility is described in the following sections.
Chapter 10 Authentication and Authorization The streamingserver.xml file also contains two parameters that are used for authentication and authorization: • default_authorization_realm The text to display by default in the password dialog boxes • authentication_scheme The default authentication scheme to be used by the server (basic, digest, or none) Version 3.
4Sight 93 Administrator Guide User, Group, and Access files By default, three files are provided as examples in the Config Directory: qtusers, qtgroups and qtaccess. These files create a user with user name admin, password admin and group admin. User file The user file contains the list of users and their encrypted passwords. The first line of this file is the realm to be used. This file should not be modified manually (unless you want to modify the realm); use the qtpasswd utility to edit it.
Chapter 10 Authentication and Authorization Access file An access file is a text file containing parameters to control access to a directory for a specific realm, a specific user or a specific group. There is one access file per protected directory. If an access file is placed in a directory, all the subdirectories are protected in the same way, unless another access file is present in the subdirectory. The following is a list of parameters accepted in the access file and their possible values.
4Sight 95 Administrator Guide Parameter name Value require user require group A space separated list of user names or group names. This parameter specifies which users and/or groups are allowed to access the media in this folder. Two specific cases can be used: • require any-user any user is allowed • require valid-user any authenticated user is allowed … Specifies access control for read and/ or write privileges.
Chapter 10 Authentication and Authorization The qtpasswd utility The qtpasswd utility lets you create a user file, and to add and delete users. To create a user, the name of the user is mandatory. The syntax is the following: qtpasswd [-option] The following are optional flags that can be used: [-F] Does not confirm when deleting users or overwriting existing files [-f] Password file to modify (defaults to the value set in streamingserver.
4Sight 97 Administrator Guide Common scenario You can have multiple access files, user files, and group files. One way to configure your server is to have one movie folder associated to each realm. For example, if you want to serve both Europe and US from your streaming server, follow the steps below: 1. Create two movie folders, one called Movie_US, and one called Movie_Europe. 2.
Chapter 10 Authentication and Authorization Restrict access to the WebAdmin Using the WebAdmin configuration file To restrict access to the WebAdmin, you can use the two keywords, allow or deny, in your streamingadminserver.conf. For example, at the end of the file, add the following: allow=192.168.105.187 127.0.0.1 deny=192.168.105.113 This allows access to the WebAdmin from local host and 192.168.105.187 and explicitly denies it from 192.168.105.113.
4Sight 99 Administrator Guide 4. Reconnect to the WebAdmin using the default user name (admin) and password (admin). Changing the WebAdmin default user name and password 5. Using a web browser, connect to the WebAdmin (see “WebAdmin” on page 71). 6. Click on the Server Configuration>General Settings menu item. 7. Click the Change Admin Username/Password... link. The following page should be displayed: Version 3.
Chapter 10 Authentication and Authorization 8. Fill the different fields, then click Change password button. You will be disconnected from the WebAdmin. 9. Reconnect to the WebAdmin using the new user name and password. Version 3.
4Sight 101 Administrator Guide Troubleshooting Access file • Parameter names and values are case sensitive. Respect the case for the following words: AuthName, AuthScheme, AuthUserFile, AuthGroupFile, require, Limit, basic, digest • Parameters in the access file take precedence over preferences in the streamingserver.xml file. Any value set for the realm or the authentication scheme in the access file will override the value set in the streamingserver.
Chapter 10 Authentication and Authorization Version 3.
Chapter 11 External authorization module Version 3.
Chapter 11 External authorization module Overview The Authorization module allows you to develop your own access control for the movies stored on the server. By adding specific information into the URL, you will be able to apply your own dedicated authorization mechanism.
4Sight 105 Administrator Guide Installing the authorization module This document explains how to install the external authorization module. 1. Stop 4Sight 2. Create a new directory called Plugins in your server directory: /usr/Envivio/4Sight/Plugins 3. Copy your authorization library into the Plugins directory. 4. Open the server configuration file, streamingserver.xml, located in: /usr/Envivio/4Sight/Config 5.
Chapter 11 External authorization module Basic example of external authorization module AuthModuleTestLib.h extern "C" { bool ESSRequestAuthorization(char* inURL, char* inIPAddress, char* inQueryString); } AuthModuleTestLib.cpp #include "AuthModuleTestLib.h" #include
Appendix A Description of the configuration file parameters Version 3.
General parameters This chapter provides an overview of the different parameters for the Streaming Server. You can modify them to fit your needs. The following are general parameters, valid across all modules of the server: Keyword Value rtsp_port Port(s) for accepting client connections NOTE: Add port 80 to this list if you are streaming across the Internet and want clients behind firewalls to be able to connect to the streaming server.
4Sight 109 Administrator Guide min_tcp_buffer_size Minimum size the send buffer can be set to. error_logging Either "true" or "false". This toggles error logging on and off. screen_logging If screen_logging is true, all error messages will be written to the terminal window. Note that in order to see these messages on screen, the server must be launched from the command-line, and must be launched in foreground mode (triggered by the addition of the -d flag).
safe_play_duration If the server discovers it is serving more than its allowed maximum bandwidth (using the average bandwidth computation) it will attempt to disconnect the most recently connected clients until the average bandwidth drops to acceptable levels. However, it will not disconnect clients if they have been connected for longer than this time, in seconds. If this value is set to 0, it will never disconnect clients.
4Sight 111 Administrator Guide real_rtsp_timeout rtsp_timeout is the time-out that gets reported to the client. This is the actual time-out value. rtsp_timeout Amount of time in seconds the server will wait before disconnecting idle RTSP clients. This timer is reset each time the server receives a new RTSP request from the client. auto_start If true the streaming server will be launched when the Web Admin starts. Thinning parameters The following preferences configure the server thinning algorithm.
More general parameters Keyword Value append_source_addr_in_transport If this is true, the server will add its source address to its transport headers. This is necessary on certain networks where the source address is not necessarily known. alt_transport_src_ipaddr The server appends its own IP address into the transport header. If you want an alternate address placed there, use this preference to specify the address.
4Sight 113 Administrator Guide Reliable UDP parameters Keyword Value max_retransmit_delay Maximum interval between when a retransmit is supposed to be sent and when it actually gets sent. Lower values means smoother flow but slower server performance. small_window_size If the client does not explicitly say what its window is, the server will use this as a default value. Specified in kilobytes.
reliable_udp_dirs If reliable UDP is enabled, specify the directories in which it is enabled. Directories should be relative to the movies folder, with a leading slash but no trailing slash. For example: /reliable_udp_dir reliable_udp_slow_start Enables or disables reliable UDP slow start. Disabling this may lead to an initial burst of packet loss due to the misestimation of the client's available bandwidth. Enabling this may lead to early thinning.
4Sight 115 Administrator Guide Specific parameters These parameters are module-specific. Reflector parameters Keyword Value enable_broadcast_push Turn on or off a broadcaster RTSP push to the server. max_broadcast_announce_duration_secs Force announced SDPs to this maximum duration in seconds. 0 = infinite duration. allow_duplicate_broadcasts Turns on or off accepting setups on an existing broadcast stream.
use_one_SSRC_per_stream Only reflect packets from a single SSRC. Setting this value to false allows all packets from any source to be passed to the clients. kill_clients_when_broadcast_stops When a broadcaster RTSP session goes down also teardown the clients watching the stream. Access log file parameters Keyword Value request_logfile_interval Time in days between rolls of the access log. A value of 0 means unlimited. request_logfile_size Maximum allowed size in bytes for the access log.
4Sight 117 Administrator Guide modAccess_groupsfilepath The default path and file name for the Access module group list. modAccess_usersfilepath The default path and file name for the Access module user list. WebAdmin parameters Keyword Value RequestTimeIntervalMilli The minimum delay (in milliseconds) between processing each admin request. LocalAccessOnly Only requests from 127.0.0.
File module parameters Keyword Value sdp_url This URL will be included in the dynamically generated SDP returned to the client. Typically, this should be set to your default web URL. admin_email This email address will be included in the dynamically generated SDP returned to the client. max_allowed_speed File module accepts the RTSP Speed header, which controls the overall play rate. This is the maximum rate it will allow. max_allowed_scale Maximum scale for fast forward and fast backward.
4Sight 119 Administrator Guide Flow control module parameters Keyword Value loss_thin_tolerance num_losses_to_thin If a client reports loss percentages greater than loss_thin_tolerance, over the course of num_losses_to_thin consecutive RTCP (status) packets, the server will drop the bitrate of stream.
Switcher parameters Keyword Value switcher_prefs_file Path to the stream switcher preferences file. time_to_wait_for_synchro After this amount of time (in ms), the switcher will try to force the switch. switch_timeout If switch did not occur by this time (in ms), it will be cancelled. Licensing module parameters Keyword Value license_file_dir Path to the license file. Load balancing module parameters Keyword Value enabled Enable/disable load balancing.
Appendix B Configuration examples Version 3.
Overview The purpose of this appendix is to show different streaming solutions based primarily on Envivio 4Caster and 4Sight. The configuration you choose will depend on whether you are streaming content to the Internet or on a LAN network (or both), the number of clients you want to reach, and your hardware configuration. The situation will be different if you want to stream MPEG-4 files to 100 clients or to 50,000 clients.
4Sight 123 Administrator Guide Configuration examples Example #1 This is a basic configuration using 4Sight as a reflector to stream (or broadcast) a live event. Figure 1. Simple reflecting 4Caster 4Sight unicast or multicast Reflector Example #2 In these configurations, a live stream (or simulated live stream) is relayed to one or more 4Sight servers, which distribute streams to the Internet.
A relay toward several 4sight servers will then be: Figure 3. Multiple relay 4Sight unicast Reflector 4Sight unicast 4Caster 4Sight Reflector unicast or multicast Playlist Broadcaster 4Sight Relay unicast Reflector unicast Version 3.
4Sight 125 Administrator Guide Example #3 This example is a more complex configuration built on top of the former configuration examples. EnvivioTV 4View 4Sight unicast ic un 4Caster ast 4Sight #2 Reflector ETVy Local Area 1 Figure 4. Relay in a complex configuration 4Sight unicast or 4Sight #1 Relay uni cast ETV1 multicast ETV2 ... 4Sight #3 Relay ETVx Local Area Net/Broadband Version 3.
Version 3.
Appendix C Streaming Server access log file Version 3.
Field Name W3C or Custom Example value c-ip IP address of client W3C 157.100.200.300 date Date of the access W3C 11/16/1998 time Time of the access (HH:MM:SS) W3C 15:30:30 c-dns Resolved dns of the client W3C fredj.ford.com cs-uri-stem Requested file W3C rtsp://saturn/mp4profile.
4Sight 129 Administrator Guide c-os os Custom Windows [Windows, Windows NT, Unix-[flavor], Mac-[flavor]] c-osversion os version Custom 4.0.0.1212 c-cpu cpu type Custom Pentium [486, Pentium, Alpha %d, Mac?, Unix?] filelength file length (seconds) Custom 60 [in seconds, no fractions] filesize file size (bytes) Custom 86000 [that is 86kbytes] avgbandwidth Custom 24300 [that is 24.
c-pkts-recovered-resent Custom 5 [this refers to packets recovered via UDP retransmission] c-buffercount Custom 1 c-totalbuffertime seconds buffered Custom 20 [in seconds] c-quality quality measurement Custom 89 [in percent] s-ip server ip W3C 155.12.1.234 [entered by the unicast server] s-dns server dns W3C foo.company.
4Sight 131 Administrator Guide Glossary ADSL Asymmetric Digital Subscriber Line. bandwidth Bandwidth has many meanings, depending on context. It started as a radio term and has been expanded to include other kinds of communications. It is the numerical difference between the highest and lowest frequencies of a radio band or channel. Bandwidth means the same thing in audio, although in most applications, the lowest frequency is sufficiently low enough to be considered equal to zero.
Glossary codec The software that encodes and decodes a file. The word is a shortened form of coder-decoder or compression-decompression.This product has an audio codec and a video codec. FTP File Transfer Protocol hinted movies Movies that can be streamed for broadcast over the Internet. A hint track has information about the media file so that it can be streamed properly. HTTP Hypertext Transfer Protocol I-frames An MPEG-4 term for key frames.
4Sight 133 Administrator Guide ISO International Standards Organization. kbps Kilobits per second. key frame A frame that fully refreshes its contents and that can be used as a reference point for other frames in the sequence. In MPEG terms, this is an I-frame. M4E Envivio extension for SDP files. Allows to open SDP files using directly Envivio plug-in. MIB Management Information Base.
Glossary broadcasters the tools to deliver multimedia presentations over the Web. Real-time Rapid transmission and processing of event-oriented data and transactions as they occur instead of being stored and retransmitted or processed as batches. realm Authentication context. RTCP Real Time Control Protocol. RTP Real-time Transport Protocol. RTSP Real Time Streaming Protocol. SAP Session Announcement Protocol. SAP is a protocol to announce multicast broadcast sessions.
4Sight 135 Administrator Guide Smoother A process that modifies the send times of media packets to fit the transmission channel and makes the transmission information available to other processes, such as the user interface. SNMP Simple Network Management Protocol. SSRC Synchronization SouRCe. stream The encoded media or scene description data in an MPEG-4 file. streaming Sending media streams from a streaming server to a player as a steady, continuous stream.
Glossary Unicast Unicast is communication between a single sender and a single receiver over a network. URL Uniform Resource Locator. A method of naming documents or places on the Internet. Version 3.
Index Numerics 4Caster 20, 23, 40, 81, 82, 122 4Coder 16 4Manager 76 A access file 94, 101 access log 116 file 116 Access module access file 116 group list 117 user list 117 add destination 45, 80 group file 93 movie folder 38 user 96 admin module 117 admin request 117 administration port 29 announce 63 announced SDP maximum duration 115 asserts 109 authentication 12, 90 realm 101 scheme 101, 112 authorization 12, 90 B bandwidth 22, 40 client 114 server 110 statistics 110 stream 111 broadcast 23 pl
Index error logging 109 error messages debugging 114 error resilience 18 extension CONFIG 59 LIC 28, 30 M4E 133 PLAYLIST 59 H hint track 23 hinted file 17, 70 file hinted 23 host program 128 HTTP 19 GET request 108 return code 128 tunneling 16 F fast backward scale 118 fast forward scale 118 fatal errors 109 file access 94, 101 access log 116 hinted 17, 70 LIC 30 licensing 27, 28, 30 log 17, 31, 58, 67 M4E 23, 40, 52, 133 PID 67, 109 registration 27, 28 SDP 70 user 90, 91, 93, 94, 96, 97 firewall
Administrator Guide live stream 123 live track 20 log asserts 109 client DNS 128 client IP address 128 debug messages 109 fatal errors 109 host program 128 HTTP return code 128 player ID 128 player language 128 player version 128 user agent 128 warnings 109 log file 17, 31, 58, 67, 109 login screen 98 M M4E file 23, 40, 52, 133 memory 40 modify group file 93 monitoring offline 17 online 17 movie directory 29 movie folder 34, 38, 61, 62, 63, 97 add 38 change 38 permission 63 multicast 19, 20, 22, 44, 79 ad
Index for client connection 108 Q qtaccess 90, 91, 97 qtgroups 90, 93 qtpasswd 31, 63, 90, 91, 93, 96, 101 qtusers 90, 93 QuickTime 24 R realm 73, 93, 94, 96, 97, 101, 108 rebuffering management policy 18 receiver 19, 20, 21 red stop sign 58 reflecting 12, 16, 40, 41, 115, 123 reflector 22, 23, 40, 61, 64, 123 registration file 27, 28 registration form 27 relay 42, 43, 44, 45, 46, 77, 123 announced stream 46 configuration 47 configuration file 49 list 44, 77 server 23, 42 set up 43 status 49 UDP str
Administrator Guide specific network interface card 48, 78 SSRC 116 static port 115 statistics bandwidth 110 stop service 51 stream 19 bandwidth 111 switcher 12, 75, 76, 79, 81, 120 streaming protocol 19 streaming session 20 system requirements 26 T TCP 19, 68 send buffer 108 TCP/IP protocol 132 thinning algorithm 111 traffic analyzer 49 transport header 112 TTL 45, 67 141 V video on demand 16 W warnings 109 web page embed streamable content 52 WebAdmin 16, 38, 43, 55, 56, 59, 62, 63, 69, 76, 77, 87,
Index Version 3.