Die Flexperten Herrlich & Ramuschkat

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.

Weiterlesen »

Engage Your Customers

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

Digitaler Videorekorder für Flash Live Streaming

Mit dem Tool DVR Cast hat Adobe just ein neues Set von Tools veröffentlicht, mit dem jeder User einen Live-Stream unterbrechen kann (um z.B. sich etwas aus dem Kühlschrank zu holen …) und anschliessend an der selben Stellen fortsetzen kann. Dieses Verfahren kennt man bisher nur von digitalen Videorecordern.

Technisch wird das durch in serverseitiges aufnehmen des Live-Stream auf dem Flash Media Server realisiert. Da dabei serverseitiges ActionScript zum Einsatz kommt, geht dieses nur mit der Flash Media Server Interactive Edition.

Mehr zu diesem Thema hier: Understanding live DVR

Downloadlink DVR-Cast Tool

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

H.264 for the rest of us

Auf dem Adobe Developernet ist just ein Artikel über den H.264 Video Codec erschienen, in dem eigentlich so alles wissenswerte behandelt wird.

Mehr dazu hier:

http://www.adobe.com/devnet/flashmediaserver/articles/h264_primer/h264_primer.pdf

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�

Adobe öffnet sein Real-Time Messaging Protocol

Adobe möchte die Spezifikation für das bislang proprietäre Real-Time Messaging Protocol (RTMP) an das Open Screen Project übergeben. Das RTMP Protokoll war bisher “top secret” und die Grundlage für das Streaming mit dem Adobe Flash Media Server.

Mehr bei Heise-Online.

Flash Media Live Encoder 3.0 ist verfügbar

Der brandneue kostenlose (wenn man eine Flash Media Server Streaming oder Interactive Edition Lizenz erworben hat) Flash Media Live Encoder 3.0 ist ab sofort hier verfügbar:

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

Die Neuerungen sind im wesentlichen:

  • der Live Stream kann in bis zu 3 unterschiedlichen Bitraten gesendet werden, dazu benötigt man aber auf der Gegenseite den Flash Media Server 3.5
  • Unterstützung der neuen DVR Funktionalität

Mehr dazu hier: http://www.adobe.com/products/flashmediaserver/flashmediaencoder/features/

« Vorherige SeiteNächste Seite »