DE112011101908T5 - Qualitätseinstellung unter Verwendung eines fragmentierten Medienstroms - Google Patents

Qualitätseinstellung unter Verwendung eines fragmentierten Medienstroms Download PDF

Info

Publication number
DE112011101908T5
DE112011101908T5 DE112011101908T DE112011101908T DE112011101908T5 DE 112011101908 T5 DE112011101908 T5 DE 112011101908T5 DE 112011101908 T DE112011101908 T DE 112011101908T DE 112011101908 T DE112011101908 T DE 112011101908T DE 112011101908 T5 DE112011101908 T5 DE 112011101908T5
Authority
DE
Germany
Prior art keywords
fragment
media program
quality
request
information
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
DE112011101908T
Other languages
English (en)
Inventor
Anders Odlund
Kent Karlsson
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 DE112011101908T5 publication Critical patent/DE112011101908T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network
    • H04N21/64792Controlling the complexity of the content stream, e.g. by dropping packets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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
    • 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/1066Session management
    • H04L65/1083In-session procedures
    • H04L65/1094Inter-user-equipment sessions transfer or sharing
    • 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/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • 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/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • 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/75Media network packet handling
    • H04L65/756Media network packet handling adapting media to device capabilities
    • 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/80Responding to QoS
    • 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/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2355Processing of additional data, e.g. scrambling of additional data or processing content descriptors involving reformatting operations of additional data, e.g. HTML pages
    • H04N21/2358Processing of additional data, e.g. scrambling of additional data or processing content descriptors involving reformatting operations of additional data, e.g. HTML pages for generating different versions, e.g. for different recipient devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/41407Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • H04N21/4355Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving reformatting operations of additional data, e.g. HTML pages on a television screen
    • H04N21/4358Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving reformatting operations of additional data, e.g. HTML pages on a television screen for generating different versions, e.g. for different peripheral devices
    • 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
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/93Regeneration of the television signal or of selected parts thereof
    • H04N5/932Regeneration of analogue synchronisation signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/93Regeneration of the television signal or of selected parts thereof
    • H04N5/935Regeneration of digital synchronisation signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Mediendateien, wie z. B. MPEG-4-Dateien, werden fragmentiert, um eine Erstellung, Lieferung, Qualitätsanpassung und Ortsverschiebung von Medien zu ermöglichen. Eine Wiedergabe auf einer Vorrichtung kann bei Empfang eines ersten MPEG-4-Dateifragments beginnen. Ein Wiedergabestopp wird detektiert, und Medienstrom-Positionsinformationen zusammen mit Qualitätsniveauinformationen werden auf einem Inhaltsserver festgehalten. Die Wiedergabe kann unter Verwendung derselben Vorrichtung und derselben Medienstromqualität, einer anderen Medienstromqualität oder mit einer anderen Vorrichtung und einer anderen Medienstromqualität fortgesetzt werden. Weitere angeforderte MPEG-4-Dateifragmente können Fragmente sein, die einem Strom mit einer höheren oder niedrigeren Bitrate entsprechen und die für eine andere dem Benutzer zugeordnete Vorrichtung konfiguriert sind, um es einem Benutzer zu ermöglichen, die Wiedergabe an einer anderen Vorrichtung wiederaufzunehmen.

Description

  • DATEN ZU VERWANDTER ANMELDUNG
  • Die vorliegende Anmeldung beansprucht Priorität der der US-Patentanmeldung Nr. 12/794,600 bezüglich QUALITÄTSEINSTELLUNG UNTER VERWEN-DUNG EINES FRAGMENTIERTEN MEDIENSTROMS, eingereicht am 4. Juni 2010 (Anwaltsaktenzeichen Nr. MOBIP051US), deren gesamter Inhalt hiermit für sämtliche Zwecke zum Gegenstand der vorliegenden Offenbarung gemacht ist.
  • TECHNISCHES SACHGEBIET
  • Die vorliegende Offenbarung betrifft eine Qualitätseinstellung unter Verwendung eines fragmentierten Medienstroms.
  • BESCHREIBUNG DER VERWANDTEN TECHNIK
  • Eine bekannte Medienübertragung umfasst das Verwenden von Real-Time Streaming Protocol (RTSP)/Real-Time Transport Protocol (RTP) über das User Data Protocol (UDP) zum Liefern von Audio- und Videodaten.
  • Eine separate Sitzung wird angewendet, um einen Inhaltsstrom, der Video- und Audiodaten umfasst, zu transportieren. RTP spezifiziert ein Standardpaketformat, das zum Transportieren von Audio- und Videodaten verwendet wird, wie z. B. Moving Picture Expert Group-(MPEG-)Videodaten, die MPEG-2- und MPEG-4-Videoframes umfassen. In vielen Fällen sind mehrere Frames in einem einzelnen RTP-Paket enthalten. Die MPEG-Frames selbst können Referenzframes sein oder können Frames sein, die relativ zu einem Referenzframe kodiert sind.
  • Ein bekanntes RTSP/RTP wird über UDP übertragen. Anders als das Transport Control Protocol (TCP) ist UDP ein unzuverlässiger Transportmechanismus, umfasst jedoch nicht den zusätzlichen Aufwand zum Unterstützen eines Framework zum erneuten Übertragen, das in dem TCP enthalten ist. Folglich wird, obwohl das TCP für eine Vielzahl von Datentypen eine größere Anwendung findet, UDP immer noch in großem Umfang für einen Echtzeit-Medientransport verwendet, da zum Maximieren von Durchsatz und Zuverlässigkeit ein minimaler Übertragungsaufwand gewünscht ist. Ein erneutes Übertragen von verlorenen Frames kann zu Störungen führen.
  • Bekannte Techniken und Mechanismen zum Übertragen von Echtzeitmedien weisen Einschränkungen auf. Folglich ist es wünschenswert, verbesserte Techniken und Mechanismen zum Übertragen von Medienströmen von Inhaltsservern zu Clientservern bereitzustellen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die Offenbarung ist am besten mit Bezug auf die folgende Beschreibung in Zusammenhang mit den beiliegenden Zeichnungen verständlich, die bestimmte Ausführungsformen zeigen.
  • 1 zeigt ein Beispiel für ein Fragmentierungssystem.
  • 2 zeigt ein weiteres Beispiel für ein Fragmentierungssystem.
  • 3 zeigt Beispiele für Kodierungsströme.
  • 4 zeigt ein Beispiel für einen Austausch, bei dem ein Fragmentierungssystem verwendet wird.
  • 5 zeigt eine Technik für die Lieferung von fragmentierten Medienströmen.
  • 6 zeigt eine Technik zum Implementieren einer Qualitätsanpassung mit einem fragmentierten Medienstrom.
  • 7 zeigt ein Beispiel für ein System zum Implementieren einer fragmentierten Medienlieferung.
  • BESCHREIBUNG VON AUSFÜHRUNGSBEISPIELEN
  • Es wird jetzt genauer auf einige spezifische Beispiele der Erfindung Bezug genommen, einschließlich der besten Methoden, die die Erfinder zum Ausführen der Erfindung in Betracht ziehen. Beispiele für diese spezifischen Ausführungsformen sind in den beiliegenden Zeichnungen dargestellt. Obwohl die Erfindung in Zusammenhang mit diesen spezifischen Ausführungsformen beschrieben wird, sei darauf hingewiesen, dass die Erfindung nicht auf die beschriebenen Ausführungsformen beschränkt ist. Sie deckt im Gegenteil Alternativen, Modifikationen und Äquivalente ab, die in den Geist und Umfang der Erfindung fallen, wie sie in den beiliegenden Patentansprüchen definiert ist.
  • Zum Beispiel werden die Techniken der vorliegenden Erfindung im Zusammenhang mit der MPEG-4-Kodierung beschrieben. Es sei jedoch darauf hingewiesen, dass die Techniken nach der vorliegenden Erfindung Varianten von MPEG-4 betreffen. In der folgenden Beschreibung sind zahlreiche spezifische Details dargelegt, um ein gründliches Verständnis der vorliegenden Erfindung zu ermöglichen. Besondere Ausführungsbeispiele der vorliegenden Erfindung können ohne einige oder sämtliche dieser spezifischen Details implementiert werden. In anderen Fällen sind bekannte Prozesse nicht detailliert beschrieben, um die vorliegende Erfindung nicht unnötig kompliziert darzustellen.
  • Verschiedene Techniken und Mechanismen der vorliegenden Erfindung werden aus Gründen der Klarheit manchmal im Singular beschrieben. Es sei jedoch darauf hingewiesen, dass einige Ausführungsformen mehrere Wiederholungen einer Technik oder mehrere Instanziierungen eines Mechanismus umfassen, sofern nichts anderes angegeben ist. Zum Beispiel wird bei einem System ein Prozessor in einer Vielzahl von Kontexten verwendet. Es sei jedoch angemerkt, dass bei einem System auch mehrere Prozessoren verwendet werden können, wobei dies in den Umfang der vorliegenden Erfindung fällt, sofern nichts anderes angegeben ist. Ferner werden bei den Techniken und Mechanismen der vorliegenden Erfindung manchmal zwei Entitäten als miteinander verbunden beschrieben. Es sei darauf hingewiesen, dass eine Verbindung zwischen zwei Entitäten nicht notwendigerweise eine direkte ungehinderte Verbindung bedeutet, da eine Vielzahl von weiteren Entitäten zwischen den zwei Entitäten vorgesehen sein kann. Zum Beispiel kann ein Prozessor mit einem Speicher verbunden sein, es sei jedoch angemerkt, dass eine Vielzahl von Brücken und Steuereinrichtungen zwischen dem Prozessor und dem Speicher vorgesehen sein kann. Folglich bedeutet eine Verbindung nicht notwendigerweise eine direkte ungehinderte Verbindung, sofern nichts anderes angegeben ist.
  • Überblick
  • Mediendateien, wie z. B. MPEG-4-Dateien, werden fragmentiert, um eine Erstellung, Lieferung, Qualitätsanpassung und Ortsverschiebung von Live-Medien zu ermöglichen. Eine Wiedergabe auf einer Vorrichtung kann bei Empfang eines ersten MPEG-4-Dateifragments beginnen. Ein Wiedergabestopp wird detektiert, und Medienstrom-Positionsinformationen zusammen mit Qualitätsniveauinformationen werden auf einem Inhaltsserver festgehalten. Die Wiedergabe kann unter Verwendung derselben Vorrichtung und derselben Medienstromqualität, einer anderen Medienstromqualität oder mit einer anderen Vorrichtung und einer anderen Medienstromqualität fortgesetzt werden. Weitere angeforderte MPEG-4-Dateifragmente können Fragmente sein, die einem Strom mit einer höheren oder niedrigeren Bitrate entsprechen und die für eine andere dem Benutzer zugeordnete Vorrichtung konfiguriert sind, um es einem Benutzer zu ermöglichen, die Wiedergabe an einer anderen Vorrichtung wiederaufzunehmen.
  • Ausführungsbeispiele
  • Eine Vielzahl von Mechanismen wird verwendet, um Medienströme zu Vorrichtungen zu liefern. Bei bestimmten Beispielen erstellt ein Client eine Sitzung, wie z. B. eine Real-Time Streaming Protocol-(RTSP-)Sitzung. Ein Servercomputer empfängt eine Verbindung für einen Medienstrom, erstellt eine Sitzung und liefert einen Medienstrom zu einer Clientvorrichtung. Der Medienstrom umfasst Pakete, in denen Frames, wie z. B. MPEG-4-Frames, gekapselt sind. Die MPEG-4-Frames selbst können Schlüsselframes oder Differenzframes sein. Die spezifische Kapselungsmethodik, die von dem Server angewendet wird, ist abhängig vom Typ des Inhalts, vom Format dieses Inhalts, vom Format der Nutzdaten und von den Anwendungs- und Übertragungsprotokollen, die zum Senden der Daten verwendet werden. Wenn die Clientvorrichtung den Medienstrom empfangen hat, entkapselt die Clientvorrichtung die Pakete, um die MPEG-Frames zu erhalten, und dekodiert die MPEG-Frames, um die eigentlichen Mediendaten zu erhalten.
  • Bekannte MPEG-4-Dateien machen es erforderlich, dass ein Abspielgerät den gesamte Header parst, bevor die Daten dekodiert werden können. Das Parsen des gesamten Header kann eine beträchtliche Zeit dauern, insbesondere bei Vorrichtungen mit begrenzten Netzwerk- und Verarbeitungsressourcen. Folglich stellen die Techniken und Mechanismen der vorliegenden Erfindung ein fragmentiertes MPEG-4-Framework bereit, das eine Wiedergabe bei Empfang eines ersten MPEG-4-Dateifragments ermöglicht. Ein zweites MPEG-4-Dateifragment kann unter Verwendung von Informationen angefordert werden, die in dem ersten MPEG-4-Dateifragment enthalten sind. Bei verschiedenen Ausführungsformen kann das angeforderte zweite MPEG-4-Dateifragment ein Fragment sein, das einem Strom mit einer höheren oder niedrigeren Bitrate als der dem ersten Dateifragment zugeordneten Bitrate entspricht.
  • MPEG-4 ist ein erweiterbares Containerformat, das keine feste Struktur zum Beschreiben von Medientypen aufweist. Stattdessen weist MPEG-4 eine Objekthierarchie auf, die es ermöglicht, Individualstrukturen für jedes Format zu definieren. Die Formatbeschreibung wird in der Musterbeschreibungs-('stsd'-) Box für jeden Strom gespeichert. Die Musterbeschreibungsbox kann Informationen enthalten, die erst bekannt werden, wenn sämtliche Daten kodiert sind. Zum Beispiel kann die Musterbeschreibungsbox eine durchschnittliche Bitrate enthalten, die vor dem Kodieren nicht bekannt ist.
  • Bei verschiedenen Ausführungsformen sind MPEG-4-Dateien fragmentiert, so dass ein Live Stream nahezu live aufgezeichnet und wiedergegeben werden kann. MPEG-4-Dateien können erstellt werden, ohne dass gewartet werden muss, bis der gesamte Inhalt geschrieben ist, um die Filmheaders zu erzeugen. Damit eine MPEG-4-Fragmentierung ohne eine bandexterne Signalgebung erfolgen kann, wird eine Boxstruktur geschaffen, die Synchronisierungsinformationen, Dateiendeinformationen und Kapitelinformationen enthält. Bei verschiedenen Ausführungsformen werden Synchronisierungsinformationen zum Synchronisieren von Audio und Video verwendet, wenn die Wiedergabe in der Mitte eines Stroms beginnt. Dateiendeinformationen signalisieren, wann das aktuelle Programm oder die aktuelle Datei beendet ist. Diese können Informationen zum Fortsetzen des Streaming des nächsten Programms oder der nächsten Datei beinhalten. Kapitelinformationen können für Video-on-demand-Inhalt verwendet werden, der in Kapitel unterteilt ist, die möglicherweise durch Werbeslots voneinander getrennt sind.
  • Das TCP findet eine größere Anwendung als das UDP, und Netzwerktechnologien, einschließlich Schalter-, Lastverteiler- und Netzwerkkarten-Technologlen werden in größerem Maße für das TCP als für das UDP entwickelt. Folglich werden Techniken und Mechanismen zum Liefern von fragmentierten Live-Medien über das TCP bereitgestellt. Sequenzinformationen werden ebenfalls festgehalten und/oder modifiziert, um eine nahtlose Operation der Clientvorrichtung zu ermöglichen. Zeitsteuerungs-und Sequenzinformationen in einem Medienstrom werden aufbewahrt.
  • Anforderungen werden Clients als separate Dateien zur Verfügung gestellt, und Dateien sollten auf Abspielgeräten abgespielt werden, die fragmentiertes MPEG-4 verarbeiten. Live- oder Nahezu-Live-, Video-on-demand-(VOD-) und Digital-Videoaufzeichnungs-(digital video record DVR-)Inhalt kann insgesamt unter Anwendung der Fragmentierung verarbeitet werden.
  • Bei verschiedenen Ausführungsformen wird der Wiedergabestopp an einem Inhaltsserver oder Fragmentierungsserver detektiert. Bei einigen Beispielen sendet eine Vorrichtung eine Wiedergabestopp-Anforderung. Bei anderen Beispielen detektiert ein Inhaltsserver, dass eine nachfolgende Fragment-Anforderung nicht empfangen worden ist. Der Inhaltsserver hält Benutzerinformationen und Medienstrom-Positionsinformationen fest. Bei einigen Beispielen hält der Inhaltsserver ferner Vorrichtungsinformationen und Qualitäts- oder Bitrateninformationen fest. Wenn eine Anforderung bezüglich eines Fragments oder eine Wiederaufnahmeanforderung von derselben Vorrichtung oder von einer anderen demselben Benutzer zugeordneten Vorrichtung kommend empfangen wird, identifiziert der Inhaltsserver die Bitrate und den Medienstrom zusammen mit dem entsprechenden Fragment, das zu dem Benutzer gesendet wird. Das Fragment kann den Mediendaten entsprechen, die in der Vergangenheit als eine Live-Einspeisung übertragen worden sind und nicht länger live sein können, der Benutzer kann jedoch den Medienstrom nahtlos bei einer Auflösung betrachten, die für eine gängige Betrachtungsvorrichtung angemessen ist.
  • Die Anforderung von der Vorrichtung kann eine Bitrate und Auflösung enthalten, oder ein Inhaltsserver kann unter Verwendung von Vorrichtungsinformationen eine angemessene Bitrate und Auflösung identifizieren. Eine Wiederaufnahmeanforderung zusammen mit einer gewünschten Bitrate kann auch von einer anderen einem Benutzer zugeordneten Vorrichtung kommend empfangen werden. Fragmente, die an einem Inhaltsserver festgehalten werden, können verwendet werden, um auf Anforderungen von zahlreichen Nutzern an einer Vielzahl von Vorrichtungen, die eine Wiedergabe von Medienströmen zu unterschiedlichen Zeitpunkten und bei unterschiedlichen Qualitätsniveaus anfordern, zu reagieren. Bei verschiedenen Ausführungsformen können Fragmente einmal bei unterschiedlichen Qualitätsniveaus festgehalten und auf effiziente Weise zwischengespeichert werden, selbst wenn eine Vielzahl von ungleichen Anforderungen bezüglich desselben oder unterschiedlicher Medienströme empfangen wird.
  • 1 zeigt eine schematische Darstellung eines Beispiels für ein einem Inhaltsserver zugeordnetes Fragmentierungssystem 101, bei dem die Techniken und Mechanismen der vorliegenden Erfindung angewendet werden können. Kodierer 105 empfangen Mediendaten von Satelliten, Inhaltsbibliotheken und anderen Inhaltsquellen und senden RTP-Multicast-Daten zu einem Fragmentschreiber 109. Die Kodierer 105 senden ferner Session Announcement Protocol-(SAP-)Ankündigungen an einen SAP-Empfänger 121. Bei verschiedenen Ausführungsformen erstellt der Fragmentschreiber 109 Fragmente für Live Streaming und schreibt Dateien zu Aufzeichnungszwecken auf eine Diskette. Der Fragmentschreiber 109 empfängt RTP-Multicast-Ströme von den Kodierern 105 und parst die Ströme, um die Audio-/Videodaten als Teil der fragmentierten MPEG-4-Dateien neu zu verpacken. Wenn ein neues Programm beginnt, erstellt der Fragmentschreiber 109 eine neue MPEG-4-Datei im Fragmentspeicher und hängt Fragmente an. Bei bestimmten Ausführungsformen unterstützt der Fragmentschreiber 109 Live- und/oder DVR-Konfigurationen.
  • Der Fragmentserver 111 versorgt die Caching-Schicht mit Fragmenten für Clients. Durch die Auslegungsphilosophie hinter der Client/Server-API werden soweit wie möglich Umläufe minimiert und die Komplexität reduziert, wenn die Mediendaten zu dem Client 115 geliefert werden. Der Fragmentserver 111 stellt Live Streams und/oder DVR-Konfigurationen bereit.
  • Der Fragment-Controller 107 ist mit Anwendungsservern 103 verbunden und steuert die Fragmentierung von Live-Kanal-Strömen. Der Fragmentierungs-Controller 107 integriert optional Führungsdaten zum Ansteuern der Aufzeichnungen für eine Global-/Netzwerk-DVR. Bei bestimmten Ausführungsformen bettet der Fragment-Controller 107 eine Logik um die Aufzeichnung ein, um die Fragmentschreiberkomponente 109 zu vereinfachen. Bei verschiedenen Ausführungsformen läuft der Fragment-Controller 107 auf demselben Host wie der Fragmentschreiber 109. Bei bestimmten Ausführungsformen instanziiert der Fragment-Controller 107 Instanzen des Fragmentschreibers 109 und bewirkt eine hohe Verfügbarkeit.
  • Bei verschiedenen Ausführungsformen verwendet der Client 115 eine Medienkomponente, die fragmentierte MPEG-4-Dateien anfordert, Trickspiel ermöglicht und eine Bandbreitenanpassung bewirkt. Die Client kommuniziert mit den Anwendungsdiensten, die HTTP Proxy 113 zugeordnet sind, um Führer zu erhalten und dem Benutzer den verfügbaren aufgezeichneten Inhalt zu präsentieren.
  • 2 zeigt ein Beispiel für ein Fragmentierungssystem 201, das für Video-on-demand-Inhalt verwendet werden kann. Ein Fragger 203 nimmt eine kodierte Videoclip-Quelle. Der handelsübliche Kodierer erstellt jedoch keine Ausgangsdatei mit Headers eines minimal objektorientierten Framework (MOOF) und bettet stattdessen sämtliche Inhalts-Headers in die Filmdatei (MOOV) ein. Der Fragger liest die Eingangsdatei und erstellt einen alternativen Ausgang, der mit MOOF-Headers fragmentiert und mit Individual-Headers erweitert worden ist, die das Erlebnis optimieren und als Hinweise an Server dienen.
  • Der Fragmentserver 211 versorgt die Caching-Schicht mit Fragmenten für Clients. Durch die Auslegungsphilosophie hinter der Client/Server-API werden soweit wie möglich Umläufe minimiert und die Komplexität reduziert, wenn die Mediendaten zu dem Client 215 geliefert werden. Der Fragmentserver 211 stellt VoD-Inhalt bereit.
  • Bei verschiedenen Ausführungsformen verwendet der Client 215 eine Medienkomponente, die fragmentierte MPEG-4-Dateien anfordert, Trickspiel ermöglicht und eine Bandbreitenanpassung bewirkt. Die Client kommuniziert mit den Anwendungsdiensten, die HTTP Proxy 213 zugeordnet sind, um Führer zu erhalten und dem Benutzer den verfügbaren aufgezeichneten Inhalt zu präsentieren.
  • 3 zeigt Beispiele für von dem Fragmentschreiber gespeicherte Dateien. Bei verschiedenen Ausführungsformen ist der Fragmentschreiber eine Komponente in dem Gesamtfragmentierer. Er ist eine Zweiheit, die Befehlszeilenargumente verwendet, um ein bestimmtes Programm entweder auf der Basis der NTP-Zeit von dem kodierten Strom oder der Wanduhrzeit aufzuzeichnen. Bei bestimmten Ausführungsformen ist dies als Teil der Argumente konfigurierbar und hängt von dem Eingangsstrom ab. Wenn der Fragmentschreiber das Aufzeichnen eines Programms beendet, verlässt er dieses. Bei Live Streams werden Programme künstlich erstellt, um Kurzzeitintervalle mit einer Länge von z. B. 5–15 Minuten zu sein.
  • Bei verschiedenen Ausführungsformen sind die Fragmentschreiber-Befehlszeilenargumente die SDP-Datei des aufzuzeichnenden Kanals, die Startzeit, die Endzeit, der Name der aktuellen und der nächsten Ausgangsdateien. Der Fragmentschreiber hört auf den RTP-Verkehr von den Live-Video-Kodierern und schreibt die Mediendaten erneut als fragmentiertes MPEG-4 auf eine Diskette. Bei verschiedenen Ausführungsformen werden Mediendaten als fragmentiertes MPEG-4 geschrieben, wie in MPEG-4 Teil 12 (ISO/IEC 14496-12) definiert ist. Jede gesendete Show wird auf eine Diskette geschrieben, und zwar als eine separate Datei, die durch die Show-ID (abgeleitet von EPG) gekennzeichnet ist. Clients schließen die Show-ID als Teil des Kanalnamens ein, wenn sie das Betrachten einer voraufgezeichneten Show anfordern. Der Fragmentschreiber verbraucht jede der unterschiedlichen Kodierungen und speichert sie als ein unterschiedliches MPEG-4-Fragment.
  • Bei bestimmten Ausführungsformen schreibt der Fragmentschreiber die RTP-Daten für eine bestimmte Kodierung und das Show-ID-Feld in eine einzelne Datei. In dieser Datei befinden sich Metadateninformationen, die die gesamte Datei (MOOV-Blöcke) beschreiben. Atome sind als Gruppen von MOOF/MDAT-Paaren gespeichert, die es ermöglichen, dass eine Show als eine einzelne Datei gespeichert wird. Am Ende der Datei befinden sich Direktzugriffinformationen, die dazu verwendet werden können, es einem Client zu ermöglichen, eine Bandbreitenanpassungs- und Trickspielfunktionalität auszuführen.
  • Bei verschiedenen Ausführungsformen weist der Fragmentschreiber eine Option auf, die Fragmente verschlüsselt, um eine Stromsicherheit während des Aufzeichnungsprozesses sicherzustellen. Der Fragmentschreiber fordert einen Kodierungsschlüssel von dem Lizenzmanager an. Die verwendeten Schlüssel sind demjenigen für DRM im Wesentlichen gleich. Das Kodierungsformat unterscheidet sich geringfügig dort, wo MOOF kodiert ist. Die Verschlüsselung erfolgt einmal, so dass bei Lieferung zu Clients keine außerordentlich hohen Kosten entstehen.
  • Der Fragmentserver reagiert auf HTTP-Anforderungen bezüglich Inhalt. Bei verschiedenen Ausführungsformen stellt er APIs bereit, die von Clients verwendet werden können, um erforderliche Header zu erhalten, die zum Dekodieren des Videos, Suchen nach einem gewünschten Zeitrahmen innerhalb des Fragments und APIs zum Live-Betrachten von Kanälen benötigt werden. Tatsächlich werden Live-Kanäle von den zuletzt geschriebenen Fragmenten für die Show auf diesem Kanal bedient. Der Fragmentserver sendet den Medien-Header (erforderlich zum Initialisieren von Dekodierern), bestimmte Fragmente und den Direktzugriffsblock zu den Clients zurück. Bei verschiedenen Ausführungsformen ermöglichen die unterstützten APIs eine Optimierung dort, wo die Metadaten-Header-Informationen zusammen mit dem ersten Fragment zu dem Client zurückgesendet werden. Der Fragmentschreiber erstellt eine Reihe von Fragmenten innerhalb der Datei. Wenn ein Client einen Strom anfordert, erstellt er Anforderungen für jedes dieser Fragmente, und der Fragmentserver liest den Bereich der Datei, der zu diesem Fragment gehört, und sendet es zu dem Client zurück.
  • Bei verschiedenen Ausführungsformen verwendet der Fragmentserver eine REST-API, die cachefreundlich ist, so dass die meisten an den Fragmentserver gestellten Anforderungen zwischengespeichert können. Der Fragmentserver verwendet Cache-Steuerungs-Headers und ETag-Headers zum Erzeugen der korrekten Hinweise an Cachespeicher. Diese API bewirkt ferner ein Verständnis dafür, wo ein bestimmter Benutzer das Abspielen gestoppt hat, und für das Starten des Abspielens von diesem Punkt aus (bietet die Möglichkeit zu einer Pause an einer Vorrichtung und der Wiederaufnahme an einer anderen).
  • Bei bestimmten Ausführungsformen folgen Clientanforderungen bezüglich 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.
  • Bei verschiedenen Ausführungsformen ist der Kanalname der gleiche wie der des Backend-Kanals, der als der Kanalbereich der SDP-Datei genutzt wird. VOD verwendet einen Kanalnamen mit ”vod”. Die BITRATE sollte dem für RTP-Ströme verwendeten BITRATEN/AUFLÖSUNGS-Identifizererschema folgen. Die ID wird dynamisch zugewiesen. Bei Live Streams kann diese der UNIX-Zeitstempel sein; bei DVR ist diese eine einzigartige ID für die Show; bei VoD ist diese die Asset-ID. Die ID ist optional und nicht in LIVE-Befehl-Anforderungen enthalten. Der Befehl und das Argument werden verwendet, um den genauen gewünschten Befehl und Argumente anzuzeigen. Zum Beispiel wäre zum Anfordern von Segment 42 dieser Bereich ”fragment/42”.
  • Das URL-Format macht die Anforderungen Inhaltliefernetzwerk-(content delivery network = CDN-)freundlich, da sich die Fragmente nach diesem Punkt nie verändern, so dass zwei separate Clients, die den gleichen Strom betrachten, unter Verwendung eines Cachespeichers bedient werden können. Insbesondere setzt die Headend-Architektur dies wirksam ein um zu verhindern, dass zu viele dynamische Anforderungen an dem Fragmentserver eintreffen, und zwar durch Verwenden eines HTTP-Proxy am Headend zum Zwischenspeichern von Anforderungen.
  • Bei verschiedenen Ausführungsformen ist der Fragment-Controller ein Daemon, der auf dem Fragmentierer läuft und die Fragmentschreiber-Prozesse verwaltet. Wir schlagen vor, dass er ein konfiguriertes Filter verwendet, das von dem Fragment-Controller ausgeführt wird, um die Liste von aufzuzeichnenden Sendungen zu erzeugen. Dieses Filter integriert externe Komponenten, wie z. B. einen Führungsserver, um zu bestimmen, welche Shows aufgezeichnet werden und welche Sendungs-ID verwendet wird.
  • Bei verschiedenen Ausführungsformen weist der Client eine Anwendungslogikkomponente und eine Medienwiedergabekomponente auf. Die Anwendungslogikkomponente präsentiert dem Benutzer die UI und kommuniziert ferner mit dem Frontend-Server zwecks Erhalts von für den Benutzer verfügbaren Shows und Authentifizierung. Als Teil dieses Prozesses sendet der Server URLs zu Medienassets zurück, die zu der Medienwiedergabekomponente weitergeleitet werden.
  • Bei bestimmten Ausführungsformen verlässt sich der Client auf die Tatsache, dass jedes Fragment in einer fragmentierten MP4-Datei eine Sequenznummer aufweist. Unter Verwendung dieses Wissens und einer gut definierten URL-Struktur zum Kommunizieren mit dem Server fordert der Client Fragmente einzeln an, so als ob er separate Dateien von dem Server einfach durch Anfordern von URLs für ansteigenden Sequenznummern zugeordnete Dateien liest. Bei einigen Ausführungsformen kann der Client Dateien anfordern, die in Abhängigkeit von Vorrichtungs- und Netzwerkressourcen höheren oder niedrigeren Bitratenströmen entsprechen.
  • Da jede Datei die Informationen enthält, die erforderlich sind, um die URL für die nächste Datei zu erstellen, werden keine besonderen Wiedergabelisten-Dateien benötigt, und sämtliche Aktionen (Starten, Kanalwechsel, Suche) können mit einer einzigen HTTP-Anforderung durchgeführt werden. Wenn jedes Fragment heruntergeladen ist, bewertet der Client unter anderem die Größe des Fragments und die zum Herunterladen benötigte Zeit, um zu bestimmen, ob ein Verlangsamen erforderlich ist oder ob genügend Bandbreite verfügbar ist, um eine höhere Bitrate anzufordern.
  • Da jede Anforderung an den Server wie eine Anforderung an eine separate Datei aussieht, kann die Antwort auf Anforderungen in jedem HTTP-Proxy zwischengespeichert werden 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, wenn ein Fragment 41 von dem Server aus abgespielt wird. Der Client verwendet die Fragmentnummer, so dass er das entsprechende Subsequenz-Dateifragment anfordern kann. Eine Anwendung, wie z. B. eine Abspielanwendung 407, sendet eine Anforderung an ein Mediakit 405. Die Anforderung kann eine Basisadresse und Bitrate enthalten. Das Mediakit 405 sendet eine HTTP-Holanforderung an die Caching-Schicht 403. Bei verschiedenen Ausführungsformen befindet sich die Live-Antwort nicht im Cachespeicher, und die Caching-Schicht 403 leitet die HTTP-Hofanweisung an einen Fragmentserver 401 weiter. Der Fragmentserver 401 führt eine Verarbeitung durch und sendet das entsprechende Fragment an die Caching-Schicht 403, die die Daten zu dem Mediakit 405 weiterleitet.
  • Das Fragment kann für einen kurzen Zeitraum an der Caching-Schicht 403 zwischengespeichert werden. Das Mediakit 405 identifiziert die Fragmentnummer und stellt fest, ob die Ressourcen ausreichen, um das Fragment abzuspielen. Bei einigen Beispielen reichen die Ressourcen, wie z. B. Verarbeitungs- oder Bandbreitenressourcen, nicht aus. Das Fragment kann nicht schnell genug empfangen werden oder die Vorrichtung kann Schwierigkeiten beim Dekodieren des Fragments mit ausreichender Geschwindigkeit haben. Folglich kann das Mediakit 405 ein nächstes Fragment anfordern, das eine andere Datenrate aufweist. In einigen Fällen kann das Mediakit 405 ein nächstes Fragment anfordern, das eine höhere Datenrate aufweist. Bei verschiedenen Ausführungsformen hält der Fragmentserver 401 Fragmente für eine unterschiedliche Qualität von Service Streams mit Zeitsteuerungs-Synchronisierungsinformationen fest, um eine zeitgenaue Wiedergabe zu ermöglichen.
  • Das Mediakit 405 fordert ein nächstes Fragment unter Verwendung von Informationen von dem empfangenen Fragment an. Bei verschiedenen Ausführungsformen kann das nächste Fragment für den Medienstrom auf einem anderen Server festgehalten werden, eine andere Bitrate aufweisen oder eine andere Autorisierung serforderlich machen. Die Caching-Schicht 403 stellt fest, dass sich das nächste Fragment nicht im Cachespeicher befindet und leitet die Anforderung an den Fragmentserver 401 weiter. Der Fragmentserver 401 sendet das Fragment zu der Caching-Schicht 403, und das Fragment wird für einen kurzen Zeitraum zwischengespeichert. Das Fragment wird dann an das Mediakit 405 gesendet.
  • 5 zeigt ein Beispiel für eine Technik zum Liefern von Medienstromfragmenten. Bei verschiedenen Ausführungsformen wird bei 501 eine Anforderung bezüglich eines Medienstroms von einer Clientvorrichtung kommend empfangen. Bei bestimmten Ausführungsformen ist die Anforderung eine HTTP-HOL-Anforderung mit einer Basis-URL, einer Bitrate und einem Dateinamen. Bei 503 wird festgestellt, ob den angeforderten Medienströmen zugeordnete aktuelle Fragmente verfügbar sind. Bei verschiedenen Ausführungsformen werden Fragmente mehrere Minuten lang in einer Caching-Schicht zwischengespeichert, um eine Nahezu-Live-Verteilung von Medienströmen zu ermöglichen. Bei 505 wird die der Anforderung zugeordnete Bitrate identifiziert. Bei verschiedenen Ausführungsformen wird ein aktuelles Fragment für den Medienstrom erhalten und bei 507 mit einer Fragmentnummer und einer Boxstruktur, die Synchronisierungsinformationen, Kapitelinformationen und Dateiendeinformationen unterstützt, gesendet. Es sei angemerkt, dass nicht jedes Fragment Synchronisierungs-, Kapitel- und Dateiendeinformationen enthält.
  • Bei verschiedenen Ausführungsformen werden Synchronisierungsinformationen zum Synchronisieren von Audio und Video verwendet, wenn die Wiedergabe in der Mitte eines Stroms beginnt. Dateiendeinformationen signalisieren, wann das aktuelle Programm oder die aktuelle Datei beendet ist. Diese können Informationen zum Fortsetzen des Streaming des nächsten Programms oder der nächsten Datei beinhalten. Kapitelinformationen können für Video-on-demand-Inhalt verwendet werden, der in Kapitel unterteilt ist, die möglicherweise durch Werbeslots voneinander getrennt sind.
  • Bei 509 wird das übertragene Fragment für einen begrenzten Zeitraum in dem Cachespeicher festgehalten. Bei 511 wird eine Anforderung bezüglich eines nachfolgenden Fragments empfangen. Bei verschiedenen Ausführungsformen weist das nachfolgende Fragment eine Fragmentnummer auf, die direkt auf das zuvor übertragene Fragment bezogen ist. Bei einigen Beispielen kann die Clientvorrichtung eine andere Bitrate anfordern oder die gleiche Bitrate anfordern. Bei 513 wird festgestellt, ob ein Fragment mit der entsprechenden Fragmentnummer in dem Cachespeicher verfügbar ist. Andernfalls werden bei 515 die Bitrate und Fragmentnummer bestimmt, um das entsprechende Fragment zu erhalten. Bei einigen Beispielen ist die Fragmentnummer um eins größer als die Fragmentnummer für das zuvor übertragene Fragment.
  • Bei einigen Beispielen kann die Clientvorrichtung eine signifikant andere Fragmentnummer anfordern, die einem anderen Zeitindex entspricht. Dies ermöglicht es einer Clientvorrichtung, nicht nur eine Qualitätsverschiebung durch Anfordern einer anderen Bitrate zu bewirken, sondern auch eine Zeitverschiebung durch Anfordern eines zuvor bereits übertragenen früheren Segments. Bei verschiedenen Ausführungsformen wird ein aktuelles Fragment für den Medienstrom erhalten und bei 517 mit einer Fragmentnummer und einer Boxstruktur, die Synchronisierungsinformationen, Kapitelinformationen und Dateiendeinformationen unterstützt, gesendet.
  • Das System kann dann auf Anforderungen bezüglich weiterer Fragmente warten, die Nahezu-Live Streams zugeordnet sind.
  • 6 zeigt eine Technik zum Durchführen einer Qualitätsanpassung unter Verwendung eines fragmentierten Medienstroms. Bei 601 wird eine Anforderung bezüglich eines Medienfragments von einer Clientvorrichtung kommend empfangen. Die Anforderung kann eine HTTP-HOL-Anforderung sein, die eine bestimmte Bitrate und einen Medienidentifizierer enthält. Bei 605 identifiziert ein Inhaltsserver oder Fragmentserver die Bitrate und das Medium. Bei verschiedenen Ausführungsformen identifiziert der Inhaltsserver ferner den Benutzer und die Vorrichtung, um zu prüfen, ob der Benutzer autorisiert ist, den Medieninhalt auf der bestimmten Vorrichtung zu betrachten. Bei einigen Beispielen werden der Benutzer und die Vorrichtung identifiziert, um die angemessene Qualität des Medienstroms oder die Version des Medienstroms, der der Clientvorrichtung zugeführt wird, festzustellen. Bei 607 wird ein Fragment mit einer Fragmentnummer und einer Boxstruktur, die Synchronisierungsinformationen, Kapitelinformationen und Dateiendeinformationen unterstützt, gesendet.
  • Bei verschiedenen Ausführungsformen werden Synchronisierungsinformationen zum Synchronisieren von Audio und Video verwendet, wenn die Wiedergabe in der Mitte eines Stroms beginnt. Dateiendeinformationen signalisieren, wann das aktuelle Programm oder die aktuelle Datei beendet ist. Diese können Informationen zum Fortsetzen des Streaming des nächsten Programms oder der nächsten Datei beinhalten. Kapitelinformationen können für Video-on-demand-Inhalt verwendet werden, der in Kapitel unterteilt ist, die möglicherweise durch Werbeslots voneinander getrennt sind.
  • Bei 609 wird ein Wiedergabestopp identifiziert. Der Wiedergabestopp kann durch eine Anforderung der Clientvorrichtung zum Stoppen der Wiedergabe identifiziert werden. Bei anderen Ausführungsformen kann der Wiedergabestopp identifiziert werden, wenn ein Inhaltsserver innerhalb eines vorbestimmten Zeitraums keine Anforderung bezüglich weiterer Medienfragmente von einer Clientvorrichtung empfängt. Bei noch weiteren Ausführungsformen kann der Wiedergabestopp identifiziert werden, wenn ein Inhaltsserver keine entsprechende Bestätigung von einer Clientvorrichtung empfängt. Bei 611 werden Benutzer- und Medienpositionsinformationen festgehalten. Bei einigen Ausführungsformen können Bitraten-, Versions-, Vorrichtungs- und andere Qualitäts- und Speicherstelleninformationen festgehalten werden.
  • Bei 613 wird eine Anforderung bezüglich eines nachfolgenden Medienfragments von einem Benutzer kommend empfangen. Bei verschiedenen Ausführungsformen wird die Anforderung von einer anderen Vorrichtung kommend empfangen, oder sie kann über Netzwerkbedingungen empfangen werden, die jetzt eine andere Bitrate unterstützen. Bei 615 werden der autorisierte Benutzer, die autorisierte Vorrichtung und die autorisierte Bitrate identifiziert. Bei verschiedenen Ausführungsformen werden Benutzer- und Medienpositionsinformationen erhalten. Bei 617 wird das Fragment mit einer folgenden Fragmentnummer, die den festgehaltenen Medienpositionsinformationen entspricht, mit einer Boxstruktur, die Synchronisierungsinformationen, Kapitelinformationen und Dateiendeinformationen unterstützt, gesendet. Bei einigen Beispielen brauchen nicht sämtliche der Synchronisierungsinformationen, Kapitelinformationen und Dateiendeinformationen gesendet zu werden. Bei einigen Beispielen kann die Boxstruktur nur Synchronisierungsinformationen enthalten, wobei anderer Arten von Informationen unterstützt werden, jedoch nicht enthalten sind.
  • 7 zeigt ein Beispiel für einen Fragmentserver. Bei bestimmten Ausführungsformen weist ein System 700, das zum Implementieren von bestimmten Ausführungsformen der vorliegenden Erfindung geeignet ist, einen Prozessor 701, einen Speicher 703, eine Schnittstelle 711 und einen Bus 715 (z. B. einen PCI-Bus oder eine andere Zwischenverbindungsstruktur) auf und fungiert als ein Streaming Server. Wenn der Prozessor 701 unter der Steuerung einer geeigneten Software oder Firmware arbeitet, ist er zuständig für das Modifizieren und Übertragen von Live-Mediendaten zu einem Client. Verschiedene speziell ausgestaltete Vorrichtungen können anstelle eines Prozessors 701 oder zusätzlich zu dem Prozessor 701 ebenfalls verwendet werden. Die Schnittstelle 711 ist typischerweise dazu ausgebildet, Datenpakete oder Datensegmente über ein Netzwerk zu senden und zu empfangen.
  • Bestimmte Beispiele für Schnittstellenunterstützungen umfassen Ethernet-Schnittstellen, Frame Relay-Schnittstellen, Kabelschnittstellen, DSL-Schnittstellen, Token Ring-Schnittstellen und dergleichen. Ferner können verschiedene Höchstgeschwindigkeits-Schnittstellen vorgesehen sein, wie z. B. schnelle Ethernet-Schnittstellen, Gigabit-Ethernet-Schnittstellen, ATM-Schnittstellen, HSSI-Schnittstellen, POS-Schnittstellen, FDDI-Schnittstellen und dergleichen. Generell können diese Schnittstellen Ports aufweisen, die für eine Kommunikation mit den entsprechenden Medien geeignet sind. In einigen Fällen können sie ferner einen unabhängigen Prozessor und in einigen Fällen einen flüchtigen RAM aufweisen. Die unabhängigen Prozessoren können solche kommunikationsintensiven Aufgaben, wie z. B. Paketvermittlung, Medienkontrolle und -verwaltung, steuern.
  • Bei verschiedenen Ausführungsformen ist das System 700 ein Fragmentserver, der ferner einen Sendeempfänger, Streaming-Puffer und eine Programmführer-Datenbank umfasst. Dem Fragmentserver können ferner Abonnementverwaltungs-, Protokollierungs- und Berichterzeugungs- sowie Überwachungsfunktionen zugeordnet sein. Bei bestimmten Ausführungsformen gibt es eine Funktionalität, die eine Operation mit mobilen Vorrichtungen, wie z. B. Mobiltelefonen, die in einem bestimmten Mobilfunknetz arbeiten, ermöglicht und eine Abonnementverwaltung bietet. Bei verschiedenen Ausführungsformen prüft ein Authentifizierungsmodul die Identität von Vorrichtungen, einschließlich mobiler Vorrichtungen. Ein Protokollierungs- und Berichterzeugungsmodul verfolgt Anfragen von mobilen Vorrichtungen und dazugehörige Antworten. Ein Monitorsystem ermöglicht es einem Administrator, Nutzungsverhalten und Systemverfügbarkeit zu überprüfen. Bei verschiedenen Ausführungsformen verarbeitet der Fragmentserver 791 Anfragen und Antworten für medieninhaltsbezogene Transaktionen, während ein separater Streaming Server die eigentlichen Medienströme liefert.
  • Obwohl ein bestimmter Fragmentserver 791 beschrieben worden ist, sei darauf hingewiesen, dass eine Vielzahl von alternativen Konfigurationen möglich ist. Zum Beispiel sind einige Module, wie z. B. ein Bericht- und Protokollierungsmodul 753 und ein Monitor 751, möglicherweise nicht bei jedem Server erforderlich. Alternativ können die Module in einer anderen mit dem Server verbundenen Vorrichtung implementiert sein. Bei einem weiteren Beispiel weist der Server 791 möglicherweise keine Schnittstelle zu einer abstrakten Kaufmaschine auf und kann vielmehr die abstrakte Kaufmaschine selbst aufweisen. Eine Vielzahl von Konfigurationen ist möglich.
  • In der vorstehenden Beschreibung ist die Erfindung mit Bezug auf spezifische Ausführungsformen dargestellt worden. Ein Fachmann auf dem Sachgebiet erkennt jedoch, dass verschiedene Modifikationen und Änderungen durchgeführt werden können, ohne dass dadurch vom Umfang der Erfindung abgewichen wird, wie sie in den nachstehenden Patentansprüchen dargelegt ist. Entsprechend müssen die Beschreibung und die Figuren im erläuternden und nicht im einschränkenden Sinne ausgelegt werden, und sämtliche solcher Modifikationen gelten als in den Umfang der Erfindung fallend.
  • 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 [0035]

Claims (20)

  1. Verfahren, das umfasst: Empfangen einer ersten Anforderung von einem Benutzer zum Abspielen eines Medienprogramms auf einer ersten Vorrichtung, die ein erstes Qualitätsniveau unterstützt; Übertragen eines ersten Fragments, das dem bei dem ersten Qualitätsniveau kodierten Medienprogramm zugeordnet ist, zu der ersten Vorrichtung, wobei das erste Fragment eine erste Fragmentnummer und eine Boxstruktur aufweist, die Synchronisierungsinformationen und Dateiendeinformationen unterstützt; Empfangen einer zweiten Anforderung von dem Benutzer zum Abspielen des Medienprogramms auf einer zweiten Vorrichtung, die ein zweites Qualitätsniveau unterstützt, das sich von dem ersten Qualitätsniveau unterscheidet; Identifizieren einer Medienprogrammposition, die zum Wiederaufnehmen des Abspielens an einem Server festgehalten wird; Übertragen eines zweiten Fragments, das dem Live-Medien-Programm zugeordnet ist, zu der zweiten Vorrichtung, wobei das zweite Fragment eine zweite Fragmentnummer aufweist, die unter Verwendung der Medienprogrammposition abgeleitet wird.
  2. Verfahren nach Anspruch 1, bei dem die Boxstruktur ferner Kapitelinformationen unterstützt.
  3. Verfahren nach Anspruch 1, bei dem die Fragmentnummer einem Zeitindex entspricht.
  4. Verfahren nach Anspruch 1, bei dem die erste Anforderung eine HTTP-HOL-Anforderung ist.
  5. Verfahren nach Anspruch 1, bei dem die Synchronisierungsinformationen zum Synchronisieren von Audio und Video verwendet werden, wenn die Wiedergabe in der Mitte eines Stroms beginnt.
  6. Verfahren nach Anspruch 1, bei dem das erste Fragment und das zweite Fragment unterschiedliche Bereiche des Nahezu-Live-Medienprogramms aufweisen.
  7. Verfahren nach Anspruch 6, bei dem die Clientvorrichtung mit der Wiedergabe des Nahezu-Live-Programms vor Empfangen des zweiten Fragments beginnt.
  8. Verfahren nach Anspruch 6, bei dem die Dateiendeinformationen signalisieren, wann das Nahezu-Live-Medienprogramm beendet ist.
  9. Verfahren nach Anspruch 8, bei dem die Dateiendeinformationen Informationen zum Fortsetzen des Streaming eines nächsten Programms oder einer nächsten Datei enthalten.
  10. Verfahren nach Anspruch 2, bei dem die Kapitelinformationen für Videoon-demand-Inhalt verwendet werden, der in Kapitel unterteilt ist.
  11. Verfahren nach Anspruch 1, bei dem der Server ein Inhaltsserver ist.
  12. Einrichtung, die aufweist: eine Eingangsschnittstelle, die dazu ausgebildet ist, eine erste Anforderung von einem Benutzer zum Abspielen eines Medienprogramms auf einer ersten Vorrichtung, die ein erstes Qualitätsniveau unterstützt, und eine zweite Anforderung von dem Benutzer zum Abspielen des Medienprogramms auf einer zweiten Vorrichtung, die ein zweites Qualitätsniveau unterstützt, das sich von dem ersten Qualitätsniveau unterscheidet, zu empfangen; einen Speicher, der dazu ausgebildet ist, eine Medienprogrammposition zum Wiederaufnehmen des Abspielens für den Benutzer festzuhalten; eine Ausgangsschnittstelle, die dazu vorgesehen ist, ein erstes Fragment, das dem bei dem ersten Qualitätsniveau kodierten Medienprogramm zugeordnet ist, zu der ersten Vorrichtung zu übertragen, wobei das erste Fragment eine erste Fragmentnummer und eine Boxstruktur aufweist, die Synchronisierungsinformationen und Dateiendeinformationen unterstützt; wobei ein zweites Fragment, das dem Live-Medienprogramm zugeordnet ist, zu der zweiten Vorrichtung übertagen wird, wobei das zweite Fragment eine zweite Fragmentnummer aufweist, die unter Verwendung der Medienprogrammposition abgeleitet wird.
  13. Einrichtung nach Anspruch 12, bei der die Boxstruktur ferner Kapitelinformationen unterstützt.
  14. Einrichtung nach Anspruch 12, bei der die Fragmentnummer einem Zeitindex entspricht.
  15. Einrichtung nach Anspruch 12, bei der die erste Anforderung eine HTTP-HOL-Anforderung ist.
  16. Einrichtung nach Anspruch 12, bei der die Synchronisierungsinformationen zum Synchronisieren von Audio und Video verwendet werden, wenn die Wiedergabe in der Mitte eines Stroms beginnt.
  17. Einrichtung nach Anspruch 12, bei der das erste Fragment und das zweite Fragment unterschiedliche Bereiche des Nahezu-Live-Medienprogramms aufweisen.
  18. Einrichtung nach Anspruch 17, bei der die Clientvorrichtung mit der Wiedergabe des Nahezu-Live-Programms vor Empfangen des zweiten Fragments beginnt.
  19. Einrichtung nach Anspruch 17, bei der die Dateiendeinformationen signalisieren, wann das Nahezu-Live-Medienprogramm beendet ist.
  20. Computerlesbares Speichermedium, das aufweist: einen Computercode zum Empfangen einer ersten Anforderung von einem Benutzer zum Abspielen eines Medienprogramms auf einer ersten Vorrichtung, die ein erstes Qualitätsniveau unterstützt; einen Computercode zum Übertragen eines ersten Fragments, das dem bei dem ersten Qualitätsniveau kodierten Medienprogramm zugeordnet ist, zu der ersten Vorrichtung, wobei das erste Fragment eine erste Fragmentnummer und eine Boxstruktur aufweist, die Synchronisierungsinformationen und Dateiendeinformationen unterstützt; einen Computercode zum Empfangen einer zweiten Anforderung von dem Benutzer zum Abspielen des Medienprogramms auf einer zweiten Vorrichtung, die ein zweites Qualitätsniveau unterstützt, das sich von dem ersten Qualitätsniveau unterscheidet; einen Computercode zum Identifizieren einer Medienprogrammposition, die zum Wiederaufnehmen des Abspielens an einem Server festgehalten wird; einen Computercode zum Übertragen eines zweiten Fragments, das dem Live-Medien-Programm zugeordnet ist, zu der zweiten Vorrichtung, wobei das zweite Fragment eine zweite Fragmentnummer aufweist, die unter Verwendung der Medienprogrammposition abgeleitet wird.
DE112011101908T 2010-06-04 2011-05-19 Qualitätseinstellung unter Verwendung eines fragmentierten Medienstroms Withdrawn DE112011101908T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/794,600 2010-06-04
US12/794,600 US20110299586A1 (en) 2010-06-04 2010-06-04 Quality adjustment using a fragmented media stream
PCT/US2011/037197 WO2011153001A1 (en) 2010-06-04 2011-05-19 Quality adjustment using a fragmented media stream

Publications (1)

Publication Number Publication Date
DE112011101908T5 true DE112011101908T5 (de) 2013-03-28

Family

ID=45064440

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011101908T Withdrawn DE112011101908T5 (de) 2010-06-04 2011-05-19 Qualitätseinstellung unter Verwendung eines fragmentierten Medienstroms

Country Status (4)

Country Link
US (1) US20110299586A1 (de)
DE (1) DE112011101908T5 (de)
GB (1) GB2495867A (de)
WO (1) WO2011153001A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8719921B2 (en) * 2010-08-30 2014-05-06 Mobitv, Inc. User and device authentication for media services
US8892870B2 (en) 2012-03-12 2014-11-18 Sony Corporation Digital rights management for live streaming based on trusted relationships
US9660922B2 (en) * 2012-03-23 2017-05-23 Cisco Technology, Inc. Network assisted rate shifting for adaptive bit rate streaming
CN103581210B (zh) * 2012-07-18 2018-09-11 上海诺基亚贝尔股份有限公司 支持数字广播电视网络的多屏业务平台
US9043825B2 (en) 2012-08-28 2015-05-26 Microsoft Technology Licensing, Llc Content carried ratings based control
US10136443B2 (en) * 2012-09-07 2018-11-20 Nokia Solutions And Networks Oy Mechanism and apparatus to perform cooperative resource management in wireless networks
CN104737512B (zh) 2012-10-11 2019-04-19 三星电子株式会社 用于在混合网络中传送和接收多媒体数据的装置和方法
US9674257B2 (en) * 2013-12-31 2017-06-06 Echostar Technologies L.L.C. Placeshifting live encoded video faster than real time
US9558787B2 (en) * 2014-01-29 2017-01-31 Google Inc. Media application backgrounding
US10171847B2 (en) 2015-09-08 2019-01-01 Funai Electric Co., Ltd. Information device and distribution device
US10277669B1 (en) * 2016-06-06 2019-04-30 Amazon Technologies, Inc. Communication channel between device and CDN during playback
US10349108B2 (en) * 2017-08-24 2019-07-09 Mobitv, Inc. System and method for storing multimedia files using an archive file format

Family Cites Families (11)

* 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
FI20012558A (fi) * 2001-12-21 2003-06-22 Oplayo Oy Menetelmä ja järjestely videoesityksen lähettämiseksi
US7383983B2 (en) * 2004-05-07 2008-06-10 General Instrument Corporation System and method for managing content between devices in various domains
WO2006073578A2 (en) * 2004-11-16 2006-07-13 Broadramp, Inc. System for rapid delivery of digital content via the internet
US20070220565A1 (en) * 2005-11-04 2007-09-20 Angel Albert J Inventory Control With Content Cache, Time Scarcity Marker and Merchandising Incentives for Transactional Shopping Video On Demand Cable Systems
US8788933B2 (en) * 2005-12-01 2014-07-22 Nokia Corporation Time-shifted presentation of media streams
KR100829113B1 (ko) * 2006-04-28 2008-05-14 삼성전자주식회사 디지털 멀티미디어 방송 서비스에서 방송 데이터 제공 장치및 방법
US20080040498A1 (en) * 2006-08-10 2008-02-14 Nokia Corporation System and method of XML based content fragmentation for rich media streaming
EP2015587B1 (de) * 2007-05-14 2012-01-25 Apple Inc. Speicherverfahren eines Multimediaobjekts, Datenstruktur und entsprechendes Endgerät
US8352996B2 (en) * 2008-06-27 2013-01-08 Microsoft Corporation Adaptive video switching for variable network conditions
US9438861B2 (en) * 2009-10-06 2016-09-06 Microsoft Technology Licensing, Llc Integrating continuous and sparse streaming data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ISO/IEC 14496-12

Also Published As

Publication number Publication date
US20110299586A1 (en) 2011-12-08
GB201300028D0 (en) 2013-02-13
GB2495867A (en) 2013-04-24
WO2011153001A1 (en) 2011-12-08

Similar Documents

Publication Publication Date Title
DE112011101908T5 (de) Qualitätseinstellung unter Verwendung eines fragmentierten Medienstroms
DE112012001770T5 (de) Auf Echtzeitverarbeitungsfähigkeit basierende Qualitätsanpassung
DE112011101911T5 (de) Fragmentierte Dateistruktur für die Ausgabe von Live-Medien-Streams
DE112012002159T5 (de) Kontextsensitive Client-Pufferschwellenwerte
DE112011103333T5 (de) Medienkonvergenzplattform
DE112011102879T5 (de) Medienrechteverwaltung auf mehreren Geräten
DE112011102878T5 (de) Nutzer- und Vorrichtungsauthentifizierung für Mediendienstleistungen
DE112013001136T5 (de) Effiziente Abgrenzung und Verteilung von Media-Segmenten
US9386331B2 (en) Optimizing video clarity
US8818021B2 (en) Watermarking of digital video
DE112012002526B4 (de) Medieninhalt-Übertragungsverfahren und Übertragungsvorrichtung unter Verwendung desselben
DE112011101004T5 (de) Medienkonvergenzplattform
DE112013000995T5 (de) Skalierbare Wasserzeicheneinfügung für fragmentierte Medienstrom-Bereitstellung
DE112012004994T5 (de) Verbesserte Bildergruppen-(GOP)-Ausrichtung in Medienstromvarianten
US20240155019A1 (en) Synchronizing independent media and data streams using media stream synchronization points
US20130135525A1 (en) Fragment boundary independent closed captioning
WO2018042036A1 (de) Verfahren zur übertragung von echtzeitbasierten digitalen videosignalen in netzwerken
DE102018108784A1 (de) Verfahren zum Senden eines digitalen Videosignals an ein Empfangsgerät, Recheneinheit und Computerprogrammprodukt
Rahimi Motem Bookmarking and Seeking Tool for Online Videos
DE112018002893T5 (de) Verfahren zum Senden und Empfangen eines Rundsendungssignals und eine Vorrichtung hierfür
Lund Implementation of scalable online video services

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: HASELTINE LAKE LLP, DE

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