DE112011101911T5 - Fragmentierte Dateistruktur für die Ausgabe von Live-Medien-Streams - Google Patents

Fragmentierte Dateistruktur für die Ausgabe von Live-Medien-Streams Download PDF

Info

Publication number
DE112011101911T5
DE112011101911T5 DE112011101911T DE112011101911T DE112011101911T5 DE 112011101911 T5 DE112011101911 T5 DE 112011101911T5 DE 112011101911 T DE112011101911 T DE 112011101911T DE 112011101911 T DE112011101911 T DE 112011101911T DE 112011101911 T5 DE112011101911 T5 DE 112011101911T5
Authority
DE
Germany
Prior art keywords
fragment
request
information
media program
live media
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE112011101911T
Other languages
English (en)
Inventor
Kent Karlsson
Anders Odlund
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MobiTv Inc
Original Assignee
MobiTv Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by MobiTv Inc filed Critical MobiTv Inc
Publication of DE112011101911T5 publication Critical patent/DE112011101911T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2183Cache memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8451Structuring of content, e.g. decomposing content into time segments using Advanced Video Coding [AVC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Mediendateien wie MPEG-4-Dateien werden fragmentiert, um das Erstellen und das Ausgeben von Live-Medien zu ermöglichen. Ein MPEG-4-Standard-Beschreibungsfeld enthält Synchronisierungsinformationen, Dateiende-Informationen und Kapitelinformationen, um Signalisierungsinformationen für ein nahezu live erfolgendes Abspielen von Fragmenten zu ermöglichen. Das Abspielen kann mit dem Empfang eines ersten MPEG-4-Dateifragments beginnen. Ein zweites MPEG-4-Dateifragment kann unter Verwendung von Informationen angefordert werden, welche in dem ersten MPEG-4-Dateifragment enthalten sind.

Description

  • Die vorliegende Anmeldung beansprucht die Priorität der US-Patentanmeldung Nr. 12/794,572 mit dem Titel ”Fragmented File Structure for Live Media Stream Delivery”, angemeldet am 4. Juni 2010, deren Inhalt durch Bezugnahme in seiner Gänze und in jeder Beziehung Teil des Gegenstandes der vorliegenden Anmeldung ist.
  • Technisches Gebiet
  • Die vorliegende Offenbarung betrifft eine fragmentierte Dateistruktur für die Ausgabe von Live-Media-Streams.
  • Beschreibung des Standes der Technik
  • Die herkömmliche Medienübertragung beinhaltet die Verwendung des Real-Time Streaming Protocol(RTSP)/Real-Time Transport Protocol (RTP) über das User Data Protocol (UDP) zum Zweck der Ausgabe von Audio- und Videodaten.
  • Zum Tragen eines Inhalt-Streams, der Video- und Audio-Streams enthält, wird eine separate Sitzung verwendet. RTP spezifiziert ein Standardpaketformat, das dem Tragen von Video- und Audiodaten, wie Moving-Pictures-Expert-Group-Videodaten (MPEG) einschließlich MPEG-2- und MPEG-4-Videoframes, dient. In vielen Fällen enthält ein einzelnes RTP-Paket mehrere Frames. Die MPEG-Frames selbst können Referenzframes oder Frames sein, die in Bezug auf einen Referenzframe kodiert sind.
  • Herkömmliches RTSP/RTP wird über UDP übertragen. Anders als das Transport Control Protocol (TCP) ist UDP ein unzuverlässiger Transportmechanismus, der jedoch nicht den zusätzlichen Overhead für die Unterstützung eines Rahmenwerks für die erneute Übertragung aufweist, das in TCP enthalten ist. Obwohl TCP verbreiterter Anwendung für eine Vielzahl verschiedener Arten von Daten findet, ist UDP daher noch immer für Echtzeit-Medientransport weit verbreitet, da ein minimaler Übertragungsoverhead im Interesse der Maximierung von Durchsatz und Zuverlässigkeit erwünscht ist. Das erneute Übertragen von verlorenen Frames kann störend wirken.
  • Herkömmliche Verfahren und Mechanismen zum Übertragen von Echtzeitmedien sind begrenzt. Es ist daher erwünscht, verbesserte Verfahren und Mechanismen für das Übertragen von Medien-Streams von Inhaltsservern an Clientgeräte bereitzustellen.
  • Kurzbeschreibung der Zeichnungen
  • Die Offenbarung ist am besten unter Bezugnahme auf die nachfolgende Beschreibung in Verbindung mit den zugehörigen Zeichnungen zu verstehen, welche besondere Ausführungsbeispiele darstellen.
  • 1 zeigt ein Beispiel für ein Fragmentierungssystem.
  • 2 zeigt ein anderes Beispiel für ein Fragmentierungssystem.
  • 3 zeigt Beispiele für Kodier-Streams.
  • 4 zeigt ein Beispiel für einen Austausch, bei dem ein Fragmentierungssystem verwendet wird.
  • 5 zeigt ein Verfahren für die Ausgabe von fragmentierten Medien-Streams.
  • 6 zeigt ein Beispiel für ein System zur Implementierung der Ausgabe fragmentierter Medien.
  • Beschreibung von exemplarischen Ausführungsbeispielen
  • Im Folgenden wird detailliert auf einige spezifische Beispiele für die Erfindung Bezug genommen, welche die von den Erfindern gegenwärtig als beste Arten der Durchführung der Erfindung angesehenen Ausführungsbeispiele beinhalten. Beispiele für diese spezifischen Ausführungsbeispiele sind in den beigefügten Zeichnungen dargestellt. Zwar wird die Erfindung in Zusammenhang mit diesen spezifischen Ausführungsbeispielen beschrieben, jedoch ist es ersichtlich, dass nicht beabsichtigt ist, die Erfindung auf die beschriebenen Ausführungsbeispiele zu beschränken. Im Gegenteil ist es beabsichtigt, Alternativen, Modifikationen und Äquivalente abzudecken, die dem Geist und dem Rahmen der Erfindung entsprechen, wie diese durch die beigefügten Ansprüche definiert ist.
  • Die Verfahren gemäß der vorliegenden Erfindung werden beispielsweise im Zusammenhang mit der MPEG-4-Kodierung beschrieben. Es sei jedoch darauf hingewiesen, dass die erfindungsgemäßen Verfahren auch auf Varianten von MPEG-4 anwendbar sind. In der folgenden Beschreibung werden zahlreiche spezifische Details angeführt, um ein umfassendes Verständnis der vorliegenden Erfindung zu vermitteln. Besondere exemplarische Ausführungsbeispiele der vorliegenden Erfindung können ohne einige oder sämtliche dieser spezifischen Details implementiert werden. In anderen Fällen wurden hinreichend bekannte Verfahrensabläufe nicht im Detail beschrieben, um das Verständnis der vorliegenden Erfindung nicht unnötig zu erschweren.
  • Verschiedene Verfahren und Mechanismen der vorliegenden Erfindung werden manchmal aus Gründen der Klarheit in Singularform beschrieben. Es sei jedoch darauf hingewiesen, dass einige Ausführungsbeispiele mehrere Durchläufe eines Verfahrens oder mehrfache Instantiierungen eines Mechanismus beinhalten, sofern dies nicht anders angegeben ist. Es ist jedoch ersichtlich, dass ein System mehrere Prozessoren verwenden kann, ohne den Rahmen der vorliegenden Erfindung zu verlassen, sofern dies nicht anders angegeben ist. Ferner beschreiben die Verfahren und Mechanismen der vorliegenden Erfindung manchmal eine Verbindung zwischen zwei Einheiten. Es sei darauf hingewiesen, dass eine Verbindung zwischen zwei Einheiten nicht notwendigerweise eine direkte, uneingeschränkte Verbindung bezeichnet, da eine Vielzahl anderer Einheiten zwischen den beiden Einheiten vorhanden sein kann. Ein Prozessor kann beispielsweise mit einem Speicher verbunden sein, jedoch ist offensichtlich, dass eine Vielzahl von Brücken und Steuerungen zwischen dem Prozessor und dem Speicher vorgesehen sein kann. Dementsprechend bedeutet eine Verbindung nicht notwendigerweise eine direkte, uneingeschränkte Verbindung, sofern die nicht anders angegeben ist.
  • Überblick
  • Mediendateien, wie MPEG-4-Dateien, werden fragmentiert, um das Erstellen und das Ausgeben von Live-Medien zu ermöglichen. Ein MPEG-4-Standard-Beschreibungsfeld enthält Synchronisierungsinformationen, Dateiende-Informationen und Kapitelinformationen, um Signalisierungsinformationen für ein nahezu live erfolgendes Abspielen von Fragmenten zu ermöglichen. Das Abspielen kann mit dem Empfang eines ersten MPEG-4-Dateifragments beginnen. Ein zweites MPEG-4-Dateifragment kann unter Verwendung von Informationen angefordert werden, welche in dem ersten MPEG-4-Dateifragment enthalten sind.
  • Exemplarische Ausführungsbeispiele
  • Eine Vielzahl von Mechanismen wird zur Ausgabe von Medien-Streams an Geräte verwendet. In bestimmten Beispielen eröffnet ein Client eine Sitzung, beispielsweise eine Real-Time-Streaming-Protocol-Sitzung (RTSP). Ein Servercomputer empfängt eine Verbindung für einen Medien-Stream, eröffnet eine Sitzung, und liefert einen Medien-Stream an ein Clientgerät. Die MPEG-4-Frames selbst können Schlüsselbilder oder Differenzbilder sein. Die von dem Server verwendete spezifische Datenkapselungsmethode hängt von der Art des Inhalts, dem Format dieses Inhalts, dem Format der Nutzdaten, und den für das Senden der Daten verwendeten Anwendungs- und Übertragungsprotokollen ab. Nachdem das Clientgerät den Medien-Stream empfangen hat, entkapselt das Clientgerät die Pakete, um die MPEG-Frames zu erhalten, und dekodiert die MPEG-Frames, um die eigentlichen Mediendaten zu erhalten.
  • Herkömmliche MPEG-4-Dateien machen es erforderlich, dass ein Abspielgerät den gesamten Dateikopf parst, bevor irgendwelche Daten dekodiert werden können. Das Parsen des gesamten Dateikopfs kann erhebliche Zeit in Anspruch nehmen, insbesondere bei Geräten mit begrenzten Netzwerk- und Verarbeitungsressourcen. Infolgedessen wird durch die Verfahren und Mechanismen der vorliegenden Erfindung ein fragmentiertes MPEG-4-Framework geschaffen, das ein Abspielen während des Empfangs eines ersten MPEG-4-Dateifragments ermöglicht. Ein zweites MPEG-4-Dateifragment kann unter Verwendung von in dem ersten MPEG-4-Dateifragment enthaltenen Informationen angefordert werden. Gemäß verschiedenen Ausführungsbeispielen kann es sich beiden angeforderten zweiten MPEG-4-Dateifragment um ein Fragment handeln, das einem Stream entspricht, der eine höhere oder geringere Bitrate aufweist, als der dem ersten Dateifragment zugeordnete Stream.
  • MPEG-4 ist ein erweiterbares Containerformat ohne eine festgelegte Struktur für die Beschreibung von Medientypen. Stattdessen weist MPEG-4 eine Objekthierarchie auf, welche das Definieren individueller Strukturen für jedes Format ermöglicht. Die Formatbeschreibung ist in dem Beispielbeschreibungsfeld (”stsd”) für jeden Stream gespeichert. Das Beispielbeschreibungsfeld kann Informationen enthalten, die nicht bekannt werden, bevor sämtliche Daten kodiert sind. Das Beispielbeschreibungsfeld kann beispielsweise eine durchschnittliche Bitrate enthalten, die vor der Kodierung nicht bekannt ist.
  • Gemäß verschiedenen Ausführungsbeispielen werden MPEG-4-Dateien fragmentiert, so dass ein Live-Stream nahezu live aufgezeichnet und wiedergegeben werden kann. MPEG-4-Dateien können erzeugt werden, ohne warten zu müssen, bis der gesamte Inhalt für das Vorbereiten der Film-Dateiköpfe geschrieben ist. Um eine MPEG-4-Fragmentierung ohne band-externe Signalgebung zu ermöglichen, ist eine Feldstruktur vorgesehen, welche Synchronisierungsinformationen, Dateiende-Informationen und Kapitelinformationen enthält. Gemäß verschiedenen Ausführungsbeispielen dienen Synchronisierungsinformationen der Audio- und Video- Synchronisierung, wenn die Wiedergabe einen Beginn mitten in einem Stream mit sich bringt. Die Dateiende-Informationen geben das Ende des gegenwärtigen Programms oder der Datei an. Dies kann Informationen zum Fortsetzen des Streamings des nächsten Programms oder der nächsten Datei enthalten. Die Kapitelinformationen können für Video-on-Demand-Inhalte verwendet werden, die in Kapitel, welche möglicherweise durch Werbeslots getrennt sind, unterteilt sind.
  • TCP findet häufiger Anwendung als UDP, und Netzwerktechnologien, die Schalt-, Load-Balancer- und Netzwerkkartentechnologien verwenden, werden häufiger für TCP als für UDP entwickelt. Infolgedessen werden Verfahren und Mechanismen zum Ausgeben von fragmentierten Live-Medien über TCP bereitgestellt. Sequenzinformationen werden ebenfalls beibehalten und/oder modifiziert, um einen übergangslosen Betrieb des Clientgeräts zu ermöglichen. Die Zeitsteuerungs- und Sequenzinformationen in einem Medien-Stream bleiben erhalten.
  • Anforderungen werden als separate Dateien einem Client angezeigt, und Dateien sollten auf Abspielgeräten, die fragmentiertes MPEG-4 umsetzen können, wiedergebbar sein. Live-Inhalte oder nahezu live gesendete Inhalte, Video-on-Demand- (VOD) und Digital-Video-Record-Inhalte (DVR) sind sämtlich unter Verwendung von Fragmentierung verarbeitbar.
  • 1 ist eine schematische Darstellung eines Beispiels für ein Fragmentierungssystem 101, das einem Inhaltserver zugeordnet ist, der die erfindungsgemäßen Verfahren und Mechanismen verwenden kann. Kodierer 105 empfangen Mediendaten von Satelliten, Inhaltsbibliotheken und anderen Inhaltsquellen und senden RTP-Multicast-Daten an einen Fragmentschreiber 109. Die Kodierer 105 senden ferner Session-Announcement-Protocol-Bekanntgaben (SAP) an einen SAP-Empfänger 121. Gemäß verschiedenen Ausführungsbeispielen erzeugt der Fragmentschreiber 109 Fragmente für das Live-Streaming und schreibt Dateien zur Aufzeichnung auf eine Platte. Der Fragmentschreiber 109 empfängt RTP-Multicast-Streams von den Kodierern 105 und parst die Streams, um die Audio-/Video-Daten als Teil von fragmentierten MPEG-4-Dateien neu zu packen. Wenn ein neues Programm beginnt, erzeugt der Fragmentschreiber 109 eine neue MPEG-4-Datei im Fragmentspeicher und hängt Fragmente an. Bei bestimmten Ausführungsbeispielen unterstützt der Fragmentschreiber 109 Live- und/oder DVR-Konfigurationen.
  • Der Fragmentserver 111 versieht die Zwischenspeicherungsschicht mit Fragmenten für Clients. Die Designphilosophie hinter der Client/Server-API minimiert Leerläufe und verringert im Hinblick auf die Ausgabe der Mediendaten an den Client 115 die Komplexität so weit wie möglich. Der Fragmentserver 111 stellt Live-Streams und/oder DVR-Konfigurationen zur Verfügung.
  • Der Fragment-Controller 107 ist mit Anwendungsservern 103 verbunden und steuert die Fragmentierung von Live-Kanal-Streams. Der Fragment-Controller 107 integriert optional Führungsdaten, um die Aufzeichnungen für eine Global-/Netzwerk-DVR zu steuern. In bestimmten Ausführungsbeispielen sieht der Fragment-Controller 107 Logik um die Aufzeichnung vor, um die Fragmentschreiberkomponente 109 zu vereinfachen. Gemäß verschiedenen Ausführungsbeispielen instanziiert der Fragment-Controller Instanzen des Fragmentschreibers 109 und sorgt für eine hohe Verfügbarkeit.
  • Gemäß verschiedenen Ausführungsbeispielen verwendet der Client 115 eine Medienkomponente, welche fragmentierte MPEG-4-Dateien anfordert, Trick-Play ermöglicht, und Bandbreitenanpassung vornimmt. Der Client kommuniziert mit den dem HTTP-Proxy 113 zugeordneten Anwendungsservices, um Führer zu erhalten und dem Nutzer den verfügbaren aufgezeichneten Inhalt anzuzeigen.
  • 2 zeigt ein Beispiel für ein Fragmentierungssystem 201, das für Video-on-Demand-Inhalte verwendbar ist. Der Fragger 203 erfordert eine Quelle kodierter Videoclips. Jedoch erzeugt der kommerzielle Kodierer keine Ausgangsdatei mit minimalem objektorientiertem Framework-Dateikopf (MOOF) und bettet stattdessen sämtliche Inhalt-Dateiköpfe in die Movie-Datei (MOOV) ein. Der Fragger liest die Eingangsdatei und erzeugt einen alternativen Ausgang der mit MOOF-Dateiköpfen fragmentiert und mit individuellen Dateiköpfen erweitert wurde, welche das Erlebnis optimieren und als Hinweise für Server dienen.
  • Der Fragmentserver 211 versieht die Zwischenspeicherungsschicht mit Fragmenten für Clients. Die Designphilosophie hinter der Client/Server-API minimiert Leerläufe und verringert im Hinblick auf die Ausgabe der Mediendaten an den Client 215 die Komplexität so weit wie möglich. Der Fragmentserver 211 liefert VoD-Inhalte.
  • Gemäß verschiedenen Ausführungsbeispielen verwendet der Client 215 eine Medienkomponente, welche fragmentierte MPEG-4-Dateien anfordert, Trick-Play ermöglicht, und Bandbreitenanpassung vornimmt. Der Client kommuniziert mit den dem HTTP-Proxy 213 zugeordneten Anwendungsservices, um Führer zu erhalten und dem Nutzer den verfügbaren aufgezeichneten Inhalt anzuzeigen.
  • 3 zeigt Beispiele für Dateien, welche von dem Fragmentschreiber gespeichert werden. Gemäß verschiedenen Ausführungsbeispielen handelt es sich bei dem Fragmentschreiber um eine Komponente in der Gesamtheit des Fragmentierers. Es handelt sich dabei um ein Binärprogramm, das Befehlszeilenargumente verwendet, um ein bestimmtes Programm basierend entweder auf der NTP-Zeit aus dem kodierten Stream oder auf der Uhrzeit aufzuzeichnen. Bei bestimmten Ausführungsbeispielen ist dies als Teil der Argumente konfigurierbar und ist von dem Eingangs-Stream abhängig. Sobald der Fragmentschreiber das Aufzeichnen eines Programms abgeschlossen hat, wird er geschlossen. Für Live-Streams werden Programme künstlich als kurze Intervalle von 5–15 Minuten Länge erzeugt.
  • Gemäß verschiedenen Ausführungsbeispielen handelt es sich bei den Fragmentschreiber-Befehlszeilenargumenten um die SDP-Datei des aufzuzeichnenden Kanals, die Startzeit, die Endzeit, den Namen der gegenwärtigen und der nächsten Ausgangsdatei. Der Fragmentschreiber beobachtet den RTP-Verkehr von den Live-Video-Kodierern und schreibt die Mediendaten als fragmentierte MPEG-4 erneut auf die Platte. Gemäß verschiedenen Ausführungsbeispielen werden Mediendaten als fragmentierte MPEG-4 geschrieben, wie die in MPEG-4 Teil 12 (ISO/IEC 14496-12) definiert ist. Jede übertragene Sendung wird als separate Datei, die durch eine Sendungs-ID (welche aus dem EPG abgeleitet ist) identifiziert ist, auf eine Platte geschrieben. Clients fügen die Sendungs-ID als Teil des Kanalnamens hinzu, wenn sie das Ansehen einer vorab aufgezeichneten Sendung anfordern. Der Fragmentschreiber nimmt jede der verschiedenen Kodierungen auf und speichert sie als verschiedene MPEG-4-Fragmente.
  • Bei bestimmten Ausführungsbeispielen schreibt der Fragmentschreiber die RTP-Daten für eine bestimmte Kodierung und die Sendungs-ID in eine einzelne Datei. In dieser Datei befinden sich Metadateninformationen, welche die gesamte Datei (MOOV-Blöcke) beschreiben. Atome werden als Gruppen von MOOF/MDAT-Paaren gespeichert, um das Speichern einer Sendung als einzelne Datei zu ermöglichen. Am Ende der Datei befinden sich Direktzugriffsinformationen, die verwendet werden können, um einem Client das Durchführen von Bandbreitenanpassungen und Trickplay-Funktionen zu ermöglichen.
  • Gemäß verschieden Ausführungsbeispielen enthält der Fragmentschreiber eine Option, welche Fragmente verschlüsselt, um die Stream-Sicherheit während des Aufzeichnungsvorgangs zu gewährleisten. Der Fragmentschreiber fordert einen Kodierschlüssel von dem Lizenzmanager an. Die verwendeten Schlüssel sind denen ähnlich, die für das DRM verwendet werden. Das Kodierformat ist bei der Kodierung von MOOF geringfügig anders. Die Verschlüsselung erfolgt ein Mal, so dass dadurch keine übermäßigen Kosten während der Ausgabe an die Clients entstehen.
  • Der Fragmentserver antwortet auf HTTP-Anforderungen von Inhalten. Gemäß verschiedenen Ausführungsbeispielen stellt er API bereit, die von Clients genutzt werden können, um erforderliche Dateiköpfe zu erhalten, die für das Dekodieren des Videos sowie das Suchen eine beliebigen gewünschten Zeitabschnitts in dem Fragment notwendig sind, und API für das Live-Ansehen von Kanälen. Tatsächlich werden Live-Kanäle mit den zuletzt geschriebenen Fragmenten einer Sendung auf diesem Kanal gespeist. Der Fragmentschreiber sendet den Mediendateikopf (der für das Initialisieren von Dekodierern erforderlich ist), bestimmte Fragmente Lind den Direktzugriffsblock an die Clients zurück. Gemäß verschiedenen Ausführungsbeispielen ermöglichen die unterstützen API eine Optimierung, wenn die Metadatendateikopfinformationen dem Client zusammen mit dem ersten Fragment zurück gesendet werden. Der Fragmentschreiber erzeugt eine Reihe von Fragmenten innerhalb der Datei. Fordert ein Client einen Stream an, fordert er jedes dieser Fragmente an und der Fragmentserver liest den Teil der Datei, welcher das Fragment betrifft, und sendet dieses an den Client zurück.
  • Gemäß verschiedenen Ausführungsbeispielen verwendet der Fragmentserver eine REST API, das Zwischenspeicher-freundlich ist, so dass die meisten an den Fragmentserver gerichteten Anforderungen zwischengespeichert werden können. Der Fragmentserver verwendet Zwischenspeicher-Control-Dateiköpfe und ETag-Dateiköpfe, um den Zwischenspeicher die richtigen Hinweise zu geben. Diese API verleiht ferner die Fähigkeit, zu verstehen, an welcher Stelle ein bestimmter Nutzer die Wiedergabe angehalten hat, und die Wiedergabe von diesem Punkt an zu starten (die Fähigkeit zur Pause bei einem Gerät und zur Fortsetzung bei einem anderen vorausgesetzt).
  • Bei bestimmten Ausführungsbeispielen folgen die Client-Anforderungen nach Fragmenten dem folgenden Format:
    http://{HOSTNAME}/frag/{CHANNEL}/{BITRATE}/[{ID}/]{COMMAND}[/{ARG}], z. B. http://frag.hosttv.com/frag/1/H8QVGAH264/1270059632.mp4/fragment/42. Gemäß verschiedenen Ausführungsbeispielen ist der Kanalname der selbe wie der Backend-Kanalname, der als Kanalbereich der SDP-Datei verwendet wird. VoD verwendet den Kanalnamen ”vod”. Die BITRATE sollte dem BIRATE/AUFLÖSUNG-Identifikatorschema entsprechen, die für RTP-Streams verwendet wird. Die ID wird dynamisch zugewiesen. Bei Live-Streams kann es sich dabei um den UNIX-Zeitstempel handeln; bei DVR handelt es sich dabei um eine einzigartige ID für die Sendung; bei VoD handelt es sich dabei um die Posten-ID. Die ID ist optional und nicht in LIVE-Befehl-Anforderungen enthalten. Der Befehl und das Argument dienen der Angabe des genauen gewünschten Befehls und jedweder Argumente. Um beispielsweise den Teil 42 anzufordern, lautet dieser Bereich ”fragment/42”.
  • Das URL-Format macht die Anforderungen geeignet für Inhaltsausgabenetzwerke (CDN), da die Fragmente sich nach diesem Punkt nie mehr verändern, so dass zwei separate Clients, welche den gleichen Stream ansehen, unter Verwendung eines Zwischenspeichers bedient werden können. Insbesondere nutzt die Headend-Architektur dies, um das Eintreffen zu vieler dynamischer Anforderungen an dem Fragmentserver zu vermeiden, indem sie für das Zwischenspeichern von Anforderungen einen HTTP-Proxy am vorderen Ende verwendet.
  • Gemäß verschiedenen Ausführungsbeispielen handelt es sich bei dem Fragment-Controller um ein Daemon, das auf dem Fragmentierer abläuft und die Fragmentschreiberprozesse verwaltet. Es wird vorgeschlagen, hierin ein konfiguriertes Filter zu verwenden, das von dem Fragment-Controller ausgeführt wird, um die Liste der aufzuzeichnenden Übertragungen zu erzeugen. Dieses Filter fügt sich in externe Komponenten ein, wie beispielsweise einen Führerserver, um zu bestimmen, welche Sendungen aufzuzeichnen sind und welche Übertragungs-ID zu verwenden ist.
  • Gemäß verschiedenen Ausführungsbeispielen weist der Client eine Anwendungslogikkomponente und eine Medienwiedergabekomponente auf. Die Anwendungslogikkomponente liefert die UI für den Benutzer und teilt dem Frontend-Server ferner mit, dass er Sendungen beschaffen soll, die für den Benutzer verfügbar sind, und die Authentifizierung vornehmen soll. Als Teil dieses Vorgangs sendet der Server URLs zu Medieninhalten zurück, die an die Medienwiedergabekomponente weitergeleitet werden.
  • In besonderen Ausführungsbeispielen verlässt sich der Client auf die Tatsache, dass jedes Fragment in einer fragmentierten MPEG-4-Datei eine Sequenznummer hat. Unter Nutzung dieser Kenntnis und einer gut definierten URL-Struktur für die Kommunikation mit dem Server, fordert der Client Fragmente einzeln an, also ob er separate Dateien aus dem Server lesen würde, indem er einfach URLs für Dateien anfordert, die ansteigenden Sequenznummern zugeordnet sind. Bei einigen Ausführungsbeispielen kann der Client Dateien anfordern, die Streams mit einer höheren oder einer geringeren Bitrate entsprechen, je nachdem, welche Geräte- und Netzwerkressourcen gegeben sind.
  • Da jede Datei die zum Erzeugen der URL für die nächste Datei erforderlichen Informationen enthält, sind keine speziellen Playlist-Dateien erforderlich, und alle Aktionen (Start, Kanalwechsel, Suche) können mittels einer einzigen HTTP-Anforderung durchgeführt werden. Nachdem jedes Fragment heruntergeladen wurde, beurteilt der Client unter anderem die Größe des Fragments und die für dessen Download erforderliche Zeit, um festzustellen, ob eine Verlangsamung erforderlich ist, oder ob ausreichend Bandbreite verfügbar ist, um eine höhere Bitrate anzufordern.
  • Da jede an den Server gerichtete Anforderung wie eine Anforderung nach einer separaten Datei erscheint, kann die Reaktion auf die Anforderungen in jedem HTTP-Proxy zwischengespeichert oder über jedes HTTP-basierte CDN verteilt werden.
  • 4 zeigt eine Interaktion für einen Client, der einen Live-Stream empfängt. Der Client startet die Wiedergabe, während das Fragment 41 aus dem Server abgespielt wird. Der Client verwendet die Fragmentnummer, so dass er das korrekte nachfolgende Dateifragment anfordern kann. Eine Anwendung, wie beispielsweise eine Abspielgerätanwendung 407 sendet eine Anforderung an ein Mediakit 405. Die Anforderung kann eine Basisadresse und eine Bitrate umfassen. Das Mediakit 405 sendet eine HTTP-Get-Anforderung an die Caching-Schicht 403. Gemäß verschiedenen Ausführungsbeispielen befindet sich die Live-Antwort nicht im Zwischenspeicher und die Zwischenspeicherungsschicht leitet die HTTP-Get-Anforderung an einen Fragmentserver 401 weiter. Der Fragmentserver 401 führt eine Verarbeitung durch und sendet das richtige Fragment an die Zwischenspeicherungsschicht 403, welche die Daten an das Mediakit 405 sendet.
  • Das Fragment kann für einen kurzen Zeitraum in der Zwischenspeicherungsschicht 403 zwischengespeichert werden. Das Mediakit 405 identifiziert die Fragmentnummer und stellt fest, ob die Ressourcen zum Abspielen des Fragments ausreichen. In einigen Beispielen sind die Ressourcen, wie beispielsweise die Verarbeitungs- oder Bandbreitenressourcen, unzureichend. Das Fragment wurde möglicherweise nicht schnell genug empfangen oder das Gerät hat Schwierigkeiten mit einer ausreichend schnellen Dekodierung des Fragments. Folglich kann das Mediakit 405 ein nächstes Fragment anfordern, das eine andere Datenrate hat. In einigen Fällen kann das Mediakit 405 ein nächstes Fragment mit einer höheren Datenrate anfordern. Gemäß verschiedenen Ausführungsbeispielen hält der Fragmentserver 401 Fragmente für verschiedene Service-Streamqualitäten mit Zeitsteuerungssynchronisierungsinformationen bereit, um eine genaue Wiedergabezeitsteuerung zu ermöglichen.
  • Das Mediakit 405 fordert ein nächstes Fragment unter Verwendung von Informationen aus dem empfangenen Fragment an. Gemäß verschiedenen Ausführungsbeispielen kann das nächste Fragment für den Medienstream auf einem anderen Server gespeichert sein, eine andere Bitrate aufweisen oder eine andere Autorisierung erfordern. Die Zwischenspeicherungsschicht 403 stellt fest, dass sich das nächste Fragment nicht in dem Zwischenspeicher befindet und sendet die Anforderung an den Fragmentserver 401. Der Fragmentserver 401 sendet das Fragment an die Zwischenspeicherungsschicht 403 und das Fragment wird für einen kurzen Zeitraum zwischengespeichert. Das Fragment wird sodann an das Mediakit 405 gesendet.
  • 5 zeigt ein Beispiel für ein Verfahren zum Ausgeben von Medienstream-Fragmenten. Gemäß verschiedenen Ausführungsbeispielen wird eine Anforderung nach einem Medienstream von Seiten eines Client-Geräts bei 501 empfangen. Bei bestimmten Ausführungsbeispielen handelt es sich bei der Anforderung um eine HTTP-Get-Anforderung mit einer Basis-URL, eine Bitrate und einem Dateinamen. Bei 503 wird festgestellt, ob aktuelle Fragmente, die dem angeforderten Medienstream zugeordnet sind, verfügbar sind. Gemäß verschiedenen Ausführungsbeispielen werden Fragmente für mehrere Minuten in einer Zwischenspeicherungsschicht zwischengespeichert, um eine nahezu live erfolgende Ausgabe von Medienstreams zu ermöglichen. Bei 505 wird die der Anforderung zugeordnete Bitrate identifiziert. Gemäß verschiedenen Ausführungsbeispielen wird bei 507 ein aktuelles Fragment für den Medienstream erhalten und mit einer Fragmentnummer und einer Feldstruktur, welche Synchronisierungsinformationen, Kapitelinformationen und Dateiende-Informationen unterstützt, gesendet. Es sei darauf hingewiesen, dass nicht jedes Fragment Synchronisierungs-, Kapitel- und Dateiende-Informationen enthält.
  • Gemäß verschiedenen Ausführungsbeispielen dienen die Synchronisierungsinformationen dem Synchronisieren von Audio und Video, wenn die Wiedergabe einen Start mitten in einem Stream mit sich bringt. Die Dateiende-Informationen geben an, wann das aktuelle Programm oder die Datei zu Ende ist. Dies kann Informationen hinsichtlich des Fortsetzens des Übertragens des nächsten Programms oder der nächsten Datei beinhalten. Die Kapitelinformationen können für Video-on-Demand-Inhalte verwendet werden, die in Kapitel, welche möglicherweise durch Werbeslots getrennt sind, unterteilt sind.
  • Bei 509 wird das übertragene Fragment für einen begrenzten Zeitraum im Zwischenspeicher gehalten. Bei 511 wird eine Anforderung nach einem nachfolgenden Fragment empfangen. Gemäß verschiedenen Ausführungsbeispielen weist das nachfolgende Fragment eine Fragmentnummer auf, die in direktem Zusammenhang mit dem zuvor übertragenen Fragment steht. Bei einigen Beispielen kann das Client-Gerät eine andere Bitrate oder die gleiche Bitrate anfordern. Bei 513 wird festgestellt, ob ein Fragment mit der korrekten Fragmentnummer im Zwischenspeicher verfügbar ist. Falls nicht, werden die Bitrate und die Fragmentnummer festgestellt, um bei 515 das korrekte Fragment zu erhalten. Bei einigen Beispielen ist die Fragmentnummer um eins höher als die Fragmentnummer des vorhergehenden übertragenen Fragments.
  • In einigen Beispielen kann das Client-Gerät eine erheblich abweichende Fragmentnummer anfordern, die einem anderen Zeitindex entspricht. Dies ermöglicht einem Client-Gerät nicht nur eine Qualitätsänderung durch das Anfordern einer anderen Bitrate, sondern auch eine Zeitverschiebung durch das Anfordern eines bereits zuvor übertragenen früheren Segments. Gemäß verschiedenen Ausführungsbeispielen wird ein aktuelles Fragment für den Medien-Stream erhalten und mit einer Fragmentnummer und einer Feldstruktur, die Synchronisierungsinformationen, Kapitelinformationen und Dateiende-Informationen unterstützt, bei 517 gesendet.
  • Das System kann sodann auf Anforderungen nach weiteren Fragmenten warten, die nahezu live gesendeten Streams zugeordnet sind.
  • 6 zeigt ein Beispiel für einen Fragmentserver. Gemäß bestimmten Ausführungsbeispielen weist ein System 600, das zum Implementieren bestimmter Ausführungsbeispiele der vorliegenden Erfindung geeignet ist, einen Prozessor 601, einen Speicher 603, ein Interface 611 und einen Bus 615 (beispielsweise einen PCI-Bus oder eine andere Verbindungsstruktur) auf und arbeitet als Streaming-Server. Wenn er unter Steuerung durch geeignete Software oder Firmware arbeitet, ist der Prozessor 601 für das Modifizieren und Übertragen von Live-Mediendaten an einen Client verantwortlich. Verschiedene speziell konfigurierte Vorrichtungen können ebenfalls anstelle des Prozessors 601 oder zusätzlich zu dem Prozessor 601 verwendet werden. Das Interface 611 ist üblicherweise zum Senden und Empfangen von Datenpaketen oder Datensegmenten über ein Netzwerk konfiguriert.
  • Besondere Beispiele für unterstützte Interfaces umfassen Ethernet-Interfaces, Frame-Relay-Interfaces, Kabel-Interfaces, DSL-Interfaces, Token-Ring-Interfaces und dergleichen. Darüber hinaus können verschiedene sehr schnelle Interfaces vorgesehen sein, wie beispielsweise Fast-Ethernet-Interfaces, Gigabit-Ethernet-Interfaces, ATM-Interfaces, HSSI-Interfaces, POS-Interfaces, FDDI-Interfaces und dergleichen. Im Allgemeinen können diese Interfaces Ports aufweisen, welche für die Kommunikation mit geeigneten Medien geeignet sind. In einigen Fällen können sie auch einen unabhängigen Prozessor und in einigen Fällen einen flüchtigen RAM aufweisen. Die unabhängigen Prozessoren können solch kommunikationsintensive Aufgaben wie Paketwechsel, Mediensteuerung und -verwaltung wahrnehmen.
  • Gemäß verschiedenen Ausführungsbeispielen handelt es sich bei dem System 600 um einen Fragmentserver, der ferner einen Transceiver, Streaming-Puffer und eine Programmführerdatenbank aufweist. Der Fragmentserver kann ferner mit Fähigkeiten für die Abonnementverwaltung, die Logging- und Berichterstellung und die Überwachung versehen sein. In bestimmten Ausführungsbeispielen besteht die Möglichkeit des Betriebs mit mobilen Geräten, wie Mobiltelefonen, die in einem bestimmten Mobilfunknetz betrieben werden, und der Bereitstellung einer Abonnementverwaltung. Gemäß verschiedenen Ausführungsbeispielen prüft ein Authentisierungsmodul die Identität von Geräten, einschließlich Mobilgeräten. Ein Logging- und Berichterstellungsmodul verfolgt Anforderungen von Seiten von Mobilgeräten und die entsprechenden Antworten. Ein Überwachungssystem ermöglicht es einem Administrator, Nutzungsmuster und die Systemverfügbarkeit zu beobachten. Gemäß verschiedenen Ausführungsbeispielen handhabt der Fragmentserver 691 Anforderungen und Antworten bezüglich Medieninhalte betreffenden Transaktionen, während ein separater Streaming-Server die eigentlichen Medien-Streams liefert.
  • Zwar wurde ein bestimmter Fragmentserver 691 beschrieben, jedoch sollte ersichtlich sein, dass eine Vielzahl alternativer Konfigurationen möglich ist. Beispielsweise sind einige Module wie das Logging- und Berichterstellungsmodul 653 und ein Überwachungsmodul 651 möglicherweise nicht in jedem Server erforderlich. Alternativ können die Module in einer anderen Vorrichtung ausgebildet sein, welche mit dem Server verbunden ist. In einem anderen Beispiel weist der Server 691 kein Interface zu einer Abstraktkaufmaschine aus und kann tatsächlich die Abstraktkaufmaschine selbst aufweisen. Eine Vielzahl von Konfigurationen ist möglich.
  • In der vorangehenden Beschreibung wurde die Erfindung unter Bezugnahme aus spezifische Ausführungsbeispiele beschrieben. Für den Fachmann auf diesem Gebiet ist jedoch ersichtlich, dass verschiedene Modifizierungen und Änderungen vorgenommen werden können, ohne den in den Ansprüchen nachfolgend ausgeführten Rahmen der Erfindung zu verlassen. Die Beschreibung und die Figuren sind daher eher als illustrativ, denn als einschränkend anzusehen, und sämtliche derartigen Modifizierungen gelten als in den Rahmen der Erfindung eingeschlossen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • ISO/IEC 14496-12 [0032]
    • http://frag.hosttv.com/frag/1/H8QVGAH264/1270059632.mp4/fragment/42 [0037]

Claims (21)

  1. Verfahren mit: dem Empfangen einer ersten Anforderung nach einem nahezu live übertragenen Medien-Programm in einem Fragmentserver von Seiten eines Client-Geräts, wobei die erste Anforderung eine erste Bitrate enthält; dem Senden eines mit einer der Anforderung entsprechenden ersten Bitrate codierten ersten Fragments, welches dem nahezu live übertragenen Medien-Programm zugeordnet ist, wobei das erste Fragment eine erste Fragmentnummer und eine Feldstruktur aufweist, welche Synchronisierungsinformationen, Kapitelinformationen und Dateiende-Informationen unterstützt; dem Empfangen einer zweiten Anforderung nach einem nahezu live übertragenen Medien-Programm in einem Fragmentserver, wobei die zweite Anforderung eine zweite Fragmentnummer enthält, welche aus der ersten Fragmentnummer abgeleitet ist; und dem Senden eines dem nahezu live übertragenen Medien-Programm zugeordneten zweiten Fragments, wobei das zweite Fragment die zweite Fragmentnummer aufweist.
  2. Verfahren nach Anspruch 1, bei welchem die Fragmentnummer einem Zeitindex für ein nahezu live übertragenes Medien-Programm entspricht.
  3. Verfahren nach Anspruch 1, bei welchem die erste Anforderung eine HTTP-GET-Anforderung ist.
  4. Verfahren nach Anspruch 1, bei welchem die Synchronisierungsinformationen zum Synchronisieren von Audio und Video verwendet werden, wenn die Wiedergabe den Beginn mitten in einem Stream erfordert.
  5. Verfahren nach Anspruch 1, bei welchem das erste Fragment und das zweite Fragment verschiedene Teile des nahezu live übertragenen Medien-Programm enthalten.
  6. Verfahren nach Anspruch 5, bei welchen das Client-Gerät die Wiedergabe des nahezu live übertragenen Medien-Programms vor dem Empfang des zweiten Fragments beginnt.
  7. Verfahren nach Anspruch 5, bei welchem die Dateiende-Informationen angeben, wenn das nahezu live übertragene Medien-Programm beendet ist.
  8. Verfahren nach Anspruch 7, bei welchem die Dateiende-Informationen Informationen für das Fortsetzen des Streamens eines nächsten Programms oder einer nächsten Datei enthalten.
  9. Verfahren nach Anspruch 1, bei welchem Kapitel-Informationen für Video-on-Demand-Inhalte verwendet werden, die in Kapitel unterteilt sind.
  10. Verfahren nach Anspruch 1, bei welchem das zweite Fragment die zweite Fragmentnummer und eine Feldstruktur aufweist, welche Synchronisierungsinformationen, Kapitelinformationen und Dateiende-Informationen unterstützt.
  11. System mit: einem Eingangsinterface, das zum Empfangen einer von Seiten eines Client-Geräts kommenden ersten Anforderung nach einem nahezu live übertragenen Medien-Programm konfiguriert ist, wobei die erste Anforderung eine erste Bitrate enthält; einem Ausgangsinterface, das zum Senden eines mit einer der Anforderung entsprechenden ersten Bitrate codierten ersten Fragments konfiguriert ist, welches dem nahezu live übertragenen Medien-Programm zugeordnet ist; einem Prozessor, der derart konfiguriert ist, dass er in dem ersten Fragment eine erste Fragmentnummer und eine Feldstruktur aufweist, welche Synchronisierungsinformationen, Kapitelinformationen und Dateiende-Informationen unterstützt; wobei das Eingangsinterface ferner derart konfiguriert ist, dass es eine zweite Anforderung nach dem nahezu live übertragenen Medien-Programm empfängt, wobei die zweite Anforderung eine zweite Fragmentnummer aufweist, die aus der ersten Fragmentnummer abgeleitet ist; und wobei das Ausgangsinterface ferner derart konfiguriert ist, dass es ein zweites Fragment sendet, das dem nahezu live übertragenen Medien-Programm zugeordnet ist, wobei das zweite Fragment die zweite Fragmentnummer enthält.
  12. System nach Anspruch 11, bei welchem die Fragmentnummer einem Zeitindex für ein nahezu live übertragenes Medien-Programm entspricht.
  13. System nach Anspruch 11, bei welchem die erste Anforderung eine HTTP-GET-Anforderung ist.
  14. System nach Anspruch 11, bei welchem die Synchronisierungsinformationen zum Synchronisieren von Audio und Video verwendet werden, wenn die Wiedergabe den Beginn mitten in einem Stream erfordert.
  15. System nach Anspruch 11, bei welchem das erste Fragment und das zweite Fragment verschiedene Teile des nahezu live übertragenen Medien-Programms enthalten.
  16. System nach Anspruch 15, bei welchen das Client-Gerät die Wiedergabe des nahezu live übertragenen Medien-Programms vor dem Empfang des zweiten Fragments beginnt.
  17. System nach Anspruch 15, bei welchem die Dateiende-Informationen angeben, wenn das nahezu live übertragene Medien-Programm beendet ist.
  18. System nach Anspruch 17, bei welchem die Dateiende-Informationen Informationen für das Fortsetzen des Streamens eines nächsten Programms oder einer nächsten Datei enthalten.
  19. System nach Anspruch 11, bei welchem Kapitel-Informationen für Video-on-Demand-Inhalte verwendet werden, die in Kapitel unterteilt sind.
  20. System nach Anspruch 11, bei welchem das zweite Fragment die zweite Fragmentnummer und eine Feldstruktur aufweist, welche Synchronisierungsinformationen, Kapitelinformationen und Dateiende-Informationen unterstützt.
  21. Computerlesbares Speichermedium mit: einem Computercode zum Empfangen einer von Seiten eines Client-Geräts kommenden ersten Anforderung nach einem nahezu live übertragenen Medien-Programm, wobei die erste Anforderung eine erste Bitrate enthält; einem Computercode zum Senden eines mit einer der Anforderung entsprechenden ersten Bitrate codierten ersten Fragments, welches dem nahezu live übertragenen Medien-Programm zugeordnet ist, wobei das erste Fragment eine erste Fragmentnummer und eine Feldstruktur aufweist, welche Synchronisierungsinformationen, Kapitelinformationen und Dateiende-Informationen unterstützt; einem Computercode zum Empfangen einer zweiten Anforderung nach einem nahezu live übertragenen Medien-Programm in einem Fragmentserver, wobei die zweite Anforderung eine zweite Fragmentnummer enthält, welche aus der ersten Fragmentnummer abgeleitet ist; und einem Computercode zum Senden eines dem nahezu live übertragenen Medien-Programm zugeordneten zweiten Fragments, wobei das zweite Fragment die zweite Fragmentnummer aufweist.
DE112011101911T 2010-06-04 2011-06-02 Fragmentierte Dateistruktur für die Ausgabe von Live-Medien-Streams Withdrawn DE112011101911T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/794,572 US9596522B2 (en) 2010-06-04 2010-06-04 Fragmented file structure for live media stream delivery
US12/794,572 2010-06-04
PCT/US2011/038951 WO2011153366A1 (en) 2010-06-04 2011-06-02 Fragmented file structure for live media stream delivery

Publications (1)

Publication Number Publication Date
DE112011101911T5 true DE112011101911T5 (de) 2013-03-21

Family

ID=45065513

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011101911T Withdrawn DE112011101911T5 (de) 2010-06-04 2011-06-02 Fragmentierte Dateistruktur für die Ausgabe von Live-Medien-Streams

Country Status (4)

Country Link
US (1) US9596522B2 (de)
DE (1) DE112011101911T5 (de)
GB (1) GB2495041A (de)
WO (1) WO2011153366A1 (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2597869A4 (de) * 2010-07-20 2013-12-18 Sharp Kk Inhaltsverteilungsvorrichtung, inhaltsabspielvorrichtung, inhaltsverteilungssystem, verfahren zur steuerung der inhaltsverteilungsvorrichtung, steuerprogramm und aufzeichnungsmedium
KR20120034550A (ko) 2010-07-20 2012-04-12 한국전자통신연구원 스트리밍 컨텐츠 제공 장치 및 방법
US9467493B2 (en) * 2010-09-06 2016-10-11 Electronics And Telecommunication Research Institute Apparatus and method for providing streaming content
DE102012201534B4 (de) * 2011-12-09 2018-08-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung zur Zwischenspeicherung einer skalierbaren Original-Datei
CN103430489B (zh) * 2011-12-20 2016-11-30 华为技术有限公司 内容分发网络中文件下载方法、装置和系统
US9330429B2 (en) * 2012-02-17 2016-05-03 Mobitv, Inc. Scalable watermark insertion for fragmented media stream delivery
US10091138B2 (en) 2012-02-21 2018-10-02 F5 Networks, Inc. In service upgrades for a hypervisor or hardware manager hosting virtual traffic managers
KR101917174B1 (ko) 2012-02-24 2018-11-09 삼성전자주식회사 전자 장치 사이의 스트림 전송 방법 및 그 방법을 처리하는 전자 장치
US8892870B2 (en) 2012-03-12 2014-11-18 Sony Corporation Digital rights management for live streaming based on trusted relationships
US9043825B2 (en) * 2012-08-28 2015-05-26 Microsoft Technology Licensing, Llc Content carried ratings based control
US9680689B2 (en) * 2013-02-14 2017-06-13 Comcast Cable Communications, Llc Fragmenting media content
US10382512B2 (en) 2013-03-14 2019-08-13 Microsoft Technology Licensing, Llc Distributed fragment timestamp synchronization
RU2655744C2 (ru) 2013-07-17 2018-05-30 Сони Корпорейшн Устройство подачи содержания, способ подачи содержания, программа, оконечное устройство и система подачи содержания
EP3703379B1 (de) * 2013-12-16 2022-06-22 Panasonic Intellectual Property Corporation of America Übertragungsverfahren, empfangsverfahren, übertragungsvorrichtung und empfangsvorrichtung
WO2015144234A1 (en) * 2014-03-27 2015-10-01 Hewlett-Packard Development Company, L.P. Scheduling downloads
CN105245939B (zh) * 2015-08-07 2018-05-29 广东中人世纪网络技术有限公司 基于http代理的移动流媒体离线缓存系统及方法
US10349108B2 (en) * 2017-08-24 2019-07-09 Mobitv, Inc. System and method for storing multimedia files using an archive file format
CN112040302B (zh) 2019-06-03 2023-01-03 优视科技有限公司 视频缓冲方法、装置、电子设备及计算机可读存储介质
CN112153322B (zh) * 2020-09-23 2023-03-24 北京字跳网络技术有限公司 数据分发方法、装置、设备及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI20011871A (fi) * 2001-09-24 2003-03-25 Nokia Corp Multimediadatan prosessointi
US7711834B2 (en) 2002-12-13 2010-05-04 Ricoh Co., Ltd. Network access to partial document images
US7445312B2 (en) * 2003-06-26 2008-11-04 Seiko Epson Corporation Inkjet printer and inkjet print method
WO2006073578A2 (en) * 2004-11-16 2006-07-13 Broadramp, Inc. System for rapid delivery of digital content via the internet
US8788933B2 (en) * 2005-12-01 2014-07-22 Nokia Corporation Time-shifted presentation of media streams
KR100829113B1 (ko) * 2006-04-28 2008-05-14 삼성전자주식회사 디지털 멀티미디어 방송 서비스에서 방송 데이터 제공 장치및 방법
US7779146B2 (en) 2006-11-09 2010-08-17 Sharp Laboratories Of America, Inc. Methods and systems for HTTP streaming using server-side pacing
US20090276402A1 (en) * 2008-05-01 2009-11-05 Mobitv, Inc. Search system using media metadata tracks
US9438861B2 (en) * 2009-10-06 2016-09-06 Microsoft Technology Licensing, Llc Integrating continuous and sparse streaming data

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
http://frag.hosttv.com/frag/1/H8QVGAH264/1270059632.mp4/fragment/42
ISO/IEC 14496-12

Also Published As

Publication number Publication date
US9596522B2 (en) 2017-03-14
WO2011153366A1 (en) 2011-12-08
GB2495041A (en) 2013-03-27
US20110302618A1 (en) 2011-12-08
GB201300027D0 (en) 2013-02-13

Similar Documents

Publication Publication Date Title
DE112011101911T5 (de) Fragmentierte Dateistruktur für die Ausgabe von Live-Medien-Streams
DE112012002159T5 (de) Kontextsensitive Client-Pufferschwellenwerte
DE112012001770T5 (de) Auf Echtzeitverarbeitungsfähigkeit basierende Qualitätsanpassung
DE112011103333T5 (de) Medienkonvergenzplattform
DE112011102878T5 (de) Nutzer- und Vorrichtungsauthentifizierung für Mediendienstleistungen
US9854018B2 (en) System and method of media content streaming with a multiplexed representation
DE112011101908T5 (de) Qualitätseinstellung unter Verwendung eines fragmentierten Medienstroms
DE112013001136T5 (de) Effiziente Abgrenzung und Verteilung von Media-Segmenten
DE112012002526B4 (de) Medieninhalt-Übertragungsverfahren und Übertragungsvorrichtung unter Verwendung desselben
DE112011102879T5 (de) Medienrechteverwaltung auf mehreren Geräten
CN103843301B (zh) 经译码多媒体数据的网络串流期间的表示之间的切换
DE112013002247T5 (de) Kombinierte Broadcast- und Unicast-Übermittlung
DE112006002677T5 (de) Verfahren und Vorrichtung für RTP-Ausgabe-Streaming unter Verwendung von komplementären Richtungsdateien
DE112011101004T5 (de) Medienkonvergenzplattform
DE112013000995T5 (de) Skalierbare Wasserzeicheneinfügung für fragmentierte Medienstrom-Bereitstellung
KR102137858B1 (ko) 송신 장치, 송신 방법, 수신 장치, 수신 방법 및 프로그램
DE112016004560T5 (de) Gateway Multi-View-Video-Stream-Verarbeitung für Zweitbildschirminhalts-Überlagerung
DE112012004994T5 (de) Verbesserte Bildergruppen-(GOP)-Ausrichtung in Medienstromvarianten
DE602004010577T2 (de) System und Verfahren zur individuellen Video-Verschlüsselung
KR102176404B1 (ko) 통신 장치, 통신 데이터 생성 방법, 및 통신 데이터 처리 방법
DE102008029102A1 (de) Audio- und/oder Video-Datenverarbeitungsvorrichtung, Kommunikations- oder Datennetz zum Umkodieren von Audio- und/oder Video-Daten bzw. Verfahren zum Dekodieren von Audio- und/oder Video-Daten
DE112014000242T5 (de) Skalierbare digitale Videoaufzeichnungen auf Netzwerkbasis über eine Architektur auf Shard-Basis
EP3507987A1 (de) Verfahren zur übertragung von echtzeitbasierten digitalen videosignalen in netzwerken
Eberhard et al. Nextsharepc: an open-source bittorrent-based p2p client supporting svc
DE112011103035T5 (de) Echtzeit-Schlüsselframe-Synchronisierung

Legal Events

Date Code Title Description
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee