Die Flexperten Herrlich & Ramuschkat

Archive for the 'FMS3' Category

Synx Platform (Micro-Architektur für Entwicklung von Apps mit Flash Media Server)

Die Synx Platform ist eine micro-architecture für das Entwicklen von Flash / Flex Applikationen, die mit dem Flash Media Server zusammenarbeiten sollen. Es werden Video- und Audio-Streaming sowie Collaborative Features unterstützt, so dass die Entwicklung mehr mainless wird. Synx ist Open Source und Free to use.

http://www.synxplatform.com/

Flash Media Live Encoder 3.1 ist released

Der für Linzenzinhaber einer Flash Media Server Verison kostenfrei Flash Media Live Encoder 3.1 wurde release. Neben ein wenig Bug-Fixing ist das eigentliche Highlight, dass es nun auch eine Version für Max OS X gibt. Die Mac-Version arbeitet problemlos mit der iSight und anderen Firewire Kameras.

http://www.adobe.com/products/flashmediaserver/flashmediaencoder/

Amazon bietet FMS powered Cloud Streaming an

Das ist bisher völlig an mir vorbei gegangen … und es wurde von Adobe auch überhaupt nicht so richtig öffentlich gemacht … mehr dazu hier:

http://www.flashcomguru.com/index.cfm/2009/12/16/amazon-aws-fms-streaming

http://aws.amazon.com/about-aws/whats-new/2009/12/15/announcing-cloudfront-streaming/

FlashMedia Server 3.5.3 ist verfügbar

Ich erlaube mir mal, den Text vom Blog von Kevin Towes (Product Manager, Adobe Flash Media Server, http://blogs.adobe.com/ktowes/) direkt hier wiederzugeben:

Today we released our 3rd service pack for Flash Media Server 3.5 (now v3.5.3). This service pack includes many bug fixes and performance improvements for DVR, Dynamic Streaming and playback. The release also includes security fixes to correct critical vulnerabilities in previous versions.

You can download the update and review the release notes here:
http://www.adobe.com/support/flashmediaserver/downloads_updaters.html

Read more »

H.264 Stream bei serverseitigem Recording umbenennen

Seit Flash Media Server Version 3.5 kann man nun auch endlich H.264 Streams serverseitig aufnehmen. Das ist nur ein bisschen Tricky, da H.264 Streams immer ein Prefix mit sich rumschleppen … hier mal ein Code (Serverseitiges Action Script und Flex) um einen Stream umzubennen.

Read more »

Adobe veröffentlicht RTMP Spezifikation

Adobe hat – wie im Januar angekündigt – die Spezifikation des RTMP Protokolls (Real Time Messaging Protokoll) veröffentlicht. RTMP ist ein TCP/IP-basiertes Protokoll, dass z.B. im Flash Media Sever und den LiveCycle Data Services ES für Realtime-Messaging und die Übertragung von Audio-/Video-Streams verwendet wird.

In der Vergangenheit wurde das RTMP-Protokoll von diversen Entwicklern “nachgebaut” und hat in Produkten wie z.B. Wowza, Red5 oder rtmpdump Einzug gehalten. Während Adobe gegen die FMS-Clones Red5 und Wowza nie vorgegangen ist, obwohl sie das bis dato proprietäre Protokoll implementiert haben, ist Adobe gegen die Entwickler von rtmpdump vor kurzem unter Berufung auf den Digital Millennium Copyright Act vorgegangen.

In der EULA findet sich demnach auch eine entsprechende Klausel zu der Problematik:

Prohibited Uses
The rights and licenses granted by Adobe in the RTMP Specification,
including those granted in the Patent License, are conditioned upon
Your agreement to use the RTMP Specification for only streaming video,
audio and/or data content and not to make, have made, use, sell, offer
to sell, import or distribute: (i) any technology that intercepts
streaming video, audio and/or data content for storage in any device
or medium; or (ii) any technology that circumvents technological
measures for the protection of audio, video and/or data content,
including any of Adobe’s secure RTMP measures. No right or license to
any Adobe intellectual property is granted for such prohibited uses.

Sinngemäß bedeutet dass, das man auf Grundlage der RTMP-Spezifikation keine Software entwickeln darf, mit der man Audio/Video-Streams mitschneiden oder DRM-Mechanismus umgehen kann. Also: RTMP – ja, RTMPe oder RTMPs – nein.

Links

Serverseitige Playlists beim FMS

Heute erreichte uns folgende Frage per Email:

Eine Frage beschäftigt mich derzeit besonders, leider finde ich so recht keine Antwort darauf. Das Streamen von Inhalten mittels einer SMIL- oder XML-Playlist über RTMP scheint ja überhaupt kein Problem zu  sein. Ich habe dies bereits mit dem JW Player erfolgreich gestestet.
Mich stört jedoch, dass eine Playlist lediglich das clientseitige Abarbeiten von Dateien bedeutet, der Benutzer kann vor- und zurückspringen. Ich möchte viel lieber einen echten Live-Stream, der von außen nicht beeinflussbar ist, also ähnlich wie ein laufendes Fernsehprogramm. Die Möglichkeit des Live-Streamings mit einer Kamera klappt ja problemlos.

Daher die Frage: Ist es mit dem FMS möglich, Videos, welche in einer Playlist arrangiert sind, ebenfalls in eine Live-Instanz (bzw. Stream) des Servers zu spielen? D.h., der Endbenutzer bekommt einen einzigen
RTMP-Link à là rtmp://www.server.de/live, welcher das laufende Programm ausgibt.

Hier die Antwort:

Ja, das lässt sich über eine sogenannte serverseitige Playlist bewerkstelligen.

Dazu muss man ein entsprechendes serverseitiges Script erstellen (und das geht nur mit der FMS Interactive Edition!), in dem man dann mittels eigener Logik die Playlist aufbaut. Die einzelnen Videos können Livestreams und VoD-Material sein, so kann z.B. ein Live-Stream nach einer gewissen Spieldauer abgebrochen werden, um ein VoD-Video anzuzeigen (Werbung o.ä.)

Die entsprechende serverseitige API dazu ist Stream.play(), mehr dazu findet sich in der flashmediaserver_3.5_SSLR.pdf Dokumentation des FMS 3.5 ab Seite 114, dort sind auch einige Beispiele für Playlisten aufgeführt.

Wichtige Updates für den Flash Media Server

Mit dem 3.5.2 bzw. dem 3.04 Update wurde wichtige Sicherheitslücken im Flash Media Server geschlossen.

Adobe weist in einem Fehlerbericht auf eine Sicherheitslücke im Flash Media Server hin, durch die ein entfernter Angreifer Funktionen im Flash Media Interactive Server und Flash Media Streaming Server ausführen kann. Ursache des Problems ist ein Fehler in der Verarbeitung von Remote Procedure Calls (RPC), durch die ein Angreifer in einem auf dem Server laufenden ActionScript Funktionen starten kann.

Infos hier: Updates available to address Flash Media Server privilege escalation issue

Download Link und Readme-Files des 3.5.2 und 3.0.4 Updates.

Adobe’s Real-Time Media Flow Protocol

Seit dem Adobe Flash Player 10 ist das RTMFP-Protokoll im Flash Player integriert. Mittels dieses Protokolls lassen sich Peer-to-Peer Verbindungen für das Streaming aufbauen. Ein sehr ausführlicher Artikel wurde dazu jsut von Brian Lesser veröffentlicht:

http://broadcast.oreilly.com/2009/04/adobes-real-time-media-flow-pr.html

Serverseitiges recorden von Live-Streams des Flash Media Live Encoders (2)

Aufgrund der Neuerungen des Flash Media Servers Interactive Edition 3.5 hier der aktualisierte Artikel:

Wenn man den Flash Media Live Encoder 3.0 einsetzt um Livestreams direkt auf den Flash Media Server 3.5 Interactive Edition zu publishen, kann man innerhalb des Flash Media Live Encoders lediglich definieren, dass der Stream clientseitig aufgezeichnet werden soll. Ein serverseitiges aufzeichnen ist so erstmal nicht möglich.

Durch das folgende serverseitige ActionScript kann man ein serverseitiges recorden von Flash Media Live Encoder 3.0 Livestreams erzwingen, dieses funktioniert aber nur mit dem Flash Media Server 3.5 Interactive Edition.


// Enable FME Recording on FMS in 3 steps
Client.prototype.FCPublish = function(streamName) {
// streamName is the name of the stream entered in FME
// 1) Get the stream
s = Stream.get(streamName);
// 2) Record it
s.record();
// 3) tell FME that everything works fine
this.call("onFCPublish", null, {code: "NetStream.Publish.Start", description: streamName});
}

Wichtig ist jetzt vor allem die korrekte Definition des Streamnamens im Flash Media Live Encoder:

Streams encodiert mit On2: TestStream –> gespeichert wird TestStream.flv
Streams encodiert mit H.264: mp4:TestStream.f4v –> gespeichert wird TestStream.f4v

Prima ist, das das ganze auch funktioniert, wenn man mit dem Flash Media Live Encoder 3.0 gleich bis zu 3 in der Bandbreite unterschiedliche Streams erzeugt. Dafür muss man allerdings den Streamnamen mit entsprechend %-Parametern versehen.

Beispiel für 3 Streams encodiert mit H.264:

mp4:TestStream_%v_%f.f4v –> gespeichert werden TestStream_650_320×240.f4v,TestStream_350_320×240.f4v, TestStream_50_320×240.f4v�

Nächste Seite »