Adobe Media Server applications have a client-server architecture. The client code is written in ActionScript (1, 2, or 3) or Objective-C and runs on all supported platforms. Adobe Media Server can also stream media to Apple HTTP Live Streaming clients such as iOS devices.
The server code is written in Server-Side ActionScript, which is like ActionScript 1.0.
Adobe Media Server Standard provides four streaming services: live, vod (video on demand), livepkgr (HTTP streaming), and multicast (RTMFP). Streaming services are prebuilt server-side applications. Each streaming service offers prebuilt sample clients as well as a client SDK that developers can use to write their own clients.
For tutorials that get you started streaming quickly, see Getting started streaming media.
To create real-time collaboration application, use RTMP and the classic client-server model, or use RTMFP to create peer-assisted networking applications. Flash Player 10.1 and AIR 2 support Real-Time Media Flow Protocol (RTMFP)and RTMFP groups. RTMFP is built on User Datagram Protocol (UDP). RTMP is built on Transmission Control Protocol (TCP). UDP provides lower latency than TCP. It also enables end-to-end peering—that is, direct data transmission between two clients. Clients make an initial connection to Adobe Media Server. The server acts as an introducer to connect to the client to a group. Once connected to a group, members of the group exchange data among themselves without passing it back to the server.
The server and the client can communicate over a persistent connection using Real-Time Messaging Protocol (RTMP). RTMP is a reliable TCP/IP protocol for streaming and data services. In a typical scenario, a web server delivers the client over HTTP. The client creates a socket connection to Adobe Media Server over RTMP. The connection allows data to stream between client and server in real time. Adobe Media Server installs with Apache web server by default. You can serve HTTP content from this web server. Alternatively, you can choose to exclude Apache from the Adobe Media Server installation and serve SWF and HTML content from any external web server.
Adobe Media Server Extended, Adobe Media Server Professional, and Adobe Media Server Starter include the same streaming services as Adobe Media Server Standard. In addition, they provide an SDK that lets developers write both the client-side and the server-side components of media applications to create interactive, two-way applications. These server editions also offer a plug‑in SDK. This SDK lets developers write C++ plug‑ins to extend the core functionality of the server.
Adobe Media Server Standard supports the Access plug-in only.
Adobe Media Server includes Apache 2.2.21 HTTP Server or later . If you install and enable Apache, you can deliver client SWF files, container HTML files, and all media assets from the same server.
Use Adobe Media Server with Apache HTTP Server to deliver content using Adobe HTTP Dynamic Streaming and Apple HTTP Live Streaming.
By default, Apache server listens to HTTP requests on port 80. For more information, see Configure ports for HTTP streaming. You can configure proxying in the ams.ini file. For more information, see Configuring Apache HTTP Server.
Adobe Media Server Extended, Adobe Media Server Professional, and Adobe Media Server Starter can host an unlimited number of applications. Adobe Media Server Standard can host an unlimited number of instances of the live and vod services.
Adobe Media Server Standard is restricted to running services provided by Adobe.
For example, Adobe Media Server Professional could host a web conferencing application, a video blogging application, a video chat application, and a multiplayer game. The server can also host the live and vod services. You can create multiple instances of each of these applications. Instances allow groups of people access to the same application without having the groups interact with each other. For example, you could create a video chat application with rooms for different topics.
To create an application, create a folder on the server with the name of the application. To connect to the server, write code in the client that calls the NetConnection.connect() method and passes it the name of the application.
The server has a root applications folder located at RootInstall/applications, by default. To create an application, create a subfolder in the root applications folder. For example, RootInstall/applications/mySampleApp creates an application called “mySampleApp”. To connect to mySampleApp, call myNetConnection.connect("rtmp://serverName/mySampleApp") from the client.
To create instances of an application, create subfolders within the folder of the application. For example, RootInstall/applications/mySampleApp/instance1 creates an instance of the mySampleApp application. To connect to this instance, call myNetConnection.connect("rtmp://serverName.mySampleApp/instance1") from the client.
The server administrator can change the location of the root applications folder. The server administrator can also divide the server into multiple adaptors and virtual hosts, and each virtual host can have its own applications folder.
Adobe Media Server applications use a simple, yet powerful, distributed data model based on shared objects. Both client-side ActionScript and Server-Side ActionScript have a SharedObject class that lets developers share data between clients connected to a server.
There are two types of shared objects: local and remote. Local shared objects are stored on the client computer and remote shared objects are stored on the server. Both local and remote shared objects can be either temporary or persistent.
Local shared objects are like cookies: they save data to a user’s computer for offline access, or for saving preferences. Local shared objects are a feature of Flash Player and do not require Adobe Media Server.
Remote shared objects are managed and stored by the server. Developers can use remote shared objects for messaging, data synchronization, and storing data. Clients connect to a remote shared object and receive updates whenever a change is made to that shared object. Messages can be sent to all clients connected to a remote shared object.
Remote shared objects are not supported by Adobe Media Server Standard.
Adobe Media Server Extended, Adobe Media Server Professional, and Adobe Media Server Starter support two-way, asynchronous, remote method invocation. Clients can invoke methods defined on the server, and the server can invoke methods on clients connected to the server. In client-side script, call the NetConnection.call() method to invoke a method defined on a server-side Client object. In a server-side script, call the Client.call() method to invoke a method defined on the client-side NetConnection object. You can also call NetConnection.call() in a server-side script to invoke a method on a remote server.
Adobe Media Server Standard does not support this feature.
Adobe Media Server can interact with external data sources, such as web services and relational databases, or with other Adobe Media Server applications. For example, write Server-Side ActionScript to connect to a web service or to a ColdFusion® application to retrieve a list of names and phone numbers. Place the results of the query in a shared object.
For more information, see Server-Side ActionScript Language Reference.
AMF (Action Message Format) is binary file format representing a serialized ActionScript object. Use to send ActionScript objects over the Internet. There are two versions of AMF: AMF 0 (ActionScript 1.0 and 2.0) and AMF 3 (ActionScript 3.0). The following table shows which server versions and player versions added support for these two AMF versions:
Flash Player, AIR, and Flash Lite clients can use any supported client-side ActionScript API to interact with external sources as well; Adobe Media Server doesn’t limit this functionality. For more information, see ActionScript 3.0 Reference for the Adobe Flash Platform.