Red5 - Reference Documentation

Red5 Open Source Flash Server

Paul Gregoire

Daniel Rossi

0.8

Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically.

2011-07-25


1. Introduction
2. What's new in Red5 0.8 RC1
2.1. 0.8 Public Beta Release
I. Getting Started
3. Frequently Asked Questions
3.1. Questions
3.1.1. GENERAL
3.1.2. DOCUMENTATION
3.1.3. CONFIGURATION
3.1.4. STREAMING
3.1.5. CODECS
3.1.6. DATABASE
3.1.7. SCRIPTING
3.1.8. SHARED OBJECTS
3.1.9. LEGAL STUFF
3.1.10. Red5 WAR version
3.1.11. MISC
3.1.12. TROUBLESHOOTING
3.2. Answers
3.2.1. GENERAL
3.2.1.1. Project Managers
3.2.1.2. Active Members
3.2.1.3. Inactive Members
3.2.2. DOCUMENTATION
3.2.3. CONFIGURATION
3.2.4. STREAMING
3.2.5. CODECS
3.2.6. DATABASE
3.2.7. SCRIPTING
3.2.8. SHARED OBJECTS
3.2.9. LEGAL STUFF
3.2.10. Red5 WAR version
3.2.11. MISC
3.2.12. TROUBLESHOOTING
4. Configuration Files
4.1. Directory "conf"
4.1.1. jetty.xml
4.1.2. keystore
4.1.3. log4j.properties
4.1.4. realm.properties (Jetty)
4.1.5. tomcat-users.xml (Tomcat)
4.1.6. red5.globals
4.1.7. red5.properties
4.1.8. red5.xml
4.1.9. red5-common.xml
4.1.10. red5-core.xml
4.1.11. red5-rtmpt.xml
4.1.12. web.xml (Tomcat)
4.1.13. web-default.xml (Jetty)
4.2. Webapp config directory
4.2.1. red5-web.xml
5. Migration Guide
5.1. Application callbacks
5.1.1. Interface IScopeHandler
5.1.2. Class ApplicationAdapter
5.1.2.1. Execution order of connection methods
5.1.3. Accepting / rejecting clients
5.2. Current connection and client
5.3. Additional handlers
5.3.1. Handlers in configuration files
5.3.2. Handlers from application code
5.4. Calls to client methods
5.5. SharedObjects
5.5.1. Serverside change listeners
5.5.2. Changing from application code
5.6. Persistence
5.7. Periodic events
5.8. Remoting
5.8.1. Remoting server
5.8.2. Remoting client
5.9. Streams
6. Red5 Libraries
6.1. Spring scripting support
6.2. Groovy
6.3. Beanshell
6.4. Ruby
6.5. Jython / Python
6.6. Java 5 Libraries
6.7. Script related JSR's
6.8. Javascript / Rhino
7. Building Red5
7.1. Build Environment Setup
7.1.1. Ant
7.1.2. Java
7.1.3. Red5
7.2. Building
7.2.1. Getting Red5 Source
7.2.2. Getting Red5 Demo Applications Source
7.2.3. Getting Red5 Flash Demo Source
7.2.4. Running the ant build
7.2.5. Current Ant Targets
7.2.6. Ant and Ivy
7.3. How to build with eclipse
7.3.1. Recommended Eclipse Plugins
7.3.2. Importing the Red5 Project
7.3.3. Updating the Red5 source
7.3.4. Debugging Red5 in Eclipse
7.3.5. Ant, Ivy and Eclipse
8. Releasing Red5
9. System Requirements For Red5
9.1. Java Memory Tweaking
II. Red5 Core Technologies
10. Create new applications in Red5
10.1. The application directory
10.2. Configuration
10.2.1. webAppRootKey
10.3. Handler configuration
10.3.1. Context
10.3.2. Scopes
10.4. Handlers
10.5. Logging
11. Deploying Red5 To Tomcat
11.1. Preface
11.2. Deployment
11.3. Context descriptors
11.4. Red5 Configuration
11.4.1. Spring contexts
11.4.2. Default context
11.4.3. Web context
11.4.4. External applications
11.5. Creating and deploying your application
11.5.1. Remote application
11.5.2. Local application
11.5.3. Example Source
11.6. Additional web configuration
11.7. Troubleshooting
11.8. Definitions
11.9. Bibliography
12. Customize Stream Paths
12.1. Filename generator service
12.2. Custom generator
12.3. Activate custom generator
12.4. Change paths through configuration
13. Security
13.1. Stream Security
13.1.1. Stream playback security
13.1.2. Stream publishing security
14. Scripting Implementations
14.1. I. Select a scripting implementation
14.2. II. Configuring Spring
14.3. III. Creating an application script
14.3.1. 1. Application adapter
14.3.2. 2. Application services
14.4. IV. Creating your own interpreter
14.5. V. Links with scripting information
15. Clustering
15.1. Limitations
15.2. Server Configuration
15.2.1. Configuration Files
15.3. Configure Edge Server
15.3.1. Edge on a different Server from Origin
15.3.2. Edge on the same Server as Origin
15.4. Configure Origin Server
15.5. Use Your Appliation
16. Management
16.1. JMX Classes
16.2. Spring configuration
16.3. RMI Authentication
16.4. JMX / RMI / SSL
16.5. jConsole / JMX Client
16.5.1. Local Management
16.5.2. Remote Management
16.5.3. SSL Remote Management
16.6. Links
17. List of Custom bean definitions
17.1. how to use the custom settings
17.2. Bean Definitions
18. Red5 Demo Applications
18.1. Getting Red5 Demo Applications Server-Side and Client-Side Source
18.2. List Of Available Demo Applications (Server Side)
18.3. List Of Available Demo Applications (Client Side)
18.4. Environment Build Setup
18.5. Building The Demo Application
18.6. Updating The Applications Registry
18.7. Bandwidth Check Application
18.7.1. Source Code
18.7.2. Bandwidth Check Service Methods
18.7.3. ServerClientDetection
18.7.3.1. Client Side Download Detection
18.7.4. ClientServerDetection
19. Testing Red5
19.1. Overview
19.2. How to Start Testing Without Reading This Chapter
19.3. Who Should Read This Chapter In Depth?
19.4. Red5 Testing Strategy
19.5. Red5 Testing Props
19.6. Unit Testing
19.6.1. Purpose
19.6.2. Technology
19.6.3. Running Tests
19.6.4. Creating New Tests
19.6.5. Running unit tests from eclipse
19.6.6. Guidelines for New Unit Tests
19.6.7. Submitting New Unit Tests
19.6.8. Suggesting New Unit Tests
19.7. Integration Testing
19.7.1. Purpose
19.8. System Testing
19.8.1. Purpose
19.9. Technology
19.10. Running Tests
19.11. Creating New Tests
19.12. A Sample System Test
19.13. Guidelines for New System Tests
19.14. Submitting New System Tests
19.15. Suggesting New System Tests
19.16. Continuous Integration
19.16.1. Overview
19.16.2. Technology
19.16.3. How To Run The Continuous Build
19.16.4. How to Submit New Jobs for Continuous Building
19.17. How you can help with Continuous Building
19.17.1. How to Set up a Continuous Build Server
A. RTMP Specification
B. RTMPT Specification
B.1. URLs
B.2. Request / Response
B.3. Polling interval
B.4. Initial connect (command "open")
B.5. Client updates (command "send")
B.6. Polling requests (command "idle")
B.7. Disconnect of a session (command "close")
C. FLV
D. H264
D.1. Does Red5 plan to support H.264/ACC streams in the next release, maybe 0.7.1?
D.2. why are .mp4 files also listed in oflaDemo webapp grid as possible streams?
D.3. howto convert to h.264 using ffmpeg?
D.4. Does anyone have a link to an explaination of h264 licensing?
D.5. Someone already created a demo?
D.6. Some more Info about Seek and possible solutions
D.7. Are audio files supported?
D.8. How do I request an h264 file?
D.9. Does red5 support h264 live streaming?
D.10. Links
E. Red5 Changelog
E.1. Red5 0.9.0 (unreleased)
E.2. Red5 0.8.0 (2009-06-04)
E.3. Red5 0.8.0 RC2 (2009-02-07)
E.4. Red5 0.8.0 RC1 (2008-09-29)
E.5. Red5 0.7.0(2008-02-23)
E.6. Red5 0.6.3(2007-09-17)
E.7. Red5 0.6.2(2007-06-17)
E.8. Red5 0.6.1(2007-05-23)
E.9. Red5 0.6(2007-04-23)
E.10. Red5 0.6rc3 (2007-04-11)
E.11. Red5 0.6rc2 (2007-02-12)
E.12. Red5 0.6rc1 (2006-10-30)
E.13. Red5 0.5(2006-07-25)
E.14. Red5 0.5rc1 (2006-07-11)
E.15. Red5 0.4.1(2006-05-01)
E.16. Red5 0.4(2006-04-20)
E.17. Red5 0.3(2006-02-21)
E.18. Red5 0.2(2005-10-21)