HELIX BROADCASTER QUICK START GUIDE Helix Broadcaster with Helix Universal Server Version 15.1 Firmware Version 15.1.0.407.4.641041.642044 Revision Date: 18 April 2014
RealNetworks, Inc. PO Box 91123 Seattle, WA 98111-9223 U.S.A. http://www.real.com http://www.realnetworks.com 2014 RealNetworks, Inc. All rights reserved. Information in this document is subject to change without notice. No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of RealNetworks, Inc. Printed in the United States of America. Helix, the Helix Logo, Real, the Real "bubble" (logo), RealJukebox, RealOne, Real-rTV, RealArcade, RealAudio, RealDownload, RealNetworks, RealPix, RealPlayer, RealPresenter, RealProducer, RealProducer Plus, RealPoducer Pro, RealProxy, RealPublisher, RealSites, RealSystem, RealText, RealVideo, Rhapsody, ra/ve, SureStream, The Future is Real, TurboPlay, and Xing are trademarks or registered trademarks of RealNetworks, Inc. Other product and corporate names may be trademarks or registered trademarks of their respective companies. Warranty All warranties are as documented in your Helix Broadcaster EULA.
CONTENTS INTRODUCTION...1 How this Guide Is Organized...1 Typographical Conventions...2 CHAPTER 1: HELIX BROADCASTER...3 Helix Broadcaster...3 Network Server Input...3 SDI or HDMI Input...3 Helix Server...3 Media Client Delivery...4 Stream Repacketization...4 Live Archiving and On-demand Distribution...4 Stream Splitting and Uploading...5 Content Security...5 CHAPTER 2: SYSTEM SETUP...7 Logging into Helix Broadcaster...7 Logging in with a Browser...7 Using the Interface...7 Setting Network Addresses...8 Network Access...8 WAN and LAN Addresses...9 Configuring Web Servers...10 Internal Web Server...11 API Web Server...12 Public Web Server...13 SSL Certificates...15 Setting the Clock...17 Configuring FTP Access...17 CHAPTER 3: INPUTS...19 Receiving a Network Stream...19 Setting Up Server Input Properties...19 Start Mode...20 NET Name...20 Input Protocol...20 Input Type (RTP and UDP Streams)...21 Input Interface...21 Input Port (RTP and UDP)...22 Remote URI (HTTP, RTSP, and RTMP)...22 Input Buffer Size...22 Encoding with an SDI/HDMI Device...22 Setting Up the SDI/HDMI Input...23 Start Mode...23 SDI Name...24 iii
Contents Aspect Ratio... 24 Video Mode... 24 Audio Configuration... 24 Audio Rate... 24 Audio Channels... 25 HD-SDI Input Bits... 25 Input Buffer Size... 25 Using a File Input... 25 Setting Up File Input Properties... 25 Start Mode... 26 File Description... 27 Filename/Playlist... 27 Playlist Format... 27 Looped Playback... 28 CHAPTER 4: OUTPUTS... 29 Creating a Profile (optional)... 29 Assigning Profiles to Outputs... 29 Unlinking a Profile... 30 Setting up a New Output Stream... 30 Defining the Output Stream... 30 Stream Name... 31 Output Format... 31 Demux Mode... 32 Programs and Stream IDs... 33 Multibitrate Mode... 34 Helix Stream Setup... 35 Destination IP... 35 Destination Port... 36 Output PID Control... 36 Output TTL... 37 Pushing an RTMP Stream... 38 Akamai Portal Setup... 38 RTMP Public Stream Name... 38 Primary and Backup Target URLs... 39 User Name and Password... 39 Flash Version Identifier... 40 Akamai Advanced Video Options... 40 Saving Output to a File... 40 File Name... 41 Time Stamp... 41 Selecting a Storage Group... 42 Encoding Video... 42 Video Format... 42 Video Bit Rate... 43 Video Transcoding Method... 43 Video Output Format... 43 Video Encoding Quality... 44 Output Aspect Ratio... 44 Framerate Conversion... 44 Deinterlacing... 45 Logo/Watermark Insertion... 46 Encoding Audio... 46 iv
Contents Audio Format... 47 Audio Bitrate... 47 Audio Rate... 48 Audio Channels... 48 Audio Gain... 48 Audio Profile... 48 Using the Service Control Palette... 49 CHAPTER 5: HELIX SERVER... 50 Controlling the Helix Server Service... 50 Using the Service Control Palette... 51 Restarting Helix Server... 51 Viewing the Helix Server Statistics Log... 51 Helix Administrator... 52 Helix Administrator Access... 52 Helix Control Palette... 53 Accessing Helix Server Online Help... 53 Helix Server Setup Pages... 54 Helix Server File System... 58 Configuration File... 59 Certificate Files... 59 CHAPTER 6: STREAM DELIVERY... 61 Bandwidth Constraints... 61 URL Components... 61 Protocol... 61 Address... 61 Ports... 62 Client Mount Points... 62 Broadcast Mount Points... 63 Stream Name... 63 Direct HLS and DASH Requests... 63 Receiving an Encoder Stream... 64 Monitoring Streams... 66 Delivering Content to HLS and DASH Clients... 67 Enabling HLS or DASH Segmentation... 67 Tips for Streaming to HLS and DASH Clients... 69 Streaming to Flash Players... 70 Multi-Rate Content for Flash... 70 Sample Flash Player... 70 Streaming to RTSP Clients... 71 APPENDIX A: CONSOLE SETUP... 72 Connecting to the Hardware... 72 Using Secure Shell... 72 Windows PuTTY Client... 72 Linux SSH... 73 Console Menu... 73 Network Settings... 74 Showing IP Addresses... 74 Changing IP Addresses... 74 Editing Network Settings... 75 v
Contents APPENDIX B: ENCODING TIPS... 76 Low-Latency Encoding... 76 Buffer Sizes for Low Latency... 76 Video Codec Settings for Low Latency... 76 Low-Latency Delivery Characteristics... 76 Rate Shifting Characteristics... 77 Bandwidths for Rate Shifting... 77 Video Stream Characteristics for Rate Shifting... 77 Audio Stream Characteristics for Rate Shifting... 77 vi
INTRODUCTION Welcome to Helix Broadcaster. This guide explains how to install and run Helix Broadcaster with the embedded Helix Server. It shows you how to configure encoding inputs and write URLs that format the encoded stream for popular media clients. How this Guide Is Organized This guide contains the following chapters and appendixes. Chapter 1: Helix Broadcaster This chapter introduces you to Helix Broadcaster features. Chapter 2: System Setup You set up Helix Broadcaster by assigning it an IP address and creating administrator passwords as described in this chapter. Chapter 3: Inputs This chapter walks you through the process of receiving input from a device such as a camera or another server and Chapter 4: Outputs Using any input, you can create a single-rate or multi-rate output that you pass to Helix Server or another server. Chapter 5: Helix Server Helix Server can deliver encoded streams to multiple types of clients. This chapter explains how to set up Helix Server for use. Chapter 6: Stream Delivery Using the embedded Helix Server software, you can deliver a live stream to popular types of media clients. Appendix A: Console Setup This appendix explains how to use the console menu to set up the Helix Broadcaster IP addresses along with other network settings. Appendix B: Encoding Tips This appendix provides details about various encoding options. This information will help you to create multi-rate and low-latency streams. 1
Introduction Typographical Conventions The following table explains the typographic conventions used in this manual. Convention syntax variables Notational Conventions Meaning This font is used for syntax of configuration files, URLs, or command-line instructions. Italic text represents variables. Substitute values appropriate for your system. emphasis Bold text is used for emphasis.... Ellipses indicate nonessential information omitted from examples. [ ] Square brackets indicate optional material. If you choose to use the material within the brackets, don t type the brackets themselves. An exception to this is in the basic access log, where statistics generated by the StatsMask variable are enclosed in regular brackets. 2
Chapter 1: HELIX BROADCASTER CHAPTER 1 Helix Broadcaster combines a powerful media encoder with Helix Server to deliver live H.264/AAC streams to popular clients like iphones and Flash Player. This chapter covers the major features of the Helix Broadcaster encoder and its integrated Helix Server. For More Information: For additional background on Helix Broadcaster, refer to http://www.realnetworks.com/helix/helix-broadcaster/. Helix Broadcaster Network Server Input SDI or HDMI Input The Helix Broadcaster encoder can accept direct input from an SDI or HDMI camera or microphone, encoding the input with full control over frame sizes, frame rates, sampling rates, and so on. Helix Broadcaster can also accept input from a variety of network servers, transcoding the input to meet precise output specifications. Helix Broadcaster can accept content from a local network or the Internet that is delivered over different transports and control protocols, including UDP, RTP, RTSP, and RTMP. For More Information: See Receiving a Network Stream on page 19. Depending on the internal capture card, Helix Broadcaster is capable of accepting output from most cameras. The input device can deliver an uncompressed audio/video stream in NTSC, PAL, or HD format. It can also accept input that uses any of the following types of compression. video MPEG-1, MPEG-2, MPEG-4, H.264 audio MPEG-1, MPEG-2, MPEG-3, AC3, MPEG-4A (H.264 audio), Ogg-Vorbis For More Information: See Encoding with an SDI/HDMI Device on page 22. Helix Server Helix Server can deliver live streams encoded by Helix Broadcaster to popular media clients and other network servers or content distribution networks. Chapter 5 covers Helix Server setup while Chapter 6 explains the basics of how Helix Server unicasts encoded streams to different types of media players. Helix Server includes comprehensive online help (see page 53) for all of its features. 3
CHAPTER 1: Helix Broadcaster Media Client Delivery Stream Repacketization Helix Server can deliver H.264/AAC content to a wide range of popular media players: HLS clients such as the Apple iphone and ipad To support, HTTP Live Streaming, Helix Server writes the H.264/AAC broadcast stream to a series of MPEG-2 transport files (.ts) that it delivers to HLS clients using HTTP. HLS clients request these transport files using a text-based playlist (.m3u8) that Helix Server generates. Segment encryption and multi-rate streams are supported. For More Information: See Delivering Content to HLS and DASH Clients on page 67 DASH media clients Similar to HLS clients, DASH clients request transport segments containing H.264/AAC content using HTTP. For these client types, Helix Server generates an XML-formatted playlist (.mpd). Both the MP4 (.m4s) and the MPEG-2 (.ts) transport stream formats are supported. For More Information: See Delivering Content to HLS and DASH Clients on page 67 Flash clients To support embedded Flash clients, Helix Server delivers the H.264/AAC stream using Real-Time Messaging Protocol (RTMP), the same protocol used by Flash Media Server. For More Information: See Streaming to Flash Players on page 70 RTSP clients Real-Time Streaming Protocol is used by RealPlayer and mobile 3GPP clients to receive H.264/AAC content. Multi-rate streams and rate shifting are supported. For More Information: See Streaming to RTSP Clients on page 71 If H.264/AAC input is generated on a separate server or encoder and does not need to be transcoded to change the bit rate, frame rate, sampling rate, or so on, the input can be ingested directly by Helix Server, bypassing the Helix Broadcaster encoder. Helix Server can then repacketize the content as necessary for delivery to media clients. Streams from Flash Media encoder, MPEG-2 encoders, MPEG-4 encoders, and QuickTime encoders are accepted. For More Information: After you set up Helix Server as described in Chapter 5, refer to the online help section Helix Administrator > Broadcasting. Live Archiving and On-demand Distribution In addition to delivering live broadcast streams, Helix Server can stream on-demand content to all supported media clients. Commonly, H.264/AAC content is written to an MPEG-4 file. For live H.264/AAC broadcasts generated by Helix Broadcaster or another encoder, Helix Server can archive the streams as MPEG-4 files for on-demand delivery. Using the content caching 4
CHAPTER 1: Helix Broadcaster feature, you can automatically propagate on-demand clips among Helix Servers in your network. For More Information: After you set up Helix Server as described in Chapter 5, refer to the online help. For more about live stream archiving, see the section Helix Administrator > Broadcasting > Broadcast Archiving. Stream Splitting and Uploading Helix Server provides robust methods for propagating a live stream through a network and delivering it to users from edge servers: Helix Server to Helix Server Helix Servercan split a live stream to other Helix Servers, either other Helix Broadcaster encoders or standard Helix Servers running on Windows, Linux, or Solaris. This is often done on a multicast-enabled network to reduce bandwidth consumption. Helix Server to Flash Media Server Using RTMP, Helix Server can deliver a live H.264/AAC stream to Flash Media Server for delivery to Flash clients. Helix Server to CDNs Helix Server supports the upload of live RTMP streams and HLS segments to major content distribution networks, including Akamai. For More Information: After you set up Helix Server as described in Chapter 5, refer to the online help section Helix Administrator > Broadcast Distribution. Content Security To provide media security, Helix Server provides encryption features and support for add-on security products. HLS Segment Encryption Helix Server can provide AES-128 encryption of HLS transport segments. It can also integrate with Verimatrix servers to secure the HLS content. For More Information: After you set up Helix Server as described in Chapter 5, refer to the online help topic Media Types > HLS Clients > HLS Segment Encryption. Helix Session Manager Helix Session Manager allows Helix Server to integrate with any external, third-party authorization server to verify access attempts. Helix Server uses HTTP posts to notify the authorization server of the client IP address and requested URL. The authorization server responds with instructions to allow the request, deny the request, or redirect the request to a different clip on Helix Server or a different server. 5
CHAPTER 1: Helix Broadcaster Helix Security Manager For More Information: For information about configuring the Helix Session Manager plug-in on Helix Server, refer to the Helix Server online help topic Session Manager. Helix Security Manager generates tamper-proof, time-limited URLs to live or on-demand content. It runs on a Java application server such as Apache Tomcat and works in conjunction with the security manager plug-in on Helix Server. Helix Security Manager does not require integration with a third-party web server, although an external server can be used to reauthorize URL requests that are rejected. For More Information: For information about setting up and using Helix Security Manager, refer to the PDF document Helix Security Manager Deployment Guide. 6
Chapter 2: SYSTEM SETUP CHAPTER 2 This chapter describes the basic setup procedure for Helix Broadcaster. It explains how to configure IP addresses, enable web servers, and change the default administration password. Logging into Helix Broadcaster The back of the Helix Broadcaster machine lists the default IP address for the WAN port. You can log in and configure network settings using either of these methods: Logging in with a Browser Using the Interface If you can place the machine on your network without having to change the default IP address at first, log in with a browser as described below. You can then make any network address changes. If you must configure the WAN IP address or enable DHCP first before adding the Helix Broadcaster machine to your network, use the console menu as explained in Appendix A beginning on page 72. Once the machine is connected to your network and powered on, you can log into the interface from your network using the secure HTTP (HTTPS) protocol to access the the default address listed on the back of the machine (or the new address if one was set through the console menu). For example: https://98.111.12.114 You will be prompted to enter the default administrator name and password: user name admin password admin Tip: Helix Broadcaster uses self-signed certificates unless you obtain officially signed certificates (see page 15). In most browsers, you can add a security exception for the Helix Broadcaster address. For More Information: The section Internal Web Server on page 11 explains how to change the log-in password. The Helix Broadcaster configuration utility organizes functional areas using tabs that appear at the top of the page. 7
CHAPTER 2: System Setup Tabbed Functional Areas Click the appropriate tab to manage the various parts of Helix Broadcaster: System Status Display information about CPU usage, network bandwidth, and stream encoding. Encoder Setup Configure inputs and outputs. Chapter 3 and Chapter 4 cover these topics. Delivery Setup Deliver content to media players using Helix Server. See Chapter 5 and Chapter 6. Apps Setup Configure services such as HTTP, FTP, and SNMP. System Setup Set up network addresses, turn services on and off, and update firmware. Setting Network Addresses Network Access Helix Broadcaster includes one wide area network (WAN) Ethernet port and one or more local area network (LAN) ports. Use the WAN port as the primary connection. You can use LAN ports as additional Ethernet connections. In the Helix Broadcaster interface, features that require an IP address allow you to select the WAN or a LAN connection. Tip: The WAN port is meant to be accessible from outside of your organization s firewall. The LAN ports are typically accessible from inside of the firewall. However, any of the Ethernet connections can be accessed from inside or outside the firewall depending on your network setup and policies. Note: In some cases you may need to reboot Helix Broadcaster to put networking changes into effect. To do this, click the System Setup tab and choose the Reset Unit menu option. On the page, click the Reboot Now button. Once you have logged into Helix Broadcaster, you can set the basic network characteristics such as the Helix Broadcaster domain name and DNS servers. For details about which values to set, consult your network administrator. To set the primary network address: 1. Click the System Setup tab. 2. Click the Network Setup category in the menu. 3. Choose Network Setup menu entry. 8
CHAPTER 2: System Setup Network Setup Page 4. For Hostname, enter a Helix Broadcaster host name for the network. Check the box Show in Header to display this name in the upper-right corner of the Helix Broadcaster top banner. 5. If the host name is registered with a local or public domain server, the host name functions as the domain name. For Domain, use local if the domain name is registered on your local network. Otherwise, enter the Internet public domain such as net or com. 6. Specify the IP address of the network gateway in the Default Gateway field. 7. Enter the IP addresses for the primary and secondary DNS servers in the DNS Server fields. 8. Check any of the boxes for Enable IP Forward, Enable Natting, Enable Port Mapping, or Enable Firewall to enable these features, which you can configure on the pages under the System Setup > Network Setup menu. 9. Click Update. WAN and LAN Addresses For the WAN and each LAN port you use, you can specify the IP address or use DHCP to assign the address automatically. To set a WAN or LAN address: 1. Click the System Setup tab. 2. Click the Network Setup category in the menu. 3. Choose the LAN: wan entry or one of the LAN:lan#n ports, where #n is the number that corresponds to the LAN port you want to configure. 9
CHAPTER 2: System Setup WAN or LAN Setup Page 4. For Interface Mode, select Separate to enable the address. Choose Disabled to remove this address from service. 5. The LAN Name identifies this connection in the Helix Broadcaster interface. It is not a domain name that can be used to access Helix Broadcaster. 6. In the LAN DHCP drop-down, select Disabled to set the IP address manually. If your network has a DHCP server and you want to assign the IP address or an IP address along with a domain name automatically, choose the appropriate entry from the LAN DHCP drop-down. 7. If you are assigning the IP address manually, set a static IP address by entering the IP version 4 network address in the LAN IP Address fields. 8. Set the value for LAN Net Mask as specified by your network administrator. 9. The LAN MAC Address value is used if the DHCP server uses static IP address allocation in which IP addresses are assigned based on the interface s hardware MAC address. You can find the MAC addresses under the Ethernet Names menu entry. 10. Check the box for Enable DHCP Server to allow IP address allocation for this port. 11. Set the DNS server address range as specified by your network administrator. 12. For DHCP Server Lease Time, choose a time value in the drop-down. Helix Broadcaster must renew its lease on this IP address within the specified time or the DHCP server may allocate the address to another device on the network. 13. Click Update. Configuring Web Servers Helix Broadcaster provides separate web server utilities for configuring the system, running remote APIs, and serving content publicly. The Helix Server media server also provides web 10
CHAPTER 2: System Setup server functionality for delivering content to HLS and DASH media players. The following table summarizes the default HTTP and HTTPS ports used by these processes. Default HTTP Port Values for Web Servers Web Server HTTP Port HTTPS Port Notes Internal Web Server 81 443 (standard) Required to configure Helix Broadcaster. Unsecured HTTP access is not enabled by default. API Web Server 25599 25599 Optional. The selected port is used either for HTTP or HTTPS, but not for both. Public Web Server 80 (standard) 4443 Optional. Helix Server 88 444 Required to serve media from Helix Server. See Ports on page 62 for details. Internal Web Server The Helix Broadcaster internal web server allows you to log into the Helix Broadcaster interface. Here you can change the password for the admin log-in and, optionally, enable unsecured HTTP access to the interface. To set up internal Helix Broadcaster web server: 1. Click the System Setup tab. 2. Click the Web Server Setup category in the menu. 3. Choose Config Web Server. Internal Web Server Page 4. Under SSL Web Server, you can choose the port used for secure HTTP access. The default is port 443, which is the standard port for HTTPS. If you have an officially signed certificate (see page 15), select that certificate in the drop-down. Otherwise, choose Self Signed. Note: As long as port 443 is used for the SSL port, the port number does not need to be included in the URL when you access Helix Broadcaster using secure HTTP (https://). If you select another port, you must include the port number in the URL. Tip: If you use the Helix Broadcaster self-signed certificates, browsers warn that the Helix Broadcaster web server cannot be authenticated. The browser can store an exception so that the warning does not appear on subsequent accesses. 11
CHAPTER 2: System Setup API Web Server 5. Using standard HTTP access for the Helix Broadcaster interface is not recommended. However, under Web Server, you can enable HTTP access and set the port used. The default is port 81. You can choose a different, unused port, but to avoid conflicts with the public web server, do not choose port 80. You must include the port number in HTTP URLs. 6. For Web Server Password and Confirm Web Server Password, enter a case-sensitive password used to access the Helix Broadcaster interface. 7. The optional Read Only User Password (monitor) field sets a password for a read-only account named monitor that can log into Helix Broadcaster to view the configuration but not make any changes. 8. Click Update. 9. Click Restart on the Service Control palette. Tip: The internal web server process can also be started, stopped, and restarted from the services control page. On the System Setup tab, click Services Setup and choose Services Control. The item name is httpd. Helix Broadcaster includes application programming interfaces (APIs) that can configure settings remotely. The APIs pass information using the API web server. If you are not using the APIs, you can leave the API web server disabled. For More Information: The Helix Broadcaster APIs are not described in this document. For more information, refer to your RealNetworks representative. To set up the API web server: 1. Click the System Setup tab. 2. Click the Web Server Setup category in the menu. 3. Choose API Web Server. API Web Server Page 4. Check the box for Enable API Web Server to allow Helix Broadcaster to respond to remote API requests. 12
CHAPTER 2: System Setup Public Web Server 5. In the Web Server Type drop-down, you can choose HTTP or HTTPS connections. Secure HTTP is recommended unless you are issuing the APIs from a computer on your network and you bind the API web server to a local address that is protected from outside access by a firewall. 6. For Bind IP, you can select the IP address used for the API web server. Select All to enable Helix Broadcaster to take API requests on all of its interfaces. 7. For Web Server Port, you can choose the port used for HTTP access. Do not use any other HTTP port such as 80 or 443. The default is 25599. The port number must be included in HTTP requests to the API web server. 8. If you have an officially signed certificate (see page 15), select the certificate in the SSL Certificate drop-down. Otherwise, choose Self Signed. 9. The Enable User Security drop-down allows you to enforce the use of a password in API calls. RealNetworks recommends setting this to Yes and defining the password in the next field. 10. For API User Password, enter a case-sensitive password used to authenticate API calls. 11. The optional Monitor User Password (monitoruser) field sets a password for a read-only account named monitoruser that can use the APIs to view the configuration information but not make any changes. 12. Click Update. 13. Click Restart on the Service Control palette. Tip: The API web server process can also be started, stopped, and restarted from the services control page. On the System Setup tab, click Services Setup and choose Services Control. The item name is httpd_api. The public web server allows Helix Broadcaster to deliver content over HTTP. This includes serving HTTP-based media player requests directly from the encoder rather than going through Helix Server. Enabling the public web server is optional based on your needs. If you intend to serve all media requests using Helix Server (see Chapter 6) and do not need to host any Web pages on Helix Broadcaster, you can disable this server. Note: These web server settings do not affect HTTP-based media player requests made to Helix Server, which are described in Chapter 6. To set up the public web server: 1. Click the System Setup tab. 2. Click the Web Server Setup category in the menu. 3. Choose Public Web Server. 13
CHAPTER 2: System Setup Public Web Server Page 4. Check the box for Enable Web Server to allow Helix Broadcaster to respond to external HTTP requests. 5. For Bind IP, you can select the IP address used for the public web server. Select All to enable Helix Broadcaster to take public requests on all of its interfaces. You can also select the WAN port or one of the LAN ports. 6. For Root Path, choose the top level of the Helix Broadcaster file system where public Web files are kept. Request URLs resolve to this directory. Public files may be placed in any subdirectory you create under the root path if you include the appropriate subdirectory path in the URL: / FTP root directory. www www subdirectory of the FTP root directory (recommended). For More Information: For details about setting up FTP, see Configuring FTP Access on page 17. 7. For Web Server Port, choose the port used for HTTP access. This is typically the default port of 80. If you select another port, all HTTP URLs must include the port number. 8. For enable secure HTTP requests, do the following for SSL Server: a. Choose the port to use for secure HTTP requests. Do not use port 443, the standard HTTPS port, if that port is being used by the internal web server. The port number you select must be included in the URL. b. If you have an officially signed certificate (see page 15), select that set in the Certificate drop-down. Otherwise, choose Self Signed. Note: Some media players will not allow an HTTPS connection to a server that uses self-signed certificates. c. Select Yes in the Enabled drop-down. 14
CHAPTER 2: System Setup 9. Check the box for Enable Directory Listing to allow Helix Broadcaster to return a list of a directory s contents when the request URL specifies a directory level. 10. The Worker Processes field determines how may processes the public web server process may use to handle requests. You may want to set a higher number than the default of 10 if the web server fulfills many concurrent requests. 11. The Worker Connections value sets the total number of concurrent requests that can be fulfilled. You can set a higher number if you increased the number of worker processes. 12. The Logging drop-down sets the type of events that are recorded to the log. The default is not to log any events, but you can choose a different logging level: None Errors Only All Debug Log no events. This conserves system resources for encoding and delivery tasks. Log only error events. Log error and access events, such as client media requests. Log debugging information. RealNetworks recommends that you use this setting only under instruction from a RealNetworks representative. Tip: Display the log by clicking View Log on the Service Control palette while viewing the public web server setup page. 13. Check the box for Allow Crossdomain Media Players to generate an XML file at the root level of the public web server. The allows certain types of media players to make media requests from Helix Broadcaster IP addresses other than the address that the public server binds to (see Step 5 on page 14). 14. The Redirect Root drop-down allows you to redirect URL requests that are directed toward the public web server: Disabled To https on Config Web Server To https on Public Web Server Do not redirect requests. Serve requested content. Redirect requests to the HTTPS port (default 443) on the internal web server (see page 11). Redirect requests to the HTTPS port (default 4443) on the public web server. Ensure that SSL is enabled as explained in Step 8 on page 14. SSL Certificates 15. Click Update. 16. Click Restart on the Service Control palette. Tip: The public web server process can also be started, stopped, and restarted from the services control page. On the System Setup tab, click Services Setup and choose Services Control. The item name is httpd_public. Helix Broadcaster can maintain up to three sets of security certificates in the ASCII-based PEM format. Depending on your Helix Broadcaster IP configuration, you may be able to use a single set of certificates for all web servers. Or you may need separate certificates for each of the web servers. Refer to your signing authority for more information. 15
CHAPTER 2: System Setup Tip: You can learn more about the signing process at the Web site of a signing authority such as http://www.verisign.com/. RealNetworks does not endorse the use of any specific signing authority. For More Information: For delivering content to media clients over secure HTTP, the Helix Server component of Helix Broadcaster uses a different set of certificates. For details, refer to Certificate Files on page 59. To add officially signed certificates: 1. Click the System Setup tab. 2. Click the Web Server Setup category in the menu. 3. Choose SSL Certificates. SSL Certificates Page 4. For Certificate #1 (PEM), copy and paste the ASCII contents of the certificate.pem file. 5. For Key #1 (PEM), copy and paste the ASCII contents of the key.pem file. 6. If you also received a certificate chain verification, copy and paste that file s ASCII contents in the CA Chain #1 (PEM) field. 7. If you have more certificates, repeat the preceding steps for the #2 and #3 fields. 8. Scroll to the bottom of the page and click Update. 9. Update your web server configurations as described in the preceding sections so that each server uses the appropriate certificate set. 16
CHAPTER 2: System Setup Setting the Clock You cannot access the system clock on the Helix Broadcaster machine directly. To set the time, synchronize Helix Broadcaster using Simple Network Time Protocol as described in the following procedure. To enable Simple Network Time Protocol: 1. Click the Apps Setup tab. 2. Click the SNTP Setup category in the menu. SNTP Setup Page 3. Check the box for Enable SNTP Service to enable time synchronization. 4. For SNTP Host, enter the URL that Helix Broadcaster contacts to synchronize its clock. The default value us.pool.ntp.org accesses a standard pool of time servers. Use this URL unless you have a specific time server you want to use. For More Information: Refer to http://en.wikipedia.org/wiki/ntp_pool. 5. For Time Zone, choose the time zone to use for the Helix Broadcaster clock. 6. For Relay Bind Interface, select the Helix Broadcaster interface that receives time information from the SNTP servers. Your firewall must be configured to allow incoming and outgoing UDP and TCP transmissions on port 123 of this address. 7. Check the box for Relay also on port 37 to add support for the older Time Protocol, which is generally not required. Using Time Protocol requires that your firewall be configured to allow incoming and outgoing UDP and TCP transmissions on port 37 of the bind address. 8. Click Update. Configuring FTP Access Configuring Helix Broadcaster for FTP access allows you to access the Helix Server file system from a separate machine using a command line or a graphical tool such as WinSCP (http://winscp.net). To enable FTP access: 1. Click the Apps Setup tab. 2. Click the FTP Access category in the menu. 17
CHAPTER 2: System Setup FTP Setup Page 3. Check the Enable FTP Server option. 4. For FTP Username and FTP Password, enter the user name and password required to authenticate FTP access. This can be the same user name and password used to access Helix Broadcaster. For better security, choose a different user name and password. 5. In the FTP Bind IP, choose the Ethernet address (WAN or LAN) that allows FTP access. 6. The standard FTP port value is 21. If you choose a different port, FTP clients must specify the chosen port when logging onto Helix Broadcaster. 7. Click Update. 8. Click the System Setup tab. 9. Under Services Setup, choose Service Control. 10. Scroll down to the ftpd service listing. FTP Service Startup 11. Click Start. 12. Helix Broadcaster will now accept validated FTP log-ins on the designated address and FTP port. 18
Chapter 3: INPUTS CHAPTER 3 This chapter describes how acquire input from a camera or microphone connected to the Helix Broadcaster hardware, from another network source over an ethernet connection, or from a file on a file system accessible to Helix Broadcaster. Receiving a Network Stream The following sections explain how to receive input from your local network or from the Internet. Typical sources are other streaming servers, an MPEG-TS encoder, or a satellite link. Once you have set up Helix Broadcaster to receive the input, define the output as described in Chapter 4. Setting Up Server Input Properties Note: To encode from a camera or microphone connected to Helix Broadcaster, refer to Encoding with an SDI/HDMI Device on page 22. Helix Broadcaster can encode multiple inputs simultaneously. You define each input stream in a NET Setup category (such as NET #1 Setup) under the Encoder Setup tab. Under a NET Setup category, click Input Setup to define the stream characteristics. Sample Network Input Warning! When you have finished defining the input, click the Update button to save your settings. If you navigate away from the page before updating the information, Helix Broadcaster discards the page data. 19
CHAPTER 3: Inputs Start Mode The Start Mode option determines when the encoding process begins and ends: Manual If you select Manual, encoding begins when you start the process as described in Using the Service Control Palette on page 49. Optionally, you can specify when the process ends by entering a number of seconds in Execution Time field. An entry of 3600, for example, stops the encoding process one hour after it starts. Always On With the Always On setting, the encoding process begins when you define the output and start the stream manually. After that, it restarts automatically if it is stopped manually or if Helix Broadcaster is rebooted. Tip: To shut down an always-on broadcast, change the start mode to Manual, click Update, and shut down the process using the control palette (see page 49). Scheduled If you choose Scheduled, you can enter up to three repeating start and stop times for the encoding. Specify the time in the format hh:mm:ss. The following illustration shows an encoding process set to run from 2:30 to 3:30 p.m on weekdays and from 10 to 11 a.m. on weekends: Loop Using the Loop setting, you can restart the input at regular intervals. After you select this option, set the number of seconds between each restart in the Execution Time field. For example, a value of 43200 restarts the input every 12 hours. NET Name For Net Name, define a name that identifies the input. This name is for reference only in the Helix Broadcaster interface. It does not affect the output stream name. Input Protocol The Input Protocol drop-down defines the type of input stream or file that is acquired. The UDP and RTP methods are push methods in which the remote server delivers the stream to the designated Helix Broadcaster IP address and port. The HTTP, RTSP, and RTMP methods are 20
CHAPTER 3: Inputs pull methods in which Helix Broadcaster requests the stream from the remote server using the designated URI. Protocol udp rtp rtp with parity FEC http rtsp/udp rtsp/tcp rtsp/http rtmp mms Input Protocols Purpose User Datagram Protocol. This option is for a UDP stream that does not use a control protocol such as RTSP. Use it for input from an MPEG-2 TS encoder or a satellite link. Real-Time Transport Protocol. Real-Time Transport Protocol with forward error correction as defined in IETF RFC 6015. HyperText Transport Protocol. This option is for receiving media from a web server or any other server that does not support RTSP or RTMP. You can use this option to load an SDP file used to acquire a stream, for example. Real-Time Streaming Protocol with User Datagram Protocol. This option is recommended for receiving live input from an RTSP-capable server such as Helix Server. It can also be used for RTSP cameras. By using UDP, the source can deliver media packets more efficiently than with TCP. However, lost packets are not resent and may cause lapses in the media stream. Real-Time Streaming Protocol with Transmission Control Protocol. Using the TCP transport with RTSP results in greater network overhead, but lost packets can often be redelivered by the network layer. This option provides better error resilience for RTSP sources transmitting over the Internet. It is not recommended for use with live streams delivered by a Helix Server, however. Real-Time Streaming Protocol over HTTP. This is used primarily to work around firewalls that restrict RTSP communications as long as the RTSP source supports HTTP. Because RTSP/HTTP is less efficient for transporting media than RTSP/UDP or RTSP/TCP, it is not recommended if either of those options is available. Variations of the Real-Time Messaging Protocol used by Flash Media Servers: rtmp standard protocol (recommended) rtmpt RTMP cloaked as HTTP to work around firewalls rtmpe encrypted RTMP rtmps secure RTMP rtmpte encrypted and cloaked RTMP rtmpts secure and cloaked RTMP Microsoft Media Services, a streaming protocol used by Windows Media Server. Input Type (RTP and UDP Streams) Input Interface For a UDP or RTP stream, select Unicast or Multicast as the Input Type depending on the IP address where the stream is directed. If you choose Multicast, enter the multicast address in the range from 224.0.0.0 to 239.255.255.255. For any type of input stream, use the Input Interface drop-down to choose which Helix Broadcaster IP address receives the stream. The addresses are set on the System Setup tab under the Network Setup category as described in the section Configuring FTP Access on page 17. If the remote server initiates the stream (push mode), it must be configured to send the stream to this address. 21
CHAPTER 3: Inputs Input Port (RTP and UDP) Note: Do not use the local setting for network input. For a UDP or RTP stream, set the Helix Broadcaster port that receives the remote server stream in the Input Port field. If the stream is multicasted, select the port on the multicast address where the stream is sent. If the remote server initiates the stream (push mode), it must be configured to send the stream to this port. Remote URI (HTTP, RTSP, and RTMP) In the Remote URI field, set the URL where Helix Broadcaster acquires the steam. The URI format is the following, in which a user name and password can be included in the URL if required by the remote server: protocol://username:password@address/path/stream_or_file_name For example: http://192.168.123.1:80/stream.sdp rtsp://helixbcd:tr9ls3uip@192.168.123.1:554/test.sdp rtmp://192.168.123.1:1935/live/myvideo Input Buffer Size The input buffer size sets the number of milliseconds of input data that is buffered before it is encoded. The default value is 800 milliseconds. A lower value such as 200 speeds the end-to-end delivery process. A higher value such as 1200 adds more protection against lapses in data delivery by buffering more of the incoming stream before it is encoded. Tip: For receiving an RTSP stream from another Helix Server, use the rtsp/udp input protocol and a buffering value of 1000 ms or greater. Warning! Do not set the buffer value below 200. Encoding with an SDI/HDMI Device The following sections explain how to receive input from a camera or microphone connected to the Helix Broadcaster SDI or HDMI port. Once you have set up the input from the device, define the encoded output characteristics as described in Chapter 4. SDI and HDMI Ports 22
CHAPTER 3: Inputs Setting Up the SDI/HDMI Input Under the Encoder Setup tab, click one of the SDI/HDMI Setup categories. Click Input Setup to define the characteristics of the stream coming into Helix Broadcaster from the SDI/HDMI input device. Sample SDI/HDMI Input Warning! When you have finished defining the input, click the Update button to save your settings. If you navigate away from the page before updating the information, Helix Broadcaster discards the page data. Start Mode The Start Mode option determines when the encoding process begins and ends: Manual If you select Manual, encoding begins when you start the process as described in the section Using the Service Control Palette on page 49. Optionally, you can specify a time when the process ends by entering a number of seconds in the Execution Time field. An entry of 3600, for example, stops the encoding process one hour after it starts. Always On With the Always On setting, the encoding process begins when you define the output and start the stream manually. After that, it restarts automatically if it is stopped manually or if Helix Broadcaster is rebooted. Tip: To shut down an always-on broadcast, change the start mode to Manual, click Update, and shut down the process using the control palette (see page 49). 23
CHAPTER 3: Inputs Scheduled If you choose Scheduled, you can enter up to three repeating start and stop times for the encoding. Specify the time in the format hh:mm:ss. The following illustration shows an encoding process set to run from 2:30 to 3:30 p.m on weekdays and from 10 to 11 a.m. on weekends: Loop Using the Loop setting, you can restart the input at regular intervals. After you select this option, set the number of seconds between each restart in the Execution Time field. For example, a value of 43200 restarts the continuous input every 12 hours. SDI Name For SDI Name, define a name that identifies the input. This name is for reference only in the Helix Broadcaster interface. It does not affect the output stream name. Aspect Ratio For Aspect Ratio, choose the aspect ratio of the video captured by the SDI/HDMI device. Choices are: 4:3 standard video 16:9 widescreen, typically 1280x720 or 1920x1080 Video Mode Audio Configuration Under Video Mode, choose the frame size and frame rate of the incoming video. The dropdown lists the common output formats for NTSC, PAL, and HD video. For Audio Configuration, select one of the following: Embedded digital audio embedded in a video track by a camera AES/EBU digital audio output from a microphone Analog analog audio format from a microphone Audio Rate With digital audio, the sampling rate indicates the number of samples taken every second when the audio is digitized. Digital input audio has a specific sampling rate, typically within the range of 8,000 to 48,000 Hz, although it may be higher. In the Audio Rate drop-down, select the sampling rate used in the device s audio output. Note: This drop-down has no effect on analog audio. 24
CHAPTER 3: Inputs Audio Channels HD-SDI Input Bits Input Buffer Size For More Information: You can change the sampling rate in the encoded output as described in the section Audio Rate on page 48. For Audio Channels, select the number of audio channels that the SDI/HDMI device records. The typical value is 2, indicating stereo sound, although SDI and HDMI inputs may support multiple channels. Tip: You can lower the number of channels (from 5-channel to stereo, for example) when defining the Helix Broadcaster output. See Audio Channels on page 48. In the HD-SDI Input Bits drop-down, select the color depth (amount of color information per pixel) that the camera captures: 8 bits This is the most common color depth, capturing 8 bits of data for each color of each pixel, resulting in over 16 million colors. 10 bits High-definition cameras may capture 10 bits of color data, resulting in over a billion possible colors. The input buffer size sets the number of milliseconds of input data that is buffered before it is encoded. The default value is 800 milliseconds. For low-latency encoding and delivery, set a lower value such as 200. Warning! Do not set the buffer value below 200. For More Information: For details about low-latency encoding, refer to Output Format on page 31. Using a File Input Helix Broadcaster can encode input from an existing file such as an uncompressed AVI or an MPEG-4 clip. Using the output settings described in Chapter 4, you can stream the file contents a server, transcoding the audio and video as necessary. You can also save the output as an MPEG-2 transport file (.ts) or MPEG-4 file (.mp4). Setting Up File Input Properties For More Information: For information about file output formats, refer to Saving Output to a File on page 40. You define each input file in a FILE Setup category (such as FILE #1 Setup) under the Encoder Setup tab. Under a FILE Setup category, click Input Setup to define the input file characteristics. 25
CHAPTER 3: Inputs Sample File Input Warning! When you have finished defining the input, click the Update button to save your settings. If you navigate away from the page before updating the information, Helix Broadcaster discards the page data. Start Mode The Start Mode option determines when the encoding process begins and ends: Manual If you select Manual, encoding begins when you start the process as described in the section Using the Service Control Palette on page 49. Optionally, you can specify when the process ends by entering a number of seconds in Execution Time field. An entry of 60, for example, stops the encoding process one minute after it starts. Note: If you encode a file input to a file output, the Execution Time does not specify how much of the input file s timeline will be recorded. For example, a value of 10 for the execution time means the encoder runs for ten seconds after it opens the input file. In that time, it may be able to encode 60 seconds of the input file s timeline. Always On With the Always On setting, the encoding process begins when you define the output and start the stream manually. After that, it restarts automatically if it is stopped manually or if Helix Broadcaster is rebooted. With this mode, you may want to loop the file (see page 28). Tip: To shut down an always-on file encode, change the start mode to Manual, click Update, and shut down the process using the control palette (see page 49). Scheduled If you choose Scheduled, you can enter up to three repeating start and stop times for the encoding. Specify the time in the format hh:mm:ss. The following illustration shows an 26
CHAPTER 3: Inputs encoding process set to run from 2:30 to 3:30 p.m on weekdays and from 10 to 11 a.m. on weekends: Note: If you are encoding a file or playlist in a single pass without looping the input, setting a stop time is optional. Loop Using the Loop setting, you can restart the file input at regular intervals. After you select this option, set the number of seconds between each restart in the Execution Time field. For example, a value of 43200 restarts the input every 12 hours. File Description Filename/Playlist Playlist Format For File Description, define a name that identifies the file input. This name is for reference only in the Helix Broadcaster interface. It does not affect the output stream name. Under Filename/Playlist, enter the path and name of the single file or a playlist of multiple files. The default directory is the root level of the Helix Broadcaster file system, which is the directory where you log in using FTP. If you place the file in a different Helix Broadcaster directory or on a network share, include a relative Linux path to the directory. For example, the path to a clip in the Helix Server Content directory would look like this: helix-server/content/credits.avi For More Information: For FTP access to work, the FTP service must be running as described in Configuring FTP Access on page 17. You can set up a Samba share under System Setup > Storage Setup in the Helix Broadcaster interface. A playlist is a simple text file that is saved with the file extension.m3u8. It lists the path and file name of each file to play on a separate line. File paths are relative to the playlist location specified for Filename/Playlist. In the following playlist, the three files reside in a user-created meeting directory one level below the playlist on the file system: meeting/intro.mp4 meeting/presentation.mp4 meeting/wrapup.mp4 Tip: To enable media players to play all of the files, each file must use the same screen size as well as the same video and audio encoding properties. If the input files have different properties, define the output encoding properties as explained in Chapter 4 rather than passing through the inputs unchanged. 27
CHAPTER 3: Inputs Looped Playback Keep Loop unchecked to deliver the input file or playlist once. Check Loop to deliver the content repeatedly from beginning to end (or the cutoff set by Execution Time). When you loop a file, click the Show Advanced link and set the following: If Keep Output Open is not checked, each loop starts a new output stream. Media players may need to reconnect after each loop. If you are encoding a file output, the output file is overwritten on each loop. If Keep Output Open is checked, each loop is part of the initial output stream. This is typically the setting to use to stream the looped content continuously. If you are encoding a file output, the output file grows larger on each loop. Warning! If Keep Output Open is checked and the input does not loop, Helix Broadcaster encodes the stream even after the input has played once. Media players continue to receive a live stream, but no new content will be played. 28
Chapter 4: OUTPUTS CHAPTER 4 For each input you define, you set up a corresponding output or a set of outputs. You might create different outputs to generate streams with different streaming bandwidths or output ratios, for example. If the input is in a 16:9 widescreen format, for instance, you can create one output that preserves the 16:9 ratio and another that converts the stream to a 4:3 ratio. Creating a Profile (optional) Creating a profile saves time if you have common output setups that you want to assign to multiple inputs. To create a profile, choose Output Profiles > New Profile on the Encoder Setup tab. Under Profile Name, define a name without spaces. In the remainder of the page, you define the profile s output settings, which are described in the rest of this chapter. Output Profile Creation Tip: Once you save the profile, the profile name appears under the Output Profiles menu entry. You can then select the profile by name to edit it. To see which profiles are assigned to which outputs, choose Output Profiles > Profile Assignments. Assigning Profiles to Outputs You assign the profile to an output by displaying the output setup page (see page 30), selecting the profile name in the Output Profile drop-down, and clicking Apply. This fills in the output fields with the profile settings. You then need to define only the settings that are specific to each output, such as the encoded stream name. Applying a Profile to an Output Warning! Changes made to output settings linked to a profile are overridden and replaced with the profile values unless you unlink the profile. 29
CHAPTER 4: Outputs Unlinking a Profile You can use a profile to define basic aspects for outputs but then tailor the settings for each output. To do this, assign a profile to the output. Then select None in the Output Profile dropdown and click Apply. This unlinks the output from the profile without deleting any of the profile information. You can then modify any of the output settings. Tip: Deleting a profile by clicking the Delete button on the profile page unlinks the outputs, but it does not delete the profile information already saved for those outputs. Setting up a New Output Stream To define an output, select your input category (NET Setup or SDI/HDMI Setup) on the Encoder Setup tab. Then click New Output. You can define all output information in this screen, or you can assign a profile (see page 29) and define only the additional output-specific information like the stream name. When you have finished defining the output, click the Update button at the bottom of the page to save your settings: Warning! If you navigate away from the page before updating the information, Helix Broadcaster discards the page data. Defining the Output Stream The top portion of an output page defines the basic stream characteristics. Ensure that the Enabled box is checked to generate the output when the encoding process is started. To disable an output that is currently running, uncheck the Enabled box, click Update at the bottom of the output page, and click Restart on the Service Control palette (see page 49). Output Encoding Settings 30
CHAPTER 4: Outputs Stream Name For the stream name, enter a single word that identifies the stream. This name appears as an entry under the input category once you save the output information. For example, if you are defining an HDMI output named HDMIOutput, the entry Out:HDMIOutput appears in the SDI/HDMI Setup category. You can then edit this output by clicking the stream name entry in the list. Output in the SDI/HDMI Input List Output Format Note: The name you enter here does not automatically become the stream name used by media clients to request the stream. You set the stream name used in request URLs as described either in Helix Stream Name on page 35 or Receiving an Encoder Stream on page 64. The Output Format drop-down provides several options for setting the type of output stream that Helix Broadcaster creates. This guide explains how to set up the following types of output streams: Helix Media Server (HLS, RTSP, RTMP, and Dash) This is the standard output for passing an H.264/AAC stream to Helix Server for delivery to media clients. When you choose this method, the basic Helix Server configuration is set up automatically, and you can request the streams from Helix Broadcaster as soon as the encoding process begins. Tip: The Helix Media Server method does not support multicasting. Use a UDP method instead. UDP with Transport Stream (TS) envelope This output delivers the encoded output as an MPEG transport stream. You can use this output to pass a stream to Helix Server, but you must configure the server manually to receive the stream as described on page 64. UDP/RTP with Low Latency Transport Stream (TS) envelope This output format is identical to the preceding except that it enables the encoder to buffer less of the transport stream before delivering the output. This results in lower endto-end latency, meaning that media clients are able to display the event stream faster than with a standard-latency stream. Tip: You can use the low-latency envelope with standard-latency buffering values. You must choose the low-latency option to deliver a low-latency stream, however. For More Information: See Low-Latency Encoding on page 76 for important information about setting buffering values and other settings that enable a low- 31
CHAPTER 4: Outputs latency throughput. If you deliver the low-latency stream to Helix Server, you must set up the server as described in the section Receiving an Encoder Stream on page 64. RTMP push with Flash (FLV) envelope This output uses the RTMP protocol to transmit the encoded output as a Flash stream. You can use this output type to stream the contents to Flash Media Server or to upload the stream directly to a content distribution network such as Akamai. When you choose this option, you can select the demux mode (see page 32) and the RTMP options (see page 38). File Output The file output types save the output to a file on the local Helix Broadcaster machine. When you choose one of these options, you can select the demux mode (see page 32) and the file output options (see page 40). There are two output types: Transport Stream (TS) envelope Save the output in the transport stream file format using the file extension.ts. Mpeg 4 (MP4) envelope Save the output in the MPEG-4 file format using the file extension.mp4. Demux Mode The Demux Mode setting determines which inputs are selected for encoding. If you are encoding from an SDI or HDMI output, only the Select All option is available. When you encode from a network input or an existing file, you can choose one of the following: Use PATs Program IDs Use this setting to select which streams to encode from a transport stream that includes multiple programs indexed with a program association table (PAT). When you use this option, select the inputs as described in Programs and Stream IDs on page 33. Select All This option is available for MPEG-2 transport streams or inputs such as single-rate or multi-rate RTSP streams. For a multi-rate input, this option selects the first video stream along with all of the associated audio tracks. This is the typical setting to use if you do not need to select certain programs and elementary streams from a transport stream. Stream All UDP (or RTP) With either of these options, Helix Broadcaster proxies an input stream as UDP or RTP to the output destination with minimal latency. The input stream is passed through to the output without being demuxed and re-encoded. Note: When you select this option (either UDP or RTP), the output format (page 31) is not used and its value is disabled. Capture Source to Disk This option is similar to Stream All UDP (no demuxing or encoding). It saves the output as an MPEG-2 transport file using a.raw file extension. The output file is created under the top-level directory accessed by logging in with FTP (see page 17). 32
CHAPTER 4: Outputs Programs and Stream IDs If you are encoding a transport stream such as from an MPEG-2 encoder, and you selected Use PATs Program IDs for Demux Mode (see page 32), you can select which streams from the transport stream to encode. The output PID feature (see page 36) allows you to keep the stream IDs from the input or assign new IDs to the output. Transport Stream Program and ID Selection Input Program ID A transport stream s program association table (PAT) lists the program and stream metadata. Programs are typically numbered sequentially starting with 1. In the Input Program ID field, you can select a subset of programs to encode in the output. For example, enter 1 to encode only the first program. The entry 1,3 selects the first and third programs. If you do not choose the program or programs to encode, all programs are added to the output. Scan Input If the stream is already being delivered to a Helix Broadcaster IP address, click Scan Input to analyze the stream and choose a program from the drop-down. The entries include the program IDs along with the audio and video PIDs and stream bit rates. Scan Input Results Tip: For best results scanning inputs, log into the Helix Broadcaster interface using the Google Chrome browser. Excluded Streams Within each program, video and audio streams are listed by two- or three-digit PIDs. In the Excluded Elementary Stream ID(s) field, you can choose which streams (such as auxiliary audio streams) to exclude from the output. Type the stream numbers separated by commas without any spaces. For example: 78,79,80 Audio Language Filter The Audio Language Filter drop-down allows you to set the language you want to encode when the selected program contains multiple audio tracks. In this case, you do not need to exclude auxiliary audio tracks specifically, although you can still use the preceding field to exclude alternate video tracks that may be present. 33
CHAPTER 4: Outputs Choosing Unspecified/Default selects the primary audio, which is typically the first audio track in the program. You can also choose a specific language to match an audio track based on a three-letter ISO639-2 code included in the PAT. The following are the available languages and their matching codes: English eng Turkish ota French fre or fra Ukrainian ukr Persian per or fas Russian rus Arabic ara Japanese jpn Dutch dut or nld Spanish spa Italian ita Portuguese por German ger or deu Chinese chi or zho For More Information: For more on ISO639-2 codes, you can refer to the site http://www.loc.gov/standards/iso639-2/php/code_list.php. Multibitrate Mode The Multibitrate Mode drop-down allows you to create a single-rate output or combine multiple outputs into a multi-rate stream. Multi-rate streams can be encoded using any number of outputs set to different output bandwidths. Choose one of the following: Single bit rate per mux Choose this option to create a single-rate output. Note: If the output option is either UDP with Transport Stream (TS) envelope or UDP/RTP with Low Latency Transport Stream (TS) envelope, any other outputs created for the input must be directed toward a different destination IP address (see page 35) or, if the same address is used, a different port on that address (see page 36). Multibitrate Master Mode To create a multi-rate stream, set the first output you define as the master mode. This can be any output in the stream (highest bit rate, lowest bit rate, or any rate in between). Multibitrate Member For a multi-rate stream, set all subsequent outputs as members. All member outputs will be directed to the same destination IP address (see page 35) and port as the master mode. 34
CHAPTER 4: Outputs Helix Stream Setup Note: The master stream and each member stream should have different video rates (see page 43), which are typically paired to different audio rates (see page 48). For More Information: See also Rate Shifting Characteristics on page 77 for background about rate-shifting in media clients. If you use the Helix Media Server (HLS, RTSP, RTMP, and Dash) output method, configure the following fields to define how the encoded output stream is passed to Helix Server for delivery to media clients. The setup information is automatically configured for Helix Server as described in the section Receiving an Encoder Stream on page 64. Helix Stream Name For Helix Stream Name, enter a stream name without spaces. You can create a name using letters, numbers, or any of the following special characters: - \ /! @ # $ % ^ & * ( ) _ \ - + = } { ; : < >,.? ~ Helix Media Server Playback Links Under Helix Media Server Playback Links, Helix Broadcaster lists the basic URLs used by media players to request the stream from Helix Server. Once you save the output configuration, the fields are updated to include the Helix stream name. For example, with a stream name video_live, the Flash link field indicates the request URL used by Flash Player: Destination IP rtmp://98.111.12.114/rtmplive/mptslive/video_live Tip: You can use the links to request the stream as soon as the encoding process begins. With HLS and DASH output, the link may not function immediately because Helix Server generates several transport segments for the stream before it creates the initial playlist. For More Information: Refer to URL Components on page 61 for more about client request URLs. If the Destination IP field appears for the output type you have selected, enter the IP address where the Helix Broadcaster encoder sends the stream. You can also specify one of the following: 127.0.0.1 To pass the encoder stream to Helix Server, use this address, which is also called the localhost address. Helix Server can then deliver the stream to media clients, other servers, or to a content distribution network. IP version 4 multicast address On a multicast-enabled network, you can use a multicast address in the range from 224.0.0.0 and 239.255.255.255. Helix Server, along with any other multicast-enabled device on the network, can then receive the stream by listening to the multicast address and port. 35
CHAPTER 4: Outputs Destination Port Note: In the Output Interface drop-down, select which IP address Helix Broadcaster uses to send the data to the multicast address. Do not use the local setting (127.0.0.1) when multicasting. When you select a destination IP address, the Destination Port field sets the port on the destination IP address where the output stream is delivered: If you are defining a multi-rate stream, the outputs that set up each stream bandwidth must use the same port on the localhost or multicast address. For example, a 500 Kbps output and a 300 Kbps output for the same multi-rate stream may both use port 8050. If you are creating multiple streams, the outputs for the different streams must use a different port on the destination IP address. For example, a 4:3 output stream may use port 9000 while a 16:9 output stream may use port 9010. Note: The section Receiving an Encoder Stream on page 64 explains how to receive the stream on Helix Server by setting up a stream definition that uses the same address and port values set here. Multicast Port Values For multicasting, use an available port on the multicast address as defined by the network administrator. Localhost Port Values For delivery to Helix Server using the localhost address of 127.0.0.1, you can use any port value over 1024 and up to 65535 as long as that port is not already in use. For More Information: For details about Helix Server port use, refer to the online help topic Helix Administrator > System Setup > Ports > Server Default Ports. Output PID Control Any output that uses a transport stream wrapper, including the Helix Server output method, can use Output PID Control to add, change, or pass through stream IDs (PIDS) in a program mapping table (PMT) that Helix Broadcaster encodes into the output stream. You may want to do this if you are delivering the stream to a server, an encoder, or a media player that reads transport streams. Tip: Output streams for media clients such as HLS players and Flash Player do not use PIDs, so if you pass the output to Helix Server for delivery to these types of clients, you can leave Output PID Control set to its default. Auto Assign The default value Auto Assign associates all output streams with program 1 and gives each stream a unique, sequential number starting at 68. For example, in a multi-rate output (see page 34) with two video streams and two audio streams, the output streams are assigned the IDs 68, 69, 70, and 71. 36
CHAPTER 4: Outputs Use Source PIDs For a single-rate output (see page 34) encoded from a transport stream input, you can select Use Source PIDs to have Helix Broadcaster encode the input PIDs into the output. By default, the program number used in the program association table (PAT) is 1 unless you enter a different number for Output Program ID. Warning! Use this method only if the input encoder, server, or file encodes a transport stream that includes a program mapping table (PMT). Do not use this method with any other types of input, such as live capture from a camera, or when setting up a multi-rate output. For More Information: See the section Programs and Stream IDs on page 33 for information about how Helix Broadcaster selects which program of the input to encode. Manual Assignment For a single-rate output (see page 34), you can assign PIDs to streams by selecting Manual Assignment for Output PID Control. You can do this if the input contains a PMT with PIDs or for any other type of input, such as a live camera capture. Enter unique values for each of the following: Output Program ID Program number assigned to the output in the program association table (PAT). Default of 1. Elementary Output PMT PID Program mapping table. Default of 66. Elementary Output Video PID Video stream. Default of 68. Elementary Output Audio PID Audio stream. Default of 69. Elementary Output PCR PID Program clock reference. Default of 70. Elementary Output SPU PID Optional subtitle track. Default of 71. Output TTL If you are multicasting the output stream (see page 35), you can select the packet time-to-live (0 to 99) in the Output TTL field. This value applies to all output streams. What is a TTL? As a multicast data packet passes through a multicast router, its time to live decreases by 1. When the value reaches 0, the router discards the data packet. When you set up a multicast, you specify a time to live. The larger the value, the greater the distance a packet can travel. The default value of 16 typically keeps multicast packets within an internal network. The following table summarizes common values. Time to Live (TTL) Values TTL Value Packet Range 0 local host 1 local network (subnet) 16 intranet (Table Page 1 of 2) 37
CHAPTER 4: Outputs Time to Live (TTL) Values (continued) TTL Value Packet Range 32 site 64 region (Table Page 2 of 2) Pushing an RTMP Stream The output format RTMP push with Flash (FLV) envelope (see page 31) allows you to deliver the single-rate or multi-rate output as an RTMP stream. You can use this option to send the encoded output directly to a Flash Media Server (or compatible server) as well as to a content distribution network such as Akamai. The following figure illustrates the settings used to upload a stream to Akamai HD. RTMP Stream Upload to Akamai HD Akamai Portal Setup Tip: You can also use Helix Server to push an RTMP stream to another server or CDN. In this case, use the Helix Media Server (HLS, RTSP, RTMP, and Dash) output setting to pass the encoded stream to Helix Server as described in Chapter 6. On the Helix Broadcaster Delivery Setup tab, select Distribution > RTMP Push and click the Help link for RTMP upload instructions. To enable uploading of content to Akamai HD, create your account with Akamai, then log into the Akamai Edge Control Portal. After you create a profile, you can configure an RTMP stream using the stream names and entry point URLs described in the following sections. For More Information: Refer to the document Akamai HD for the Adobe Flash Platform Live User Guide. An Akamai tutorial available as an executable file on Windows explains the process of setting up a Flash stream. You can retrieve this file at https://control.akamai.com/dl/training/flash_live.exe. RTMP Public Stream Name The value for RTMP Public Stream Name defines the live stream name that Helix Broadcaster creates. For delivering the stream to Flash Media Server or a compatible server, you can use any stream name, such as flashlive. For Akamai HD, each stream requires a specific name, which you can view on the Edge Control Portal when you set up edge distribution for the stream. 38
CHAPTER 4: Outputs Akamai Stream Extension Each stream uploaded to Akamai HD includes a unique extension that is defined on the portal. For example, if you submit the stream name flashlive, the portal generates stream names such as flashlive_1@27977, adding an underscore and number to the stream name if bulk streams were configured for multi-rate output. Here, the stream extension is 27977. Akamai Stream Name The URL that a media client uses to request the stream from Akamai HD is listed on the Akamai portal page. If the broadcast stream source is multi-rate, there are multiple URLs, one for each bandwidth. Each URL uses a stream naming convention that includes the values EVENT_ANGLE_BITRATE. Consider the following URLs for the first and second streams of a multirate stream: URL for 348 Kbps stream http://helix-lh.akamaihd.net/flashlive_1_348@27977/... URL for 896 Kbps stream http://helix-lh.akamaihd.net/flashlive_1_896@27977/... Here, the EVENT_ANGLE_BITRATE components of the stream names are flashlive_1_348 and flashlive_1_896, respectively, where 348 and 896 indicate the bit rates of the two streams (audio and video combined) in Kilobits per second. The two stream names that you would specify as separate outputs on Helix Broadcaster would therefore be the following: Name for 348 Kbps stream flashlive_1_348@27977 Name for 896 Kbps stream flashlive_1_896@27977 Primary and Backup Target URLs For the primary and backup URLs, specify the target server IP address. To send a stream to Flash Media Server or a compatible server, the backup URL is optional. The primary URL specifies the RTMP protocol, the server s IP address, and the live application name. For example: rtmp://183.43.12.21/live Akamai Entry Points The Akamai HD portal defines upload URLs known as entry points. The stream information page lists a primary entry point (designated with a p in the URL) and a backup entry point (designated with a b in the URL). You need to provide both of these URLs when configuring Helix Broadcaster. For example: Primary Target URL rtmp://p.ep27977.i.akamaientrypoint.net/entrypoint Backup Target URL rtmp://b.ep27977.i.akamaientrypoint.net/entrypoint User Name and Password The user name and password specify the log-ins for the RTMP server: To stream the output to a Flash Media Server or a compatible server, specify the user name and password defined on the target server. You can leave these fields blank if a log-in is not required. 39
CHAPTER 4: Outputs Flash Version Identifier For Akamai HD, the Edge Control Portal page where you define the stream includes a CP code, which you specify as the user name. The portal page allows you to select a password or generate one automatically. For RTMP Flash Version Identifier, choose one of the following from the drop-down: Helix/3.1 Choose this to deliver the stream to a Helix Server. Akamai Helix/3.1 Choose this when uploading to Akamai HD. FLME/3.0 This setting identifies Helix Broadcaster as a Flash Live Media Encoder. Choose this when forwarding the stream to Flash Media Server (or compatible). Akamai Advanced Video Options When you upload a stream to Akamai, choose H.264 video encoding (see page 42). After you set the basic video properties, click the Video Transcode Advanced Options link and set the following properties: GOP Size For GOP Size, choose Custom Size and set Mode to Fixed. For Custom Value, set the value to twice the value of the output frame rate. If the output frame rate is 30 frames per second (fps), for example, set the value to 60. GOP Setting for 30 fps Stream Uploaded to Akamai Tip: The output frame rate is the same as the input frame rate unless a new value is selected for the Framerate Conversion output video setting (see page 44). Macroblock Tree Rate Control If you are encoding a multi-rate output (see page 34), set the Macroblock Tree Rate Control to Disabled for every output stream (master mode and each member). Macroblock Tree Rate Control Disabled for Multi-rate Output Saving Output to a File The output options (see page 31) allow you to save the output stream to a file directly from the Helix Broadcaster encoder. This is useful for saving an archive of a live broadcast. When you choose the option to save the output as a transport stream file (.ts) or an MPEG-4 file (.mp4), you can name the file and add a timestamp to the file name. 40
CHAPTER 4: Outputs Output File Options Tip: When you deliver a stream to Helix Server, you can use the server s archiving function to create an MPEG-4 archive. To learn more about archiving, set up the server as described in Chapter 5. On the Helix Broadcaster Delivery Setup tab, select the Broadcasting category and choose Broadcast Archiving. Click the Help link on the setup page to learn about archiving functions. File Name For File Name, enter the path and name of the output file. The default directory is the root level of the Helix Broadcaster file system, which is the directory you access initially if you log in using FTP. If you place the file in a different Helix Broadcaster directory or on a network share, include a relative Linux path to the directory. For example, the path to a clip in the Helix Server Content directory looks like this: helix-server/content/credits Time Stamp Tip: The file name can contain only letters, numbers, and a hyphen (-). Do not include the.ts or.mp4 file extension. Helix Broadcaster sets the file extension automatically based on the output format. For More Information: For FTP access to work, the FTP service must be running as described in Configuring FTP Access on page 17. Select Yes for Append Date to File Name to have Helix Broadcaster add a timestamp to the file output. In this case, new versions of the output file do not overwrite older versions of the file because each file will have a different timestamp. The timestamp is set at file creation and uses this format: filename_yy-mm-dd-hh-mm-ss.ext The following Coordinated Universal Time (UTC) values are used: YY year, as in 14 for 2014 MM numeric month value, as in 10 for October DD day numeric value, as in 04 hh hour in 24-hour format, as in 14 for 2 p.m. mm minute (00 to 59) ss second (00 to 59) For example, an MPEG-4 file named Credits might be saved using the following file name: Credits-13-10-21-14-32-06.mp4 41
CHAPTER 4: Outputs Selecting a Storage Group If you have multiple hard disks, you can select an alternate output location using the Storage Group drop-down. You can also set up a RAM drive or a Samba share under System Setup > Storage Setup in the Helix Broadcaster interface. Encoding Video Video Encoding Settings The video encoding portion of the output page sets the video format and streaming rate along with optional advanced settings. Video Format The Video Transcoding Format drop-down selects the video format created by the Helix Broadcaster encoder. The following are the common choices: H264 Video Use this to encode the video with the H.264 codec. If the input video stream is already encoded as H.264, choose this option if you need to change the stream characteristics, such as setting a different streaming speed or changing the output aspect ratio. Note: Choose H.264 video to deliver video to the widest range of clients. HLS clients, for example, require H.264. No Video Transcoding If you select this option, Helix Broadcaster will not re-encode the stream, which saves processing power. The stream is passed through as-is, however, and you cannot change characteristics such as streaming speed or aspect ratio. When you choose this option, no other video settings are available. 42
CHAPTER 4: Outputs Remove Video If this option is selected, Helix Broadcaster does not encode or pass through any video. This results in an audio-only stream. When you choose this option, no other video settings are available. Video Bit Rate For Video Bit Rate, set the streaming bit rate in Kilobits per second (Kbps). The encoded stream s total streaming speed is the sum of the video bit rate and the audio bit rate (see page 47). The bit rate you select should be influenced by the streaming network, the client device, and video frame size, video frame rate, and the desired media quality. Video Transcoding Method Note: For delivery to media clients, Helix Server supports H.264 Levels 1 to 3.1 with a maximum speed up to 15 Mbps. For Video Transcoding Method, select one of the following: Average Bit Rate Average bit rate encoding keeps the video streaming rate at the selected bit rate as an overall average. The actual streaming rate may be above or below the selected bit rate at any given time, however. This fluctuation helps to improve quality over constant bit rate encoding. Average bit rate encoding can be used with high-speed networks such as corporate LANs, cable modems, and mobile LTE. Constant Bit Rate Use constant bit rate for low-latency encoding. It keeps the video data more tightly set to the bandwidth target than does average bit rate encoding. The quality may be lower than with average bit rate encoding, but the streaming rate is stable. You may also want to choose this encoding method when streaming over networks that have tightly constrained bandwidths, such as 3G mobile networks. Tip: Use constant bit rate encoding to obtain the best results when delivering the stream to Helix Server. Variable Bit Rate Variable bit rate encoding gives more bandwidth to scenes that are hard to compress, making the most visible difference in videos that have fast-moving, high-action scenes. To accommodate variable bit rates, the client network must be able to handle large bandwidth spikes. This is typically acceptable on corporate networks and for cable modem use. It is not advisable for DSL or mobile broadband connections. Video Output Format The Video Output Format drop-down sets the frame size of the encoded video. If the frame size is in the same aspect ratio (such as 4:3 or 16:9) as the input video, the video is scaled smaller or larger as necessary to meet the target size. If the aspect ratio is different, the output aspect ratio (see page 44) determines how the video is resized. 43
CHAPTER 4: Outputs Video Encoding Quality The Video Encoding Quality setting can improve the output quality of the video. Options may include the following: Normal The default Normal setting provides good quality while maximizing CPU efficiency. This setting is recommended for most encoding jobs unless higher output quality is needed. Note: If you choose Normal, you should not change the settings under Video Transcode Advanced Options. Manual The Manual setting is an expert-level option that allows you to modify the video codec settings to balance quality and CPU usage. Click the Video Transcode Advanced Options link to display the codec settings you can change. Tip: To monitor CPU status during encoding, select the System Status tab and choose CPU Status. High or Very High These two settings are available only with certain Helix Broadcaster licenses. They improve the quality of the video but consume more CPU for encoding. RealNetworks recommends using these settings only if Helix Broadcaster is running below full capacity. Output Aspect Ratio If the input and output video streams have a different aspect ratio, the Output Aspect Ratio value determines how the output looks. The Preserve Source option preserves the aspect ratio of the input. This overrides the setting of Video Output Format (see page 43) if the input has a different aspect ratio than the selected output ratio. Choose Force 16:9 or Force 4:3 to change the aspect ratio, increasing or decreasing the video size as necessary to fit the output settings. This can cause visible distortion when the input and aspect ratios are different. The following figure illustrates a 16:9 video changed to a 4:3 aspect ratio, which compresses the video image in its horizontal dimension. Framerate Conversion The video frame rate determines how many visual frames are encoded to display each second. The Framerate Conversion drop-down provides several choices for altering the frame rate in the 44
CHAPTER 4: Outputs output. Video streamed over the Internet is typically encoded at a frame rate of 15 to 30 frames per second, although lower-bandwidth videos may be encoded at slower frame rates. Changing Metadata The default value, which preserves the input frame rate, is Keep Source Framerate and Metadata. The other options for keeping the source frame rate allow you to change the frame rate metadata information within the video. If the input metadata is incorrect, you can choose the option for a custom metadata rate and enter the correct value in the Custom Value field. Downsampling or Upsampling The downsampling and upsampling values allow you to change the input and output frame rates among those used in film and video production: feature film PAL video NTSC video 24 frames per second 25 frames per second 30 frames per second Dropping Frames Helix Broadcaster provides several options to drop frames and achieve a lower frame rate. Dropping frames may make the video appear jerky, however. Deinterlacing Deinterlacing removes jaggedness from certain video sources. Typically you can leave this field set to its default value of Auto. In this case Helix Broadcaster automatically deinterlaces the input stream as needed. If you have specific requirements, you can use the drop-down to turn off deinterlacing or choose a specific method of deinterlacing. Tip: Deinterlacing doubles the video frame rate. For example, it turns 30 frames-per-second NTSC video into a 60 fps output. To drop added frames, select Drop 1 out of every 2 frames in the Framerate Conversion drop-down (see page 44). What is Deinterlacing? An NTSC video camera running at 30 frames per second captures the odd-numbered lines of a field in 1/60th of a second and the even-numbered lines in the next 1/60th of a second. It then interlaces the two to create the frame. Because half of the field's lines are captured a fraction of a second later than the other half, fast-moving objects may appear jagged. This is the result of the object advancing slightly within 1/60th of a second. Deinterlacing removes this jaggedness. 45
CHAPTER 4: Outputs Detail of Interlaced Video (left) and Deinterlaced Video (right) Logo/Watermark Insertion To add an image as a logo overlay or a watermark to every video frame, change the drop-down for Logo/Watermark Insertion to Enabled. The graphic is overlaid onto the stream at the pixel size encoded into the file. File Path Enter the path and file name of the graphics file (GIF or PNG) to use as the overlay in the File field. The path is relative to the directory you access when you log into Helix Broadcaster with FTP. To use a file placed in the logos directory beneath the top level, for instance, enter a path such as the following: logos/mylogo.png Transparency The Transparency drop-down allows you to set the level of transparency for the image, from invisible to solid in gradations of 10 percent. Alpha channel information in PNG and GIF images is preserved. Position The Logo Position drop-down allows you to place the image on the video frame. You can choose one of nine preset positions such as Bottom Right. Select Custom to specify offset pixel values in the Custom X Pos and Custom Y Pos fields. The offsets insert pixel distances between the image upper-left corners of the file and the video frame. For example, values of 10 for both the x and y positions place the image 10 pixels to the right of the video s left side and 10 pixels down from the video s top edge. Encoding Audio The audio encoding portion of the output page sets the audio format and streaming rate. 46
CHAPTER 4: Outputs Audio Encoding Settings Audio Format Audio Bitrate The Audio Transcoding Format drop-down determines how the input audio is encoded in the output. The following are the common choices: AAC Audio Encode the audio with an AAC codec. If the input stream is already encoded as AAC, choose this option if you need to change stream characteristics, such as setting a different streaming speed or AAC profile. Note: Helix Server can deliver only AAC audio to clients. You can choose a different audio codec option to multicast the stream to other servers. Helix Server will not be able to deliver this stream to clients, however. No Audio Transcoding If you select this option, Helix Broadcaster will not re-encode the stream, which saves processing power. The audio is passed through as-is, however, and you cannot change characteristics such as streaming speed or sampling rate. When you choose this option, no other audio settings are available. Remove Audio If this option is selected, Helix Broadcaster does not encode or pass through any audio. This results in a video-only stream. When you choose this option, no other audio settings are available. Note: Do not select this option when encoding from an SDI or HDMI input. For Audio Bitrate, set the audio s streaming bit rate in Kilobits per second (Kbps). The encoded stream s total streaming speed is the sum of the audio bit rate and the video bit rate (see page 43). Stereo audio that accompanies a video stream is commonly encoded at any one of the following speeds (Kbps): 24, 28, 32, 40, 48, 56, 64, 80, 96, 128, 160, 192, 224, 256, 320 Tip: At slow streaming speeds, audio may be up to one-half of the video speed. At faster streaming rates, the audio bandwidth typically drops to one-quarter or less of the video speed. 47
CHAPTER 4: Outputs For More Information: For HLS media clients, Apple recommends the inclusion of a low-bandwidth audio track in multi-rate streams. Helix Server constructs this stream automatically as long as one of the video streams contains an audio track encoded at 48 Kbps or less. For details, refer to the Helix Server online help topic Media Types > HLS Clients > HLS Basics. Audio Rate In the output s Audio Rate drop-down, select the sampling rate for the encoded audio. If the input audio's sampling rate (see page 24) does not match the sampling rate you choose here, Helix Broadcaster resamples the input when it creates the output. Audio Channels Tip: If you are streaming to Flash Player, choose 44,100 Hz, which is that player s preferred sampling rate. Using other rates may introduce audio distortion. Most other media players will play a 44.1 khz stream without complications. The Audio Channels drop-down selects the number of audio channels that are recorded. Use the default value of Auto to have Helix Broadcaster select which channels to record based on the input and the output settings. Select 2 if you have multi-channel input that you want to turn to stereo. Select 1 as the value to encode mono audio. Note: Helix Broadcaster cannot increase the number of channels present in the input. For example, selecting 5 does not increase the number of discrete channels if the input is stereo. Audio Gain The Audio Gain drop-down allows you to boost or cut the output audio level, making it louder or softer than the input. The default value of 100 encodes the audio at the same volume as the input. Select a higher value to increase the volume, a lower value to decrease it. Audio Profile For AAC audio, you can choose from the following: Auto Let Helix Broadcaster choose the audio profile based on the other input and output settings. LC Advanced Audio Coding Low Complexity (AAC-LC) creates audio content at bit rates starting at 8 Kbps. Most media devices support AAC-LC audio, making it the safest choice for reaching the widest audience. HE-AAC High-efficiency AAC, which is also known as AAC Plus (AAC+), provides Spectral Band Replication (SBR) and more efficient encoding than AAC-LC. It requires more processing 48
CHAPTER 4: Outputs power for the media player to decode, however, and may not be supported by all client devices. Choose this option only if you know that your target audience supports AAC Plus. HE-AAC v2 Version 2 of High Efficiency AAC, which is also known as Enhanced AAC Plus (EACC+), adds Parametric Stereo for better sound quality. It requires more processing power for the media player to decode, however. Choose it only if you know that your target media players support it. Using the Service Control Palette The Service Control palette appears on the right side of the screen when you navigate the Encoder Setup tab. Click the buttons on this palette to start and stop the various encoding processes. When a process is started, a green on indicator appears in the palette and next to the stream category in the menu. Service Control Palette Note: The actions of the Service Control palette affect the stream category (such as Net #1 Setup) you have selected in the menu. Be sure to select the correct stream category before starting and stopping a process. Tip: To see the status of all encoding processes at once, click the System Status tab and choose Stream Status. 49
Chapter 5: HELIX SERVER CHAPTER 5 Helix Server can deliver the encoded live streams to popular media clients as well as transmit them to different servers or content distribution networks. This chapter describes the basic setup required to use the Helix Server component of Helix Broadcaster. Controlling the Helix Server Service On the Delivery Setup tab, the Service Control page allows you to stop and restart the Helix Server process independently of any encoding jobs being performed by Helix Broadcaster. Helix Server Service Control 1. Ensure that the Enable Helix Server box is checked to enable all Helix Server functions. 2. The Max Memory Allocation fields sets the upper limit on Helix Server memory use. You may want to increase this depending on how much memory your Helix Broadcaster machine provides. For More Information: For more information about how Helix Server uses memory, refer to the online help topic Server Operation > Memory Allocation. 3. The heartbeat check periodically determines if Helix Server is running. If it finds that the server process has stopped, it attempts to restart the server. Change the Heartbeat Interface value if Helix Server does not bind to the localhost address (127.0.0.1). In this case, choose one of the WAN or LAN interfaces where Helix Server binds. Tip: The page Delivery Setup > Setup > IP Bindings determines which IP addresses Helix Server uses. For details, refer to the online help. 4. The License field provides the machine ID of the Helix Broadcaster hardware, which is used in generating the Helix Server license file. This is for reference purposes. You may need to 50
CHAPTER 5: Helix Server supply this ID to a technical support representative if you encounter problems with the Helix Server license. Note: The machine ID is not the same as the hardware MAC Address. 5. On your first set-up, the Helix Server end-user license agreement (EULA) appears. Click to accept the agreement. Once you have done so, the EULA no longer appears onscreen. 6. Click Update if you make any changes. Using the Service Control Palette The Service Control palette displays on the right side of the Service Control page. You can use the Stop and Start buttons to turn the Helix Server service off or on. Service Control Palette Restarting Helix Server Some configuration changes you make to Helix Server require a server restart. In these cases, the set-up page indicates that a restart is needed by popping up a message when you click Apply. You can restart the server by navigating back to the Service Control page and clicking the Restart button. You can also click the Restart button on the Helix Control palette (see page 53). Tip: Restarting Helix Server does not affect streams being encoded by Helix Broadcaster. However, it shuts down media player connections. It is therefore best to make configuration changes during periods of low use. A full restart of the Helix Server process typically takes about 20 seconds. Once the streams are available again, media players can typically reconnect to the broadcasts. For More Information: You can implement a delay feature that causes Helix Server to wait a specified amount of time before shutting down or restarting. Under the Delivery Setup tab, click the Setup category and display the Delayed Shutdown page. Click the Help link on the page for setup instructions. Viewing the Helix Server Statistics Log Click View Log on the Service Control palette to open a new browser window that displays text output of the Helix Server statistics log. This log file contains general statistics about streams and Helix Server operation, but it does not provide specific information about media player requests. New log entries are created every 60 seconds. Tip: The generation time for each set of statistics is written to the log on the Server Stats line. For example: Server Stats (23-Apr-2013 23:01:25) 51
CHAPTER 5: Helix Server For More Information: For details about the meaning of each log entry, refer to the online help topic RSS Statistics. Helix Administrator Other than the Service Control page, the categories and setup pages under the Delivery Setup tab allow you to configure Helix Server features. In the Helix Server online help, the browserbased interface for Helix Server is called Helix Administrator. Helix Administrator Access Note: When you change configuration information on a Helix Server setup page, click Apply at the bottom of the page. If you do not click Apply, Helix Server discards the changes once you navigate to a different page. When you configure the internal web server (see page 11), Helix Broadcaster updates Helix Administrator to use this password. Once you log into Helix Broadcaster, you should not be prompted for a password again to use any of the Helix Server features. If you are prompted for a different password by Helix Server, the passwords have fallen out of synchronization. Updating the Helix Administrator Password If you are prompted for a password when using Helix Server, follow the next procedure to set Helix Administrator to use the same password used by the internal web server: To update the Helix Administrator password: 1. Click the Delivery Setup tab. 2. Choose the Security > Authentication menu path. 3. In the dialog, highlight the SecureAdmin realm. 4. Click the Change User Password link. 52
CHAPTER 5: Helix Server 5. In the popup, enter admin as the user name.. 6. In the remaining two fields, set and verify the password used by the internal web server. 7. Click OK. Updating the Monitor Password You can also change the monitor password if you are prompted by Helix Server for a password when you access Server Monitor (see page 66). Do this by displaying the configuration file (see page 59) and changing the value of MonitorPassword to the password used by the internal web server. For example: Helix Control Palette <Var MonitorPassword="BM34po9YU"/> To implement the new password, click Update at the bottom of the configuration page and restart Helix Server (see page 51). The right side of each Helix Server setup page displays a Helix Control palette. Helix Control Palette By clicking the links in this palette, you can display the following pages and features. Monitor Server Monitor, a Java-based tool that indicates the server s incoming and outgoing connections. For details about using Server Monitor, refer to the online help. Samples Links to sample clips you can play on Helix Server (see page 70). License Details about the Helix Server license. Library Documentation resources on the RealNetworks Web site. Help Online help installed with the server, displayed in a pop-up window (see page 53). Restart Restart Helix Server without interrupting any encoding processes (see page 51). Accessing Helix Server Online Help You can view context-sensitive help for Helix Server by clicking the Help button on the Helix Control palette or the Help link at the top of any Helix Server setup page. The HTML-based help system opens in a new browser window. Use the left-hand pane to navigate among topics. 53
CHAPTER 5: Helix Server Online Help Feature Areas The accordion panels at the lower-left corner of the online help allow you to choose between the different functional areas. Helix Administrator Online Help Functional Areas Toolbar Buttons The buttons at the top of the online help toolbar provide access to specific features. Helix Administrator Online Help Toolbar Buttons Helix Server Setup Pages The Delivery Setup tab of Helix Broadcaster organizes the Helix Server features into functional areas. To display detailed configuration instructions for a Helix Server feature, display the feature s setup page and click the Help link. 54
CHAPTER 5: Helix Server Helix Server Setup Categories The following sections summarize each Helix Server setup page. The Area column in each of the following tables indicates whether the feature is used with live or on-demand streaming: live Feature is applicable to live broadcast streams generated by Helix Broadcaster. VOD Feature affects on-demand streaming of prerecorded clips. Setup You can find the following feature set-up pages in the Setup category under the Delivery Setup tab. Setup Pages Page Area Purpose Ports live/vod Sets ports used with streaming protocols. Refer to the section Ports on page 62 before making any changes. IP Bindings live/vod Binds Helix Server to the Helix Broadcaster IP addresses. Do not change this unless you want to use Helix Server on a subset of the Helix Broadcaster IP addresses instead of all of them. MIME Types live/vod Sets the MIME types for HTTP delivery. This typically does not need to be changed. Mount Points VOD Creates new mount points used with on-demand clips. This allows you to stream clips from a shared network directory, for example. HTTP/HTTPS Delivery VOD Determines which mount points support delivery over HTTP. Helix Server is preconfigured to use HTTP with HLS and DASH broadcasts. You typically need to change this only to allow HTTP delivery of on-demand clips from a certain mount point. Connection Control live/vod Optionally limits streaming bandwidth used by Helix Server. This is generally not necessary to modify. Redundant Servers live/vod Redirects RealPlayer (but no other media players) to a secondary server if an RTSP output stream fails. URL Aliases live/vod Shortens long URLs by creating alias strings. Proxy Cache Dirs live/vod Controls RTSP proxy splitting of live streams and caching of ondemand clips. This is generally not necessary to modify. Delayed Shutdown live/vod Adds a delay before a Helix Server restart or shutdown. 55
CHAPTER 5: Helix Server Delivery The following set-up pages in the Delivery category affect general streaming features and media client support. Delivery Pages Page Area Purpose HLS Setup live/vod Sets streaming characteristics for HLS media players such as the Apple iphone and ipad. See Delivering Content to HLS and DASH Clients on page 67. DASH Setup live/vod Defines streaming characteristics for DASH media players. See Delivering Content to HLS and DASH Clients on page 67. Verimatrix DRM live/vod Allows HLS media players to use Verimatrix encryption. RTSP Rate Adaptation live/vod Sets server-side rate control features used with RTSP-based mobile players. The default settings are typically adequate. RTSP Fast Channel live Allows RTSP media players to switch between multiple live streams. Server Playlists live/vod Delivers a series of live or on-demand streams to RTSP or HLS media players. Stream VOD Sets a starting place in on-demand clips. Bookmarking Differentiated Svcs live/vod Sets priorities for the RTSP protocol on certain IPv4 networks. Broadcasting The Broadcasting pages control basic broadcasting features. Broadcasting Pages Page Area Purpose Helix Push Live live Accepts a broadcast stream from a RealNetworks encoder such as Helix Producer. This is typically not used with Helix Broadcaster, which generates its own encoder streams. RTP Live live Receives a broadcast stream from an RTP-based encoder. You can use this feature to receive the RTP stream directly on Helix Server, bypassing the Helix Broadcaster encoding features. If you need to change the stream s encoding parameters, use Helix Broadcaster to receive the stream (see Receiving a Network Stream on page 19), encode it, and pass it to Helix Server, bypassing the functionality on this page. Flash Live live Receives a broadcast stream from a Flash encoder. You can use this feature to receive the RTMP stream directly on Helix Server, bypassing the Helix Broadcaster encoding features. If you need to change the stream s encoding parameters, use Helix Broadcaster to receive the stream (see Receiving a Network Stream on page 19), encode it, and pass it to Helix Server, bypassing the functionality on this page. MPEGTS Live live Allows Helix Server to receive a live stream from the Helix Broadcaster encoder. See Receiving an Encoder Stream on page 64. Windows Media Live live Receives a broadcast stream from certain versions of Windows Media Encoder. HLS Time Shifting live Allows a customized HLS client to seek backward and forward through a live stream. (Table Page 1 of 2) 56
CHAPTER 5: Helix Server Distribution Page Area Purpose live Broadcast Archiving Encoder Redundancy live Broadcasting Pages (continued) Archives a live H.264/AAC stream as an MPEG-4 file. You can then stream the archive as an on-demand clip. The feature includes HTTP APIs that allow you to control archiving and delete archives that are no longer needed. Allows multiple encoder connections for the same stream. This is not used if Helix Broadcaster generates the live stream. (Table Page 2 of 2) The feature set-up pages under Distribution control advanced broadcasting features. Distribution Pages Page Area Purpose Transmitter live Sends a live stream to another Helix Server or a group of Helix Servers. Receiver live Receives a live stream from another Helix Server. HLS Push live Uploads the HLS format (segments and playlists) of a live stream to certain content distribution networks. RTMP Push live Allows Helix Server to use RTMP to push an H.264/AAC stream to another Helix Server or a Flash server, as well as to certain content distribution networks. Scalable Multicasting Back-Channel Mcasting Windows Media Mcasting Session Announcement live live live live Multicasts a live stream to RTSP media players on a multicast-enabled network. Multicasts a live stream to RealPlayers over RTSP on a multicast-enabled network. Multicasts live Windows Media to Windows Media Player. Publicizes scalable multicasts. Content The Content pages define general features of on-demand content viewing and distribution. Content Pages Page Area Purpose Content Caching VOD Distributes on-demand content between Helix Servers. ISP Hosting VOD Sets up user-specific areas for on-demand RTSP streaming. This typically does not need to be changed. Content Browsing live/vod Shows on-demand files available for streaming. You can also use this feature to see which HLS and DASH segments for live broadcasts have been written to disk in the Segment Library area. View Source live/vod Controls the stream information sent to RealPlayer. This typically does not need to be modified. 57
CHAPTER 5: Helix Server Security Features in the Security section restrict access to Helix Server based on IP address or user name and password authentication. Security Pages Page Area Purpose Access Control live/vod Limits media player access by blacklisting or whitelisting IP addresses. User Databases live/vod Defines databases used with authentication. Authentication live/vod Sets user names and passwords used with desktop media players such as RealPlayer and QuickTime Player. Commerce Rules live/vod Defines rules that restrict access by authenticated media players. SSL Certificates live/vod Sets the location of certificates used with secure HTTP. Monitoring The Monitoring pages organize the features that allow you to monitor server activity and define reports. Monitoring Pages Page Area Purpose Server Monitor live/vod Shows incoming and outgoing connections. See Monitoring Streams on page 66. Basic Logging live/vod Defines the basic access log. Advanced Logging live/vod Allows you to define client access reports and direct the output to a file or an HTTP/TCP/UDP socket. SNMP Setup live/vod Defines SNMP monitoring. This feature is available through Helix Broadcaster under the Apps Setup tab. Helix Server File System You can access the Helix Server file system using SSH or FTP from the command line. From Windows, you can use an SSH client such as PuTTY or an FTP client such as WinSCP to view the file system. For FTP access to work, the FTP service must be running as described in Configuring FTP Access on page 17. The following figure illustrates the file system depicted in the WinSCP client. 58
CHAPTER 5: Helix Server Helix Server File System For More Information: For more about the file system organizaton, refer to the online help topic Server Operation > Server Files and Directories. Configuration File Certificate Files The Helix Server configuration file (rmserver.cfg) is stored in an encrypted partition. Direct access to the configuration file is not available through the Helix Broadcaster file system. For any configuration changes that cannot be made through the Helix Administrator interface, you can edit the configuration file by opening the following Helix Broadcaster URL in your browser: https://helix_broadcaster_address/helixadvanced.php For example: https://98.111.12.114/helixadvanced.php This URL displays a text box in which you can directly edit the configuration settings. Click the Update button to write the changes to the configuration file. In most cases, you will need to restart Helix Server after making configuration changes. You can do this through the Helix Control palette (see page 53). For More Information: The Helix Administrator online help topic Configuration File explains the configuration file syntax and variables. A Certificates directory contains 2048-bit security keys and a certificate signing request (.csr file). These certificates are used when Helix Server delivers content to media clients over secure HTTP (HTTPS), not for logging into the Helix Broadcaster interface. A certificate signing authority can use this request file to validate the identity of your Helix Server for secure HTTP transactions and to provide you with officially signed certificates. 59
CHAPTER 5: Helix Server Tip: You can learn more about the signing process at the Web site of a signing authority such as http://www.verisign.com/. RealNetworks does not endorse the use of any specific signing authority. For More Information: The web server components of Helix Broadcaster use different sets of certificates as described in the section SSL Certificates on page 15. Certificate Location After you log into Helix Broadcaster using FTP, the path to the certificates is: helix-server/certificates When you receive officially signed certificates from a signing authority, you can copy the new certificates to this location. If you choose a different location, update the file paths in the Helix Server page Delivery Setup > Security > SSL Certificates. Self-Signed Certificates Until you receive a response from a signing authority, your certificates are self-signed. These certificates will function with HTTPS requests. However, note the following about using selfsigned certificates: Browsers warn the user that the server is not trusted. Users may then choose to add an exception for the server. HTTPS requests for content segmented for HLS and DASH clients do not work with selfsigned certificates. 60
Chapter 6: STREAM DELIVERY CHAPTER 6 Helix Server can deliver a live H.264/AAC stream encoded by Helix Broadcaster to media clients, formatting the content stream as required by the client and using the client s preferred streaming protocol, whether HTTP, RTMP, or RTSP. This chapter explains how to create URLs that allow you to deliver streams to popular media clients. Bandwidth Constraints In standard broadcasting (also called unicasting), each client stream uses bandwidth, so you are limited by Helix Broadcaster s available, outgoing bandwidth. Unicasting from a single Helix Broadcaster is generally suited for light- to medium-volume broadcasts. For events with a large number of viewers, you can use splitting, multicasting, or a combination of the two to deliver a large number of broadcast streams or to conserve outgoing bandwidth. For More Information: For more about multicasting and splitting, refer to the online help category Helix Administrator > Broadcast Distribution. URL Components Helix Server determines how to deliver a live stream to a media client based on the format of the request URL. For each client, the encoded data must be H.264/AAC, but the data packaging and delivery protocol may vary based on the client s requirements. The following is the basic structure of a media request URL: protocol://address:port/client_mount_point/broadcast_mount_point/stream_name Protocol The URL must begin with the protocol designation. A port value is required if Helix Server does not use the default port for the specified protocol. http:// https:// rtmp:// rtsp:// HyperText Transfer Protocol for delivering content to HLS and DASH media clients. Secure Hypertext Transfer Protocol, the encrypted variation of HTTP. Real-Time Messaging Protocol for Flash clients. Real-Time Streaming Protocol for RealMedia, 3GPP, and MPEG-4 clients. Address An IPv4 address or a domain name indicates the network location of Helix Server. If Helix Broadcaster does not have a domain name assigned to it, use one of the IP addresses defined under System Setup > Network Setup. By default, Helix Server binds to all configured addresses, 61
CHAPTER 6: Stream Delivery using the same protocol ports on each address. Examples in this guide use the following domain name: rtmp://helixbroadcaster.example.com An example of an IP address in a URL is: rtmp://163.112.11.12 If the protocol requires a port value, add the value after the domain name or IP address, separating the two with a colon: http://helixbroadcaster.example.com:88 OR http://163.112.11.12:88 Tip: When requesting content locally, such as with the Flash sample player (see page 70), you can use the localhost address of 127.0.0.1. Ports Protocol port values are defined on Helix Server as the following. With standard port values, the port number does not have to be included with the URL. HTTP HTTPS RTMP RTSP 88 (nonstandard). To request content, clients typically use 80 for the HTTP port, but Helix Server is configured to use port 88, which must be specified in the URL after the address. 444 (nonstandard). The default port for secure HTTP is 443, but Helix Server is configured to use port 444, which must be specified in the URL after the address. 1935 (standard). Helix Server uses the standard port for RTMP, which is 1935. The port value typically does not need to be included in request URLs. 554 (standard). Helix Server uses the standard port for RTSP, which is 554. The port value typically does not need to be included in request URLs. Client Mount Points Note: Port values are set in the Helix Broadcaster interface on the Setup > Ports page. You can choose different port values, but do not set the HTTP and HTTPS ports to the standard values of 80 and 443, respectively. Ports 80 and 443 are used for other HTTP-based activity in Helix Broadcaster. A client mount point is a virtual path that follows the address. It indicates the type of client requesting the stream. A client mount point is necessary for some (but not all) types of media requests. dashgen flashgen A /dashgen/ mount point in a URL indicates that the request is being made by a media client that supports Dynamic Adaptive Streaming (DASH) over HTTP. For delivery details, see Delivering Content to HLS and DASH Clients on page 67. A /flashgen/ mount point is used with an HTTP URL when multi-rate content is delivered to Flash Player. See Multi-Rate Content for Flash on page 70. 62
CHAPTER 6: Stream Delivery m3ugen sdpgen An /m3ugen/ in URLs indicates that the request is being made by a media client that supports HTTP Live Streaming (HLS), such as an Apple iphone or ipad. For delivery details, see Delivering Content to HLS and DASH Clients on page 67. A /sdpgen/ mount point can be used with an HTTP URL to deliver content to an RTSP media player. It is useful if a browser makes the request and is not configured to launch an RTSP player when the user clicks an RTSP URL. See Streaming to RTSP Clients on page 71. For More Information: See also Direct HLS and DASH Requests on page 63. For more about client mount points, refer to the online help topic Content and Links > Predefined Mount Points > Client Mount Points. Broadcast Mount Points The broadcast mount point directs the media client to the live stream. Broadcast mount points can also be used to reformat a stream for use with a different streaming protocol. mptslive rtmplive rtsplive All live streams created by Helix Broadcaster and delivered by Helix Server include the /mptslive/ mount point. An /rtmplive/ mount point precedes the /mptslive/ mount point in the URL when the stream is delivered to Flash Player. See Streaming to Flash Players on page 70. The /rtsplive/ mount point precedes the /mptslive/ mount point in the URL when the stream is delivered to an RTSP media player. See Streaming to RTSP Clients on page 71. For More Information: For more about broadcast mount points, refer to the online help topic Content and Links > Predefined Mount Points > Broadcast Mount Points. Stream Name The last component in the URL is the stream name, which is defined on Helix Server as explained in the following section. A stream name is usually a single word such as camera. Direct HLS and DASH Requests The /m3ugen/ and /dashgen/ client mount points described on page 62 use the stream name to redirect the media player to a playlist that includes the.m3u8 or.mp4.mpd file extension. Some HLS and DASH media clients may not follow a redirection request or may require the playlist file extension in the URL. In these cases, you can link directly to the playlist. Note: When you use the Helix Media Server output format, Helix Broadcaster provides sample URLs for the HLS and DASH playlists (see page 35). You can use those direct URLs or substitute client mount point URLs depending on your media player audience. 63
CHAPTER 6: Stream Delivery HLS Playlist URL Format HLS playlists are generated in the Segments/HLS_TS directory of the Helix Server file system (see page 58). The following table shows the difference between a link that uses the /m3ugen/ mount point and one that points directly to the playlist: Client Mount Point http://98.111.12.114:88/m3ugen/mptslive/camera Direct Link http://98.111.12.114:88/segments/hls_ts/mptslive/camera.m3u8 For More Information: See the Helix Server online help topic Media Types > HLS Clients > HLS File Names. DASH Playlist URL Format Playlists for DASH segments in the MP4 (ISO-BMFF) format are generated in the Segments/DASH_MP4 directory of the Helix Server file system (see page 58). The following table shows the difference between a link that uses the /dashgen/ mount point and one that points directly to the playlist: Client Mount Point http://98.111.12.114:88/dashgen/mptslive/camera Direct Link http://98.111.12.114:88/segments/dash_mp4/mptslive/camera.mp4.mpd For More Information: See the Helix Server online help topic Media Types > DASH Clients > DASH File Names. Receiving an Encoder Stream The following procedure explains how to configure Helix Server to receive a Helix Broadcaster stream. As explained in Output Format on page 31, this setup is performed automatically if you choose this output method: Helix Media Server (HLS, RTSP, RTMP, and Dash) You must perform the Helix Server setup manually if you are using either of the following output methods: UDP with Transport Stream (TS) envelope UDP/RTP with Low Latency Transport Stream (TS) envelope To configure Helix Server to receive an encoded H.264/AAC stream: 1. Click the Delivery Setup tab. 2. Click the Broadcasting category. 3. Choose MPEG2TS Live. The following figure shows the portion of the Helix Server dialog necessary to configure an MPEG-2 transport stream. 64
CHAPTER 6: Stream Delivery MPEG-2 Transport Stream Setup Tip: The global values at the top of the dialog typically do not need to be changed. You can learn more about these values by clicking the Help link at the top of the dialog. 4. In the Sources list, click the "+" icon and edit the default text that appears in the Source Name box so that the entry describes the stream. The description is for your reference and is not used in URLs. Note: The other settings in the dialog apply only to the source highlighted in the Sources box. Warning! Do not include periods in a source name. 5. Select Yes for Enable Source to enable Helix Server to acquire this stream from the Helix Broadcaster encoder. Tip: As long as the source is enabled, Helix Server scans the designated address and port at the frequency (in seconds) set by Source Scan Interval at the top of the dialog. If the source is inactive for long periods, you can disable the scanning by setting No for Enable Source and clicking Apply. 6. Select Yes for Enable All Bit Rates to receive all bit rates for a multi-rate audio and video stream. Choose No if the output is single-rate. For More Information: See Multibitrate Mode on page 34. 7. In the Stream Name field, assign a name to the stream. This name must be included in the request URLs used by media players. Each stream you receive from the encoder must have a unique stream name. Optionally, you can precede the stream name with a virtual path. This allows you to use the same basic stream name when defining outputs for different devices. For example, you might set up these two stream names: ipad/camera flash/camera 8. For Unicast/Multicast Address, set the IPv4 address where Helix Server acquires the stream from the encoder. This may be either the localhost address (127.0.0.1) or a multicast address. Use the same address defined for the stream output under the Encoder Setup tab. 65
CHAPTER 6: Stream Delivery For More Information: See Destination IP on page 35 and Destination Port on page 36. 9. The Port Range field sets the Helix Server port or multicast port where the Helix Broadcaster encoder delivers stream data. Use the same port defined for the stream output under the Encoder Setup tab. Tip: To monitor a single port, specify the same port value for the starting and ending range, as in 9000-9000. 10. It is not necessary to set the remaining values for the program number, audio and video PIDs, and audio and video bit rates. 11. Click Apply at the bottom of the dialog. 12. Repeat this procedure if you need to define additional streams to acquire from the Helix Broadcaster output. Note: Once you define the stream and click Apply, Helix Server acquires the stream from the encoder within the time set by the Source Scan Interval field. For information about starting the encoder process to generate the stream, see Using the Service Control Palette on page 49. Monitoring Streams You can check if Helix Server is receiving a stream that is being encoded by clicking the Delivery Setup tab, clicking Monitoring, and choosing Server Monitor. You can also launch the server monitor in a pop-up browser window by clicking the Monitor link on the Helix Control palette while viewing the Delivery Setup tab. Monitor Link on the Helix Control Palette Once the Java-based server monitor starts, click the Connections tab at the bottom of the monitor screen. The stream name that you defined in Step 7 on page 65 appears under the Filename column. The /mptslive/ mount point (see page 63) is included to indicate that the encoded H.264/AAC media is in the MPEG-2 transport stream format. 66
CHAPTER 6: Stream Delivery Monitor Link on the Helix Control Palette Delivering Content to HLS and DASH Clients To deliver an H.264/AAC stream to DASH clients or HLS clients such as an Apple iphone or ipad, Helix Server creates a playlist and segments the content into a series of transport files, delivering these files to the HLS client using HTTP. The URL for an HLS client request uses a format like the following: http://helixbroadcaster.example.com:88/m3ugen/mptslive/camera The URL for a DASH client request uses a similar format: http://helixbroadcaster.example.com:88/dashgen/mptslive/camera The /m3ugen/ or /dashgen/ portion of the URL is a client mount point, a virtual path that instructs Helix Server to turn the original clip into the segment files. When the URL request contains one of these client mount points, Helix Server segments the content into MPEG-2 transport files (.ts) for HLS clients or MP4 segments (.m4s) for DASH clients. Each segment file encodes a portion of the stream, typically enough data to provide 4 to 10 seconds of playback. When requesting the individual transport stream files, the client refers to a playlist file that lists the segments in their playback order. HLS clients receive a text-based.m3u8 text file while DASH clients use an XML-formatted.mpd file. For More Information: You can learn more about HLS and DASH from the online help topics Media Types > HLS Clients and Media Types > DASH Clients. Enabling HLS or DASH Segmentation Helix Server provides many configuration options for HLS and DASH media delivery. The following procedure walks you through the process of verifying the basic stream setup for HLS and DASH clients. 67
CHAPTER 6: Stream Delivery HLS or DASH Setup Screen in Helix Server To enable encoder streams for HLS or DASH segmentation: 1. Click the Delivery Setup tab 2. Click the Delivery category. 3. Choose HLS Setup to configure HLS clients or DASH Setup to configure DASH clients. The preceding illustration shows the HLS setup page. The DASH setup page is nearly identical. 4. In the drop-down for Enable Segmentation, select Yes to allow the segmentation of streaming content into transport files for the media clients. 5. For Server Hostname, enter one of the Helix Broadcaster IP addresses or DNS names. Helix Server inserts this value into playlist URLs if the segment mount point uses absolute paths or encryption. Tip: Specify just the IP address or host name, as in helixbroadcaster.example.com. Helix Server fills in the protocol and port values depending on whether HTTP or HTTPS is used. 6. Set Send Playlists by HTTPS to Yes to require secure HTTP transactions (HTTPS) for playlist files. A No value transmits playlists by standard HTTP. Warning! HTTPS delivery works only with officially signed certificates. Selfsigned certificates will not function with this feature. If you do not have an officially signed certificate, leave this value set to No until you have obtained one. 68
CHAPTER 6: Stream Delivery 7. (HLS only.) If you encrypt HLS segment files, you may want to set Send Encryption Key Files by HTTPS to Yes. This enforces secure HTTP transmission of the key files used to decrypt each segment. For More Information: For details about encryption methods, refer to the online help topic Media Types > HLS Clients > HLS Segment Encryption. 8. In the Source Paths box, click the /mptslive/ entry to highlight it. 9. Select Yes for Enable Source Path to allow Helix Server to generate segments for the live streams generated by Helix Broadcaster. 10. If you select Yes for Purge Segments On Server Start, all segments created for broadcasts are deleted when Helix Server restarts. This is recommended. 11. In the Destination Mount Point drop-down list, select the /Segments/ content mount point as the place where Helix Broadcaster streams are segmented. 12. Click Apply at the bottom of the page. For More Information: The other settings in these dialogs affect how HLS or DASH segments are generated. For details about their use, refer to the online help by clicking the Help link at the top of the setup page. Tips for Streaming to HLS and DASH Clients Keep the following points in mind when delivering content to HLS or DASH clients. For details about HLS and DASH delivery, refer to the online help category Media Types. Request URLs use HTTP and a Client Mount Point Request URLs must always start with the HTTP (http://) or HTTPS (https://) protocol. They must always contain the /m3ugen/ client mount point for HLS clients and the /dashgen/ mount point for DASH clients. HTTP and HTTPS Use Nonstandard Ports Helix Server is not configured to use the standard HTTP and HTTPS ports (80 and 443). Instead, HTTP uses port 88 and HTTPS uses port 444. These port numbers must be included in request URLs for HLS and DASH clients as shown in the preceding examples. Segmentation Occurs on the First Media Request The segmentation of the live stream starts with the first client request. Additional clients can make requests using the same /m3ugen/ or /dashgen/ URL. If the segmentation process has already started, Helix Server delivers the existing playlist and segments to the media client. That is, separate sets of segments are not created for each client that makes a request using /m3ugen/ or /dashgen/. Media Segments are Purged on Restart For each broadcast, only the latest few segments are available on disk. This prevents long or continuous broadcasts from using excessive amounts of disk space. You do not need to delete the existing segments and playlists manually at the end of the broadcast. They will be purged on the next server restart. 69
CHAPTER 6: Stream Delivery The Initial Streaming Speed for HLS and DASH Clients is Selectable You can include a query string parameter in the request URL to select the initial streaming rate for HLS and DASH clients. For details, refer to the online help topic Content and Links > Rate Selection Parameters. DASH Clients can use MPEG-2 Rather than MP4 Segments The online help topic Media Types > DASH Clients > DASH Media Requests explains how to request MPEG-2 transport segments (.ts) instead of MP4 segments (.m4s) for DASH clients. Streaming to Flash Players Delivering media to Flash Player does not require any Helix Server setup. You can stream single-rate H.264/AAC live content to Flash Player version 9 and later using an RTMP URL directed toward Helix Server s RTMP port, which is 1935 by default. The /rtmplive/ mount point in the URL causes Helix Server to format the H.264/AAC stream as if it were generated by a Flash encoder: rtmp://helixbroadcaster.example.com/rtmplive/mptslive/camera Multi-Rate Content for Flash Sample Flash Player For multi-rate content, the /flashgen/ mount point is included in an HTTP URL (not an RTMP URL) to the content: http://helixbroadcaster.example.com:88/flashgen/rtmplive/mptslive/camera The /flashgen/ mount point causes Helix Server to generate a file that lists the multi-rate content as a set of single-rate streams, one for each encoded bandwidth. Using this file, Flash Player chooses the appropriate rate based on its bandwidth conditions. It then requests the media using the RTMP protocol. Helix Server includes a Flash sample player that you can use to test Flash streaming. On the Delivery Setup tab, click the Samples link on the Helix Control palette. Samples Link on the Helix Control Palette This launches a new browser page with a samples library. Click the Flash Player link to pop up an embedded Flash Player that you can use to test Flash-compatible content on Helix Server. 70
CHAPTER 6: Stream Delivery Sample Flash Player Streaming to RTSP Clients Delivering media to an RTSP player does not require any Helix Server setup. To receive a live H.264/AAC broadcast over RTSP, a media client requests the stream using an RTSP URL directed toward Helix Server s RTSP port, which is 554 by default. The /rtsplive/ mount point in the URL causes Helix Server to format the stream for RTSP delivery: rtsp://helixbroadcaster.example.com/rtsplive/mptslive/camera For Web pages rendered in browsers that do not automatically redirect an RTSP link to a media player, request URLs can use the HTTP protocol and include the /sdpgen/ mount point: http://helixbroadcaster.example.com:88/sdpgen/rtsplive/mptslive/camera When /sdpgen/ is used, the MIME stream in the HTTP response sent by Helix Server causes the user s browser to launch the media player and pass it the RTSP URL to the clip. 71
Appendix A: CONSOLE SETUP APPENDIX A You can display the Helix Broadcaster console menu directly from the hardware or by using secure shell (SSH). Using the console, you can perform many of the setup functions described in Chapter 2. This appendix explains how to use the console to change the basic networking configuration. Connecting to the Hardware If you need to set the IP address or DHCP settings before you place Helix Broadcaster on your network, you can plug the following into the back of the Helix Broadcaster unit: monitor with a VGA connector keyboard with either a USB or a PS/2 connector Monitor and Keyboard Connectors Using Secure Shell Windows PuTTY Client If Helix Broadcaster is accessible on your network, you can use secure shell (SSH) to log in to the console. The following sections explain methods of using SSH from Windows or Linux. On Windows, you can use the PuTTY client, which you can download from your preferred shareware site or directly from http://www.putty.org/. After you install and launch the client, configure access using SSH on port 22. Unless the IP address has been changed already, log in with the default IP address listed on the back of the Helix Broadcaster hardware. PuTTY Windows Client Setup 72
APPENDIX A: Console Setup Log in with the admin account, which you can specify along with the IP address: admin@helixbroadcasteraddress For example: admin@10.125.15.200 Once you reach the machine with SSH, Helix Broadcaster prompts for the password. Unless it has been changed already, the default password is: admin Linux SSH On Linux, you can use SSH from any command-line shell: 1. Open a command shell. 2. Unless the IP address has been changed, log in with the default IP address listed on the back of the Helix Broadcaster hardware: ssh admin@helixbroadcasteraddress For example: ssh admin@10.125.15.200 3. Helix Broadcaster prompts for the password. Unless it has been changed already, the default password is: admin Console Menu Once you access Helix Broadcaster directly or by SSH, the main console menu appears. Console Main Menu Note the following about using the console: Select main menu or submenu options by entering the letter, number, or combination that represents the option, such as pressing 1 for Edit Network Settings. You can navigate through setup screens using the arrow keys on your keyboard. Delete existing information in setup screens using the Backspace key. A carat (^) refers to the Ctrl key. For example, ^X means to press Ctrl and the letter x. 73
APPENDIX A: Console Setup Press ^X to exit a setup screen. If you made changes, the editor prompts you to press Y to save the changes or N to discard them. For More Information: The console uses the Nano text editor. For a command reference, browse to http://www.nano-editor.org/dist/v1.2/nano.html. Network Settings Showing IP Addresses Changing IP Addresses The following entries on the main menu allow you to view and change network settings: 1) Edit Network Settings 4) Show IP Addresses Note: After you change the network configuration, you may need to enter r at the main menu to reboot the machine and put the changes into effect. Enter 4 at the main menu to display the current IP address settings. The WAN address (see page 9) is listed as eth0. Additional IP addresses are eth1, eth2, and so on. For example, the IPv4 WAN address is shown below in bold:... 3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:60:6e:44:0c:0a brd ff:ff:ff:ff:ff:ff inet 10.125.15.250/24 brd 10.125.15.255 scope global eth0 inet6 fe80::a60:6eff:fe44:c0a/64 scope link valid_lft forever preferred_lft forever... Enter 1 at the main menu to change an IP address. To set the WAN address (see page 9), enter e0 (the second character is a zero) at the submenu: e0) Edit WAN Settings (ctrl-x to exit) e1) Edit LAN #1 Settings g) Edit Default Gateway and DNS Settings 74
APPENDIX A: Console Setup IP Address Setup Screen In the setup screen, use the arrow keys to navigate to the end of the IP address. Press Backspace to erase the characters. Enter the new address, press Ctrl+x to exit, and Y to confirm the changes. Press x to return to the main menu. Editing Network Settings Enter 1 at the main menu to change network settings such as DHCP (see page 8). Enter g at the submenu: e0) Edit WAN Settings (ctrl-x to exit) e1) Edit LAN #1 Settings g) Edit Default Gateway and DNS Settings Networking Setup Screen In the setup screen, use the arrow keys to navigate to the end of a field and press Backspace to erase the existing characters. Press Ctrl+x to exit. Press x to return to the main menu. 75
Appendix B: ENCODING TIPS APPENDIX B This appendix provide supplemental encoding information that will help you to create a specific type of encoded output. Low-Latency Encoding The section Output Format on page 31 explains how to set the output to create a low-latency UDP stream. The following sections explain the buffering values and other settings you must set to achieve a throughput with low latency. Buffer Sizes for Low Latency For a standard-latency stream, the buffer default values are typically adequate. For a lowlatency stream, set the following buffering values: For the SDI/HDMI input, set Input Buffer Size (see page 25) to 200. The default value is 800. For each SDI/HDMI output, set Output Buffer Size to 150. You can lower this value if necessary to achieve more latency reduction, but do not set it below 100. The default value is 300. For each SDI/HDMI output, set Mux Cache to 150. You can lower this value if necessary to achieve more latency reduction, but do not set it below 100. The default value is 200. Video Codec Settings for Low Latency When you define your video streams, choose Constant Bit Rate for the video transcoding method, which is described on page 43. All other necessary video codec options will be set automatically. Low-Latency Delivery Characteristics Enabling low-latency delivery results in a lower end-to-end delivery time from the encoder to the media clients. However, many factors can affect how long it takes a media client to render a stream: network topography The distance between the media client and Helix Broadcaster affects how quickly the stream is received by the client. media client type RTSP and RTMP clients can typically render live broadcasts faster because Helix Server delivers the media in a continuous stream. Each client that joins the broadcast receives a copy of the stream in its current state. 76
APPENDIX B: Encoding Tips For HLS and DASH clients, Helix Server writes stream data to individual transport files and constructs a playlist that it sends to each client, updating the playlist as the broadcast continues. For this reason, the first transport file an HLS or DASH client receives may contain stream data that was encoded several seconds earlier. media client buffering All media clients buffer a certain amount of the data stream before rendering and displaying the stream to the user. The buffering may last a few hundred milliseconds to several seconds depending on the media player settings. Rate Shifting Characteristics When you create an output, you can create a multi-rate stream as described in Multibitrate Mode on page 34. The primary purpose of creating a multi-rate stream is to allow a media player to shift streaming rates based on changing bandwidth availability. The following sections provide background about multi-rate streams. Bandwidths for Rate Shifting When you create a multi-rate stream, chose the audience streaming rates carefully. If rates are too close together, the media player may shift rates continuously, which creates a poor user experience. If rates are too far apart, the media player may not be able to shift rates at points where doing so would be advantageous. You may need to experiment with settings until you find audiences that work well for your viewers and your targeted network. To start, follow these principles: Set the top streaming rate to no more than 90 percent of the network throughput. To target a 500 Kbps maximum network speed, for example, set the highest-rate audience to stream at no more than 450 Kbps (video plus audio). This allows for network and stream overhead. Set additional streams at 80 percent multiples to allow the media player can shift to this audience if the network throughput slows. For example, companion streams for a 450 Kbps stream would be approximately 360 Kbps and 288 Kbps. Video Stream Characteristics for Rate Shifting For each video stream, the streaming rate and the frame rate may vary. To enable rate-shifting by the media client, all video streams in a multi-rate output must share the following settings: video codec (see page 42) frame size (see page 43) scaling mode (see page 44) Audio Stream Characteristics for Rate Shifting For each audio stream, the streaming rate may vary. To enable rate-shifting and a consistent user experience, all audio streams in a multi-rate output must share the following settings: audio codec (see page 47) 77
APPENDIX B: Encoding Tips sampling rate (see page 48) audio channels (see page 48) audio gain (see page 48) AAC profile (see page 48) 78