DE112012004994T5 - Verbesserte Bildergruppen-(GOP)-Ausrichtung in Medienstromvarianten - Google Patents

Verbesserte Bildergruppen-(GOP)-Ausrichtung in Medienstromvarianten Download PDF

Info

Publication number
DE112012004994T5
DE112012004994T5 DE112012004994.2T DE112012004994T DE112012004994T5 DE 112012004994 T5 DE112012004994 T5 DE 112012004994T5 DE 112012004994 T DE112012004994 T DE 112012004994T DE 112012004994 T5 DE112012004994 T5 DE 112012004994T5
Authority
DE
Germany
Prior art keywords
gop
media stream
variants
aligned
size change
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
DE112012004994.2T
Other languages
English (en)
Inventor
Ola Hallmarker
Dag Henriksson
Gabriel Netterdag
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 DE112012004994T5 publication Critical patent/DE112012004994T5/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/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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • 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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • 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/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6143Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via a satellite
    • 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/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • H04N21/6379Control signals issued by the client directed to the server or network components directed to server directed to encoder, e.g. for requesting a lower encoding rate
    • 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/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
    • 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
    • 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/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format
    • 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/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/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Astronomy & Astrophysics (AREA)
  • General Physics & Mathematics (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Ein Medienstrom wird empfangen und in Gruppen von Bildern (GOPs) zur Verarbeitung in Ausgangsmedienströme, die Qualitätsniveaus haben, abgegrenzt. Die Medieneingabe braucht nur einmal decodiert zu werden. Der decodierte Strom wird entlang verschiedener Pfade basierend auf Auflösung und hinsichtlich der Größe geänderter Ausgangsmediendaten aufgeteilt und zu mehreren Codierern und Fragmentierern gesendet, um unterschiedliche Varianten an Bitrate und Bildwechselfrequenz für jede Auflösung zu erzeugen. Die erzeugten Varianten können als Fragmente auf gemeinsamer Speicherung vorgehalten werden. Ein besonderer Strom, der einer besonderen Variante entspricht, kann anhand der codierten Fragmente rekonstruiert werden.

Description

  • DATEN VERWANDTER ANMELDUNGEN
  • Diese Anmeldung beansprucht den Vorrang vor U.S. Patentanmeldung Nr. 13/308,062 mit dem Titel ENHANCED GROUP OF PICTURES (GOP) ALIGNMENT IN MEDIA STREAM VARIANTS, eingereicht am 30. November 2011 (Aktenzeichen des Bevollmächtigten MOBIP087US), deren vollständige Offenbarung hier durch Verweis für alle Zwecke aufgenommen wird.
  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung betrifft verbesserte GOP-Ausrichtung in Medienstromvarianten.
  • BESCHREIBUNG DES STANDS DER TECHNIK
  • Medienströme werden typischerweise vor dem Übertragen zu einer Vielfalt von Geräten codiert oder umcodiert. In vielen Fällen werden Live-Medienströme in einem Format, wie zum Beispiel H.264 (MPEG-4 Part 10), codiert. H.264 ist ein blockorientierter Codec zur Bewegungskompensation, der weitgehend bei Blu-ray-Discs und beim Streaming von Internetquellen verwendet wird. Das H.264-Codieren kann ressourcenintensiv sein, und spezialisierte Hardware wird oft verwendet, um das Codieren insbesondere bei hohen Qualitätsniveaus zu beschleunigen. Bei vielen Umsetzungen werden Live-Strom-Codierungsserver mit anwendungsspezifischer Hardware konfiguriert, um einen oder mehrere Kanäle oder Live-Ströme zu empfangen und die Kanäle oder Live-Ströme in besondere Formate zu codieren. Die Codierungsserver können die Fähigkeit besitzen, Echtzeit-Live-Codierung an bis zu einem halben Dutzend Live-Strömen gleichzeitig auszuführen.
  • Um die große Vielfalt an Geräten und Netzwerken zu unterstützen, muss der Inhalt in einer Vielfalt von Qualitätsniveaus bereitgestellt werden, die sich hinsichtlich der Bitrate, Bildwechselfrequenz, Auflösung usw. unterscheiden können. Bei bestimmten Systemen können Geräte zu Strominhalt mit unterschiedlichen Qualitätsniveaus basierend auf den Fähigkeiten des Geräts und der Ressourcenverfügbarkeit des Netzwerks umschalten. Herkömmliche Mechanismen, die das Umschalten erlauben, sind jedoch beschränkt, insbesondere was die zeitliche Ausrichtung betrifft.
  • Die Techniken und Mechanismen der vorliegenden Erfindung stellen daher verbesserte Mechanismen für die GOP-Ausrichtung bereit.
  • Kurze Beschreibung der Zeichnungen
  • Diese Offenbarung versteht man unter Bezugnahme auf die folgende Beschreibung gemeinsam mit den begleitenden Zeichnungen, die besondere Ausführungsformen veranschaulichen, am besten.
  • 1 veranschaulicht ein Beispiel eines Systems für verbesserte GOP-Ausrichtung.
  • 2 veranschaulicht ein Beispiel eines Mechanismus zum Verbessern der GOP-Ausrichtung.
  • 3 veranschaulicht eine Technik zum Ausführen von GOP-Ausrichtung.
  • 4 veranschaulicht eine Technik zum Skalieren verteilter Codierressourcen.
  • 5 veranschaulicht Beispiele von Dateien, die von einem Fragmentschreiber gespeichert werden.
  • 6 veranschaulicht ein Beispiel eines Austauschs, der mit einem Fragmentierungssystem verwendet wird.
  • 7 veranschaulicht ein beispielhaftes System.
  • BESCHREIBUNG BEISPIELHAFTER AUSFÜHRUNGSFORMEN
  • Es wird nun ausführlich auf einige spezifische Beispiele der Erfindung Bezug genommen, die die besten Ausführungsformen, die die Erfinder zum Ausführen der Erfindung berücksichtigen, enthalten. Beispiele dieser spezifischen Ausführungsformen sind in den begleitenden Zeichnungen veranschaulicht. Obwohl die Erfindung verbunden mit diesen spezifischen Ausführungsformen beschrieben ist, ist klar, dass sie nicht bezweckt, die Erfindung auf die beschriebenen Ausführungsformen zu beschränken. Im Gegenteil wird beabsichtigt, dass sie alle Alternativen, Änderungen und Äquivalente enthält, die im Sinn und Geltungsbereich der Erfindung, wie von den anliegenden Ansprüchen definiert, liegen.
  • Die Techniken der vorliegenden Erfindung werden zum Beispiel in Zusammenhang mit Live-Medienströmen beschrieben. Man sollte jedoch beachten, dass Live-Ströme nicht nur Echtzeit-Live-Ströme umfassen, sondern auch andere Live-Ströme und Nahezu-Live-Ströme. In der folgenden stehenden Beschreibung wurden zum Zweck eines gründlichen Verstehens der vorliegenden Erfindung zahlreiche spezifische Details dargelegt. Besondere beispielhafte Ausführungsformen der vorliegenden Erfindung können ohne einige oder alle dieser spezifischen Details umgesetzt werden. Bei anderen Fällen werden gut bekannte Vorgänge nicht ausführlich beschrieben, um die vorliegende Erfindung nicht unnötig unklar zu machen.
  • Unterschiedliche Techniken und Mechanismen der vorliegenden Erfindung werden zur Klarheit manchmal in der Singularform beschrieben. Man muss jedoch berücksichtigen, dass einige Ausführungsformen, wenn es nicht anders angegeben ist, mehrere Iterationen einer Technik oder mehrere Instanziierungen eines Mechanismus enthalten. Ein System verwendet zum Beispiel einen Prozessor in einer Vielfalt von Kontexten. Man wird jedoch zu schätzen wissen, dass ein System mehrere Prozessoren verwenden kann, während es innerhalb des Geltungsbereichs der vorliegenden Erfindung bleibt, wenn es nicht anders angegeben ist. Ferner beschreiben die Techniken und Mechanismen der vorliegenden Erfindung gelegentlich eine Verbindung zwischen zwei Einheiten. Man muss berücksichtigen, dass eine Verbindung zwischen zwei Einheiten nicht unbedingt eine direkte, unbehinderte Verbindung bedeutet, da eine Vielfalt anderer Einheiten zwischen den zwei Einheiten vorhanden sein. Ein Prozessor kann zum Beispiel mit einem Speicher verbunden sein, es ist jedoch klar, dass eine Mehrzahl von Brücken und Controllern zwischen dem Prozessor und im Speicher vorhanden sein kann. Eine Verbindung bedeutet folglich nicht eine direkte, unbehinderte Verbindung, außer wenn es anders angegeben ist.
  • Übersicht
  • Eine Medieneingabe wird empfangen und in Gruppen von Bildern (GOPs) zum Verarbeiten in Ausgangsmedienströme, die unterschiedliche Qualitätsniveaus haben, abgegrenzt. Die Medieneingabe braucht nur einmal decodiert zu werden. Der decodierte Strom wird entlang unterschiedlicher Pfade basierend auf Auflösung aufgeteilt, und Ausgangsmediendaten in veränderter Größe werden zu mehreren Codierern und Fragmentierern gesendet, um Varianten in der Bitrate und Bildwechselfrequenz für jede Auflösung zu erzeugen. Die erzeugten Varianten können als Fragmente auf gemeinsamem Speicher vorgehalten werden. Ein besonderer Strom, der einer besonderen Variante entspricht, kann anhand der codierten Fragmente rekonstruiert werden.
  • Beispielhafte Ausführungsformen
  • Eine Vielfalt von Mechanismen wird verwendet, um Medienströme zu Geräten zu liefern. Unterschiedliche Geräte und unterschiedliche Netzwerke können unterschiedliche Varianten eines Medienstroms erfordern. Einige Geräte können einen Strom mit höherer Bitrate oder höherer Auflösung fordern, während Änderungen der Netzwerkbedingungen einen Strom oder ein Umschalten zu einem Strom mit einem niedrigeren Qualitätsniveau erfordern können. Einige Geräte können fähig sein, höhere Auflösungen zu handhaben, während andere beschränkte Verarbeitungsressourcen oder beschränkten Bildschirmplatz aufweisen können. Daher codieren viele Systeme zahlreiche Varianten jedes Medienstroms. Ein Medienanbieter, der 152 Kanäle deckt, kann zum Beispiel 8 Varianten jedes Kanals für eine Summe von 1216 Varianten codieren. Bei bestimmten Fällen kann ein Medienanbieter sogar jeden Kanal in 8 Varianten für jeden unterstützten Codec codieren.
  • Gemäß verschiedenen Ausführungsformen, kann ein Gerät adaptiv zwischen Varianten in Abhängigkeit von Geräteressourcen- und Netzwerkressourcenverfügbarkeit umschalten. Verschiedene Varianten desselben Medieninhalts sind jedoch nicht immer ausgerichtet. Die Schlüsselbilder und entsprechenden GOPs für verschiedene Varianten können zu verschiedenen Zeitpunkten übertragen werden. Bei einigen Fällen können verschiedene Varianten nicht einmal dieselben codierten Schlüsselbilder haben. Analysen zeigen an, dass, auch wenn dieselben Schlüsselbilder verfügbar sind, Schlüsselbilder in dazugehörenden GOPs oft nicht ausgerichtet sind, was zu zeitlichen Verschiebungen von mehreren Sekunden während einer Stromumschaltung führen kann. Bei besonderen Ausführungsformen sollte das Umschalten zwischen Varianten für den Benutzer nahtlos sein.
  • Gemäß verschiedenen Ausführungsformen, wird ein verteiltes Codierungssystem bereitgestellt, das Schlüsselbilder, die mit GOPs-Ausgabe verbunden sind, über alle Varianten während des Codierungsstadiums ausrichtet. Gemäß unterschiedlichen Ausführungsformen, werden die Medienströmen, die von Satelliten- oder Inhaltsanbieterquellen empfangen werden, abgegrenzt und zu mehreren zustandslosen Codierern und Fragmentierungssystemen oder Fraggern abgegrenzt und verteilt. Gemäß verschiedenen Ausführungsformen, wird ein Anpassen der Größe ausgeführt, um die Auflösung einzustellen, bevor die Bitraten- und Bildwechselfrequenz-Umcodierung ausgeführt wird. Bei besonderen Ausführungsformen werden GOPs entlang von Codierungspfaden gemäß 8 unterschiedlichen Auflösungen aufgeteilt. Gemäß verschiedenen Ausführungsformen, kann jeder der 8 unterschiedlichen Pfade dann in 2 bis 6 Qualitätsniveaus codiert werden. Schlüsselbilder treten periodisch auf und Ausgaben über alle Varianten werden GOP-ausgerichtet.
  • Bei einigen Beispielen werden Medienströme, die von einer Satellitenquelle her empfangen werden, in Bildergruppen (GOPs) getrennt und zu verschiedenen H.264/MPEG-4 Part 10-Codierern und Fraggern in einer Cloud-Umgebung verteilt. Die Codierer und Fragger verarbeiten ihre jeweiligen zugewiesenen Jobs und senden codierte Fragmente zu verteilter Speicherung. Die Benutzer können dann auf die Fragmente, die einem Medienstrom mit einer besonderen Variante eines ausgewählten Kanals entsprechen, zugreifen. Zusätzliche Codierer und Fragger können je nach Bedarf online gebracht oder offline genommen werden. Fragmente, die für verschiedene Varianten codiert sind, können dann gespeichert, gepuffert und/oder zu verschiedenen Geräten verteilt werden. Die Geräte können zwischen Varianten umschalten, ohne zeitliche Einstellungen aufgrund der GOP-Fehlausrichtung ausführen zu müssen.
  • Herkömmliche MPEG-4-Dateien erfordern, dass ein Player oder ein Gerät den gesamten Header parst, bevor irgendwelche der Daten decodiert werden können. Das Parsen des gesamten Headers kann beträchtliche Zeit in Anspruch nehmen, insbesondere auf Geräten mit beschränkten Netzwerk- und Verarbeitungsressourcen. Die Techniken und Mechanismen der vorliegenden Erfindung stellen folglich ein fragmentiertes MPEG-4-System bereit, das Wiedergabe beim Empfangen eines ersten MPEG-4-Dateifragments erlaubt. Ein zweites MPEG-4-Dateifragment kann unter Einsatz von Informationen, die in dem ersten MPEG-4-Dateifragment enthalten sind, angefordert werden. Gemäß verschiedenen Ausführungsformen, kann das zweite angeforderte MPEG-4-Dateifragment ein Fragment sein, das einem höheren oder niedrigeren Bitratenstrom als der Strom, der mit dem ersten Dateifragment verbunden ist, entspricht.
  • MPEG-4 ist ein erweiterbares Mediencontainerformat, dass keine festgelegte Struktur zum Beschreiben von Medientypen hat. Stattdessen hat MPEG-4 eine Objekthierarchie, die es erlaubt, für jedes Format Sonderstrukturen zu definieren. Die Formatbeschreibung wird in der Box der Stichprobenbeschreibung (,stsd') für jeden Strom gespeichert. Die Stichprobenbeschreibungsbox kann Informationen enthalten, die nicht bekannt sind, bis alle Daten codiert wurden. Die Stichprobenbeschreibungsbox kann zum Beispiel eine durchschnittliche Bitrate, die vor dem Codieren bekannt ist, enthalten.
  • Gemäß verschiedenen Ausführungsformen, werden MPEG-4-Dateien fragmentiert, so dass ein Live-Strom in einer verteilten Architektur auf dynamisch skalierbare Hardware codiert, aufgezeichnet und in nahezu Live-Art wiedergegeben werden kann. MPEG-4-Dateien können angelegt werden, ohne dass man zu warten braucht, bis der gesamte Inhalt geschrieben ist, um den Header des Films vorzubereiten. Um MPEG-4-Fragmentierung ohne Frequenzbandexterne Signalgebung zu erlauben, wird eine Boxstruktur bereitgestellt, die Synchronisationsinformationen, Dateiende-Informationen und Kapitelinformationen enthält. Gemäß verschiedenen Ausführungsformen, werden die Synchronisationsinformationen verwendet, um Audio und Video zu synchronisieren, wenn die Wiedergabe das Beginnen in der Mitte eines Stroms nach sich zieht. Dateiende-Informationssignale melden, wenn das aktuelle Programm oder die Datei vorbei ist. Das kann Informationen zum Fortsetzen des Streamings des nächsten Programms oder der nächsten Datei enthalten. Kapitelinformationen können für Videoinhalt auf Anfrage verwendet werden, der in Kapitel aufgeteilt ist, möglicherweise durch Werbeslots getrennt.
  • TCP wird umfassender benutzt als UDP, und Netzwerktechnologien, die Umschalten, Lastausgleicher und Netzwerkkartentechnologien enthalten, sind für TCP stärker entwickelt als für UDP. Techniken und Mechanismen werden daher zum Liefern von fragmentierten Live-Medien über TCP bereitgestellt. Außerdem werden Sequenzinformationen vorgehalten und/oder modifiziert, um einen nahtlosen Betrieb des Client-Geräts zu erlauben. Timing- und Sequenzinformationen in einem Medienstrom werden bewahrt.
  • Anfragen werden den Clients als getrennte Dateien dargelegt und Dateien sollten auf Playern wiedergegeben werden, die fragmentierte MPEG-4 handhaben. Live- oder Near-Live-, Video auf Anfrage (VOD) und digitaler Videoaufzeichnungs-(DVR)-Inhalt können alle auf verteilten und dynamisch skalierbaren Codierungsressourcen codiert und unter Fragmentierung verarbeitet werden.
  • 1 veranschaulicht ein Beispiel eines Systems zum Verbessern der GOP-Ausrichtung. Gemäß verschiedenen Ausführungsformen, wird ein Medienstrom von einer Programminhaltanbieterquelle, wie zum Beispiel einem Satelliten her empfangen. Bei besonderen Ausführungsformen wird der Medienstrom in einem MPEG 2-Format bereitgestellt. Der Medienstrom wird in Bildergruppen (GOPs) anhand eines GOP-Delineators 101 abgegrenzt. Die GOP ist eine Gruppe von Bildern in codierten Medien und enthält typischerweise Schlüssel- und Voraussagerahmen. Ein Schlüsselrahmen kann ein I-Rahmen oder intra-codierter Rahmen sein, der ein stehendes Bild darstellt, das von anderen Bildern unabhängig ist. Gemäß verschiedenen Ausführungsformen, beginnt jede GOP mit einem I-Rahmen. Voraussagende Rahmen, wie zum Beispiel P-Rahmen oder voraussagend codierte Rahmen und B-Rahmen oder bidirektionale voraussagend codierte Rahmen enthalten unterschiedliche Informationen, die Unterscheidungen von Bezugsrahmen, wie zum Beispiel einem Schlüsselrahmen oder anderen voraussagenden Rahmen enthalten.
  • Nachdem der Medienstrom in GOPs abgegrenzt wurde, wird einem Arbeits-Dispatcher 103 gemeldet, dass eine GOP verfügbar ist. Gemäß verschiedenen Ausführungsformen, bestimmt der Arbeits-Dispatcher 103, ob er der Dispatcher ist, der diese zu bearbeiten hat, sowie was mit der GOP zu tun ist. Gemäß verschiedenen Ausführungsformen, kann der Arbeits-Dispatcher bestimmen, dass die GOP in 5 unterschiedliche Auflösungen mit jeweils 6 unterschiedlichen Qualitätsniveaus codiert werden sollte. Bei besonderen Ausführungsformen, legt der Arbeits-Dispatcher 103 eine Beschreibung dessen an, was auszuführen ist, und sendet den Job zu Jobwarteschlangen 105. Gemäß verschiedenen Ausführungsformen, sind die Jobwarteschlangen First-in/First-out-Warteschlangen (FIFO), die die meiste Zeit leer sind. Die Codierer/Fragger 131, 133 und 135 fordern Jobs an und erzielen sie von den Jobwarteschlangen 105.
  • Gemäß verschiedenen Ausführungsformen, sind die Codierer/Fragger 131, 133 und 135 angeordnet, um Verarbeitung an hinsichtlich der Auflösung größenveränderten Daten auszuführen. Bei einigen Beispielen wird nach dem Abgrenzen des Medienstroms in GOPs Auflösungsverarbeitung an einer Größenänderungsschicht 121 ausgeführt, um ein effizienteres Codierern an den Codierern/Fraggern 131, 133 und 135 zu erlauben. Bei besonderen Ausführungsformen wird ein Medienstrom in GOPs abgegrenzt, die GOPs werden in sechs verschiedene Pfade aufgeteilt, die den sechs verschiedenen Auflösungen entsprechen, und jede der Auflösungen wird in mehrere Bitraten und Bildwechselfrequenzen verarbeitet.
  • Gemäß verschiedenen Ausführungsformen, sind Hunderte oder Tausende Codierer/Fragger 131, 133 und 135 in einem System resident. Bei besonderen Ausführungsformen führt dasselbe Gerät sowohl das Codieren als auch das Fragmentieren aus, man sollte jedoch beachten, dass getrennte Geräte verwendet werden können, um diese Vorgänge auszuführen. Gemäß verschiedenen Ausführungsformen, können zusätzliche Codierer/Fragger dynamisch online gebracht werden, wenn die Ressourcenauslastung einen bestimmten Schwellenwert erreicht. Alternativ können Codierer/Fragger offline genommen werden, wenn die Ressourcenausnutzung unter einen bestimmten unteren Wert fällt. Gemäß verschiedenen Ausführungsformen, sind die Codierer/Fragger 131, 133 und 135 virtuelle Maschinen, die auf einem oder mehreren physischen Servern resident sein können, die spezialisierte Codierungshardware haben oder auch nicht. Bei besonderen Ausführungsformen bestimmt ein Cloud-Service, wie viele dieser virtuellen Maschinen basierend auf festgelegten Schwellenwerten zu verwenden sind.
  • Gemäß verschiedenen Ausführungsformen, wird ein einziger Identifikator für jede GOP bereitgestellt, und ein Protokoll jedes Schritts wird geführt. Nachdem die Codierer/Fragger 131, 133 und 135 die Verarbeitungsjobs abgeschlossen haben und codierte Fragmente ausgegeben haben, können die codierten Fragmente in verteilter und redundanter Speicherung 109 vorgehalten werden. Bei einem Beispiel ist die verteilte und redundante Speicherung 109 ein Speichersystem, das mit einem virtualisierten Scale-Out-Netzwerk verbunden ist. Die verteilte und redundante Speicherung 109 erlaubt es einem System, zahlreiche Fragmente auf irgendeiner Anzahl virtualisierter Speichergeräte vorzuhalten.
  • Gemäß verschiedenen Ausführungsformen, sind Fragmente auf der verteilten und redundanten Speicherung 109 für den Fragmentserver 111 zugänglich. Der Fragmentserver 111 stellt die Caching-Schicht mit Fragmenten für Clients bereit. Die Konzeptionsphilosophie hinter der Client-/Server-API minimiert Rundläufe und verringert die Komplexheit so weit wie möglich, wenn es um die Lieferung der Mediendaten zu einem Client-Gerät geht. Der Fragmentserver 111 stellt Live-Ströme und/oder DVR-Konfigurationen bereit.
  • Gemäß verschiedenen Ausführungsformen, verwendet ein Client-Gerät ein Medienbauteil, das fragmentierte MPEG-4-Dateien anfordert, Trick-Play gestattet und Bandbreitenanpassung verwaltet. Bei besonderen Ausführungsformen empfängt jedes Client-Gerät einen Medienstrom, der einem Live-Strom um 12 Sekunden oder mehr verzögert folgt. Eine Server-Pufferung kann vorhanden sein. Gemäß verschiedenen Ausführungsformen, können GOP-Abgrenzung, Codierung, Fragmentierung innerhalb eines Server-Pufferungs-Zeitrahmens auftreten. Indem man zahlreiche Codierer/Fragger hat, kann die Kapazität jederzeit um Prozentpunkte erhöht oder verringert werden, während die GOP-Ausrichtung für nahtlose Variantenumschaltung vorgehalten wird.
  • 2 veranschaulicht ein Beispiel eines verteilten, skalierbaren Codierungssystems, das für Redundanz sorgt. Gemäß verschiedenen Ausführungsformen, wird ein Medienstrom von einer Programminhaltanbieterquelle, wie zum Beispiel einem Satelliten her empfangen. Bei besonderen Ausführungsformen wird der Medienstrom in einem MPEG 2-Format bereitgestellt. Der Medienstrom wird in Bildergruppen (GOPs) anhand eines GOP-Delineators 201 abgegrenzt. GOPs sind eine Gruppe von Bildern in codierten Medien und enthalten typischerweise Schlüssel- und Voraussagerahmen. Ein Schlüsselrahmen kann ein I-Rahmen oder intra-codierter Rahmen sein, der ein stehendes Bild darstellt, das von anderen Bildern unabhängig ist. Gemäß verschiedenen Ausführungsformen, beginnt jede GOP mit einem I-Rahmen. Voraussagende Rahmen, wie zum Beispiel P-Rahmen oder voraussagend codierte Rahmen und B-Rahmen oder bidirektionale voraussagend codierte Rahmen enthalten unterschiedliche Informationen, die Unterscheidungen von Bezugsrahmen, wie zum Beispiel einen Schlüsselrahmen oder anderen voraussagenden Rahmen enthalten. Gemäß verschiedenen Ausführungsformen, sind gleichzeitig mehrere GOP-Delineatoren 201 aktiv. Wenn ein GOP-Delineator versagt, sind andere GOP-Delineatoren verfügbar, und alle GOP-Delineatoren können Bekanntgaben aussenden.
  • Nachdem ein Medienstrom in GOPs abgegrenzt wurde, wird ein anpassungsfähiger Lastausgleicher 211 verwendet, um Arbeit zu den Arbeits-Dispatchern 221 und 225 zu verteilen. Wenn ein Arbeits-Dispatcher im Augenblick der Übernahme einer Bekanntgabe versagt, tritt eine andere Bekanntgabe zu einem anderen Arbeits-Dispatcher auf. Zwei Bekanntgaben für dieselbe GOP landen auf zwei unterschiedlichen Maschinen. An jedem Arbeits-Dispatcher 221 und 225, kann es auch einen Proxy geben. Gemäß verschiedenen Ausführungsformen, ist der GOP-Delineator 201 auf einem anderen Datencenter resident als die Arbeits-Dispatcher 221 und 225. Der Einsatz von zwei Proxy an den Arbeits-Dispatchern 221 und 225 erlaubt einen einzelnen Transfer eines GOP-Medienstroms zwischen zwei Datenzentren.
  • Gemäß verschiedenen Ausführungsformen, bestimmen die Arbeits-Dispatcher 221 und 225, was ein besonderer Job ist, und was mit der GOP zu tun ist. Gemäß verschiedenen Ausführungsformen, können die Arbeits-Dispatcher 221 und 225 bestimmen, dass die GOP in 8 unterschiedliche Auflösungen mit jeweils 10 unterschiedlichen Varianten für jede Auflösung codiert werden sollte. Bei besonderen Ausführungsformen, legen die Arbeits-Dispatcher 221 und 225 Beschreibungen dessen an, was auszuführen ist, und senden Jobs zu Jobwarteschlangen 223. Gemäß verschiedenen Ausführungsformen, weisen die Jobwarteschlangen 223 eine aktive Jobwarteschlange und eine Standby-Jobwarteschlange auf. Gemäß verschiedenen Ausführungsformen, sind die Jobwarteschlangen First-in/First-out-Warteschlangen (FIFO), die die meiste Zeit leer sind. Timeouts können mit jedem Job in der Warteschlange verbunden sein. Die Größenänderungsschicht 227 kann einen oder mehrere Codierer enthalten, der das Größenändern eines besonderen Stroms vor dem Umcodieren für unterschiedliche Bitraten und Bildwechselfrequenzen ausführt. Bei einigen Beispielen werden 8 Größenänderungsbauteile zum Unterstützen 8 unterschiedlicher Lösungen bereitgestellt. Für jedes Größenänderungsbauteil werden 10 Codierer/Fragger bereitgestellt, um insgesamt 80 Varianten zu erzeugen. Gemäß verschiedenen Ausführungsformen, fordert die Größenänderungsschicht Jobs an und erzielt sie von den Jobwarteschlangen 223. Die Jobs werden anschließend zu den Codierern/Fraggern 231, 233 und 235 bereitgestellt. Bei besonderen Ausführungsformen sind die Codierer/Fragger 231, 233 und 235 identisch und können dynamisch aktiviert oder deaktiviert werden. Gemäß verschiedenen Ausführungsformen, sind Hunderte oder Tausende Codierer/Fragger in einem System resident.
  • Bei besonderen Ausführungsformen führt dasselbe Gerät sowohl das Codieren als auch das Fragmentieren aus, man sollte jedoch beachten, dass getrennte Geräte verwendet werden können, um diese Vorgänge auszuführen. Gemäß verschiedenen Ausführungsformen, können zusätzliche Größenänderungsbauteile und/oder Codierer/Fragger dynamisch online gebracht werden, wenn die Ressourcenauslastung einen bestimmten Schwellenwert erreicht. Alternativ können Größenänderungsbauteile und/oder Codierer/Fragger offline genommen werden, wenn die Ressourcenausnutzung unter einen bestimmten unteren Wert fällt. Gemäß verschiedenen Ausführungsformen, ist der Codierer/Fragger 231, 233 und 235 eine virtuelle Maschine, die auf einem oder mehreren physischen Servern resident sein kann, die spezialisierte Codierungshardware haben oder auch nicht. Bei besonderen Ausführungsformen bestimmt ein Cloud-Service, wie viele dieser virtuellen Maschinen basierend auf festgelegten Schwellenwerten zu verwenden sind.
  • Gemäß verschiedenen Ausführungsformen, sind die Codierer/Fragger 231, 233 und 235 zustandslos. Gemäß verschiedenen Ausführungsformen, wird ein einziger Identifikator für jede GOP bereitgestellt, und ein Protokoll jedes Schritts wird geführt. Nachdem die Codierer/Fragger 231, 233 und 235 den Job abgeschlossen haben und codierte Fragmente erzeugt haben, können die codierten Fragmente in der verteilten und redundanten Speicherung 241 vorgehalten werden. Bei einem Beispiel ist die verteilte und redundante Speicherung 241 ein Speichersystem, das mit einem virtualisierten Scale-Out-Netzwerk verbunden ist. Die verteilte und redundante Speicherung 241 enthält Knoten 243 und 245, die es einem System erlauben, zahlreiche Fragmente auf einer beliebigen Anzahl virtualisierter Speichervorrichtungen vorzuhalten.
  • Gemäß verschiedenen Ausführungsformen, sind Fragmente auf der verteilten und redundanten Speicherung 241 für die Fragmentserver 251, 253 und 255 zugänglich. Die Fragmentserver 251, 253 und 255 stellen die Caching-Schicht mit Fragmenten für Clients bereit. Die Konzeptionsphilosophie hinter der Client-/Server-API minimiert Rundläufe und verringert die Komplexheit so weit wie möglich, wenn es um die Lieferung der Mediendaten zu einem Client-Gerät geht. Die Fragmentserver 251, 253 und 255 stellen Live-Ströme und/oder DVR-Konfigurationen bereit. Gemäß verschiedenen Ausführungsformen, arbeiten Fragmentserver zustandslos. Bei besonderen Ausführungsformen arbeiten Fragmentserver unter Einsatz von HTTP-Get-Anfragen. Gemäß verschiedenen Ausführungsformen, erlaubt jeder Vorgang das Fortsetzen eines Stroms ohne zentralisierte Steuerstelle. Ein anpassungsfähiger Lastausgleicher 261 verteilt Fragmentanfragen von einer Cloud-Front 271 zu mehreren Fragmentservern 251, 253 und 255.
  • Gemäß verschiedenen Ausführungsformen, verwendet ein Client-Gerät eine Medienkomponente, die fragmentierte MPEG-4-Dateien angefordert, Trick-Play gestattet und Bandbreitenanpassung verwaltet. Bei besonderen Ausführungsformen empfängt jedes Client-Gerät einen Medienstrom, der einem Live-Strom um 12 Sekunden oder mehr verzögert folgt. Eine Server-Pufferung kann vorhanden sein. Gemäß verschiedenen Ausführungsformen, können GOP-Abgrenzung, Codierung, Fragmentierung innerhalb eines Server-Pufferungs-Zeitrahmens auftreten. Indem man zahlreiche Codierer/Fragger hat, kann die Kapazität in Prozentpunkten jederzeit erhöht oder verringert werden.
  • 3 veranschaulicht ein Beispiel einer Technik zum Ausführen des verteilten Codieren. Bei 301 wird ein Live-Medienstrom empfangen. Gemäß verschiedenen Ausführungsformen, ist der Medienstrom ein Live-MPEG-2-Medienstrom, der von einem Satellitenempfänger her empfangen wird. Bei besonderen Ausführungsformen, betrifft ein Live-Medienstrom ein Medienprogramm, das an einer bestimmten Zeit empfangen wird, das zur Verteilung an dieser bestimmten Zeit bestimmt ist. Ein Programm kann zum Beispiel konfiguriert sein, um um 8 PM PST zu laufen, und der Live-Medienstrom wird an dem Satellitenempfänger um 8 PM PST empfangen. Bei 303, wird der Medienstrom in GOPs abgegrenzt. Bei besonderen Ausführungsformen werden Schlüsselrahmen identifiziert und verwendet, um Bildgruppen zu beginnen. Die GOPs können optional an diesem Zeitpunkt vor der Übertragung bei 305 verschlüsselt werden.
  • Bei 307 bestimmt ein Arbeits-Dispatcher, dass eine GOP verfügbar ist. Gemäß verschiedenen Ausführungsformen, sind der GOP-Delineator und der Arbeits-Dispatcher in verschiedenen Datencentren resident, und es ist wünschenswert, an Stelle redundanter GOP-Transfers einen einzigen GOP-Transfer zu haben. Bei 309 legt der Arbeits-Dispatcher eine Beschreibung mehrerer Jobs an, die verschiedenen Codierungs-Qualitätsniveaus entsprechen und platziert den Job in Arbeitswarteschlangen. Bei 311, erzielt ein Bauteil zur Änderung der Größe den Job von der Jobwarteschlange und führt Verarbeitung aus, um Daten mit der richtigen Auflösung auszugeben. Bei besonderen Ausführungsformen, führen zahlreiche Bauteile zum Ändern der Größe Verarbeitung aus, um Daten mit zahlreichen verschiedenen Auflösungen auszugeben. Ein Codierer/Fragger codiert bei 313 die GOP mit entsprechender Auflösung in ein Format, wie zum Beispiel H.264 mit einer bestimmten Bildfrequenz und/oder Bitratenfragmenten. Bei besonderen Ausführungsformen codieren zahlreiche Codierer/Fragger GOPs mit entsprechender Auflösung in besondere Bildfrequenz und/oder Bitratenfragmente.
  • Durch Ausführen der Änderung der Größe zuerst bei 311, können das Codieren und die Fragmentierung effizienter bei 313 ausgeführt werden. Jeder Codierer/Fragger braucht nicht Auflösungseinstellung gemeinsam mit Bitraten- und Bildwechselfrequenzcodierung auszuführen, sondern kann stattdessen nur die Codierung der Bitrate und Bildwechselfrequenz ausführen. Codierte Fragmente werden auf verteilter Speicherung bei 315 vorgehalten. Ein Benutzer kann dann kontinuierlich auf die codierten Fragmente mit einem besonderen Qualitätsniveau durch einen Fragmentserver, der Echtzeit- oder Near-Echtzeit Internet Protocol (IP) Verteilung der Medienstromfragmente erlaubt, bei 317 zugreifen.
  • 4 veranschaulicht eine Technik zum dynamischen Skalieren verteilter Codierressourcen. Bei 401, ermittelt ein Codierer/Fragger, dass ein Job in einer Jobwarteschlangen verfügbar ist. Gemäß verschiedenen Ausführungsformen, können zusätzliche Codierer-/Fraggerressourcen zugewiesen werden, wenn existierende Codierer-/Fraggerressourcen über einen bestimmten Schwellenwert bei 403 verbraucht sind. Wenn die Verarbeitungsressourcenauslastung zum Beispiel einen bestimmten Schwellenwert überschreitet, wie zum Beispiel einen Schwellenwert von 80%, wird eine zusätzliche virtuelle Maschine zum Codieren und Fragmentierern bei 411 zugewiesen. Gemäß verschiedenen Ausführungsformen, können, wenn die Verarbeitungsressourcenauslastung bei 409 unter einen bestimmten Schwellenwert fällt, wie zum Beispiel unter einen Schwellenwert von 50%, virtuelle Maschinen bei 413 offline genommen werden. Bei besonderen Ausführungsformen können Niveaus von Jobwarteschlangen verwendet werden, um die Ressourcenzuweisung einzustellen. Wenn die Jobschlangenniveaus einen bestimmten Schwellenwert bei 405 überschreiten, können bei 411 zusätzliche Codier- und Fragmentierungsressourcen zugewiesen werden. Gemäß verschiedenen Ausführungsformen, kann eine Live-Medienstromcodierung bei 407 erfasst werden und verwendet werden, um bei 411 zusätzliche Ressourcen zuzuweisen. Bei einigen Beispielen kann ermittelt werden, dass Anfragen nach Fragmenten empfangen werden können, lange bevor Fragmente verfügbar sind. Höhere Verarbeitungsleistungsressourcen oder höhere Qualitätsressourcen können zugewiesen werden, um das Codieren und Fragmentierern auszuführen.
  • 5 veranschaulicht Beispiele von Dateien, die von dem Fragmentschreiber gespeichert werden. Gemäß verschiedenen Ausführungsformen, ist der Fragmentschreiber ein Bauteil in dem Gesamtfragmentierer. Er ist eine binäres Bauteil, das Kommandozeilenargumente verwendet, um ein bestimmtes Programm basierend entweder auf NTP-Zeit von dem codierten Strom oder auf Wallclock-Zeit aufzuzeichnen. Bei besonderen Ausführungsformen kann das als ein Teil der Argumente konfiguriert werden und hängt von dem Eingabestrom ab. Wenn der Fragmentschreiber das Aufzeichnen eines Programms vollendet hat, beendet er. Für Live-Ströme werden Programme künstlich als kurzzeitige Intervalle von zum Beispiel 5 bis 15 Minuten Länge angelegt.
  • Gemäß verschiedenen Ausführungsformen, sind die Fragmentschreiber-Kommandozeilenargumente die SDP-Datei des aufzuzeichnen Kanals, die Anfangszeit, die Endzeit, der Namen der aktuellen und der nächsten Ausgangsdateien. Der Fragmentschreiber hört den RTP-Verkehr von den Live-Video-Codierern ab und schreibt die Mediendaten zu der Platte als fragmentierte MPEG-4 um. Gemäß verschiedenen Ausführungsformen, werden Mediendaten als fragmentierte MPEG-4, wie in MPEG-4 Teil 12 (ISO/IEC 14496-12) geschrieben. Jede ausgestrahlte Show wird zu der Platte als eine getrennte Datei, die durch die Show-ID (von EPG abgeleitet) angegeben wird, geschrieben. Clients enthalten die Show-ID als Teil des Kanalnamens bei der Anfrage nach Wiedergabe einer vorab aufgezeichneten Show. Der Fragmentschreiber verbraucht jede der verschiedenen Codierungen und speichert sie als ein unterschiedliches MPEG-4-Fragment.
  • Bei besonderen Ausführungsformen, schreibt der Fragmentschreiber die RTP-Daten für eine besondere Codierung und das Show-ID-Feld in eine einzelne Datei. Innerhalb dieser Datei bestehen Metadaten-Informationen, die die gesamte Datei beschreiben (MOOV-Blöcke). Atome werden als Gruppen von MOOF/MDAT-Paaren gespeichert, um es einer Show zu erlauben, als eine einzige Datei gespeichert zu werden. An dem Ende der Datei befinden sich Informationen über den wahlfreien Zugriff, die verwendet werden können, um es einem Client zu ermöglichen, eine Bandbreitenanpassung und Trick-Play-Funktionalität auszuführen.
  • Gemäß verschiedenen Ausführungsformen, enthält der Fragmentschreiber eine Option, die Fragmente verschlüsselt, um die Sicherheit des Stroms während des Aufzeichnungsvorgangs sicherzustellen. Der Fragmentschreiber fordert einen Codierungsschlüssel von dem Lizenzmanager. Die verwendeten Schlüssel sind ähnlich wie die, die für DRM ausgeführt werden. Beim Codieren von MOOF, ist das Codierungsformat leicht unterschiedlich. Das Verschlüsseln erfolgt einmal, so dass bei der Lieferung zu den Clients keine untragbaren Kosten entstehen.
  • Der Fragmentserver reagiert auf HTTP-Anfragen nach Inhalt. Gemäß verschiedenen Ausführungsformen, liefert er APIs, die von den Clients verwendet werden können, um die erforderlichen Header zu holen, die zum Decodieren des Videos erforderlich sind, für irgendeinen gewünschten Zeitrahmen innerhalb des Fragments zu suchen und APIs, um Kanäle live anzusehen. Live-Kanäle werden effektiv von den zuletzt geschriebenen Fragmenten für die Show auf diesem Kanal bedient. Der Fragmentserver sendet den Medien-Header (zum Initialisieren von Decodern erforderlich), bestimmte Fragmente und den Direktzugriffblock an Clients zurück. Gemäß verschiedenen Ausführungsformen, erlauben die unterstützten APIs die Optimierung, wobei Metadaten-Headerinformationen zu dem Client gemeinsam mit dem ersten Fragment zurückgesendet wird. Der Fragmentschreiber legt eine Reihe von Fragmenten innerhalb der Datei an. Wenn ein Client einen Strom fordert, stellt er eine Anfrage für jedes dieser Fragmente, und der Fragmentserver liest den Teil der Datei, der dieses Fragment betrifft und schickt es an den Client zurück.
  • Gemäß verschiedenen Ausführungsformen, verwendet der Fragmentserver ein REST API, das cache-freundlich ist, so dass die meisten Anfragen, die bei dem Fragmentserver erfolgen, gecached werden können. Der Fragmentserver verwendet Cache-Steuer-Header und ETag-Header, um die geeigneten Hinweise auf Caches zu liefern. Diese API stellt auch die Fähigkeit bereit zu verstehen, wo ein bestimmter Benutzer die Wiedergabe gestoppt hat, und die Wiedergabe an dieser Stelle wieder aufzunehmen (was die Fähigkeit bereitstellt, auf einem Gerät auf Pause zu stellen und auf einem anderen fortzusetzen).
  • Bei besonderen Ausführungsformen, folgen Client-Anfragen nach Fragmenten dem folgenden Format:
    http://{HO STNAME}drag/{CHANNEL}/{BITRATE}/[{ID}/]{COMMAND}[/{ARG}]
    z. B. http://frag.hosttv.com/frag/1/H8QVGAH264/1270059632.mp4/fragment/42.
  • Gemäß verschiedenen Ausführungsformen, ist der Kanalname derselbe wie der Backend-Kanalname, der als der Kanalteil der SDP-Datei verwendet wird. VoD verwendet den Kanalnamen von „vod”. Die BITRATE sollte dem BITRATEN/AUFLÖSUNGS-Identifikatorsystem, das für RTP-Ströme verwendet wird, folgen. Die ID wird dynamisch zugewiesen. Bei Live-Strömen kann das der UNIX-Zeitstempel sein, für DVR ist es eine einzigartige ID für die Show, für VoD ist es die Asset-ID. Die ID ist optional und in LIVE-Kommandoanfragen nicht enthalten. Die Befehle und Argumente werden verwendet, um den genauen gewünschten Befehl und irgendwelche Argumente anzugeben. Um zum Beispiel Teil 42 anzufordern, wäre dieser Teil „Fragment/42”.
  • Das URL-Format macht die Anfragen „Content DeLivery Netzwerk”-freundlich (CDN), weil sich die Fragmente danach nie verändern, so dass zwei separate Clients, die denselben Strom betrachten, unter Einsatz eines Cache bedient werden können. Insbesondere nutzt die Headend-Architektur das, um zu vermeiden, dass zu viele dynamische Anfragen an dem Fragmentserver ankommen, indem ein HTTP-Proxy an dem Headend zu Cache-Anfragen verwendet wird.
  • Gemäß verschiedenen Ausführungsformen, ist der Fragmentcontroller ein Dämon, der auf dem Fragmentierer läuft und Fragmentschreiberprozesse verwaltet. Wir schlagen vor, dass er ein konfiguriertes Filter verwendet, das von dem Fragmentcontroller ausgeführt wird, um die Liste von Ausstrahlungen, die aufzuzeichnen sind, zu erzeugen. Dieses Filter kann in externe Bauteile integriert werden, wie zum Beispiel ein Programmführerserver, um zu bestimmen, welche Show aufzuzeichnen ist und welche Sende-ID verwendet werden soll.
  • Gemäß verschiedenen Ausführungsformen, enthält der Client ein Anwendungslogikbauteil und ein Medienwiedergabebauteil. Das Anwendungslogikbauteil präsentiert die UI für den Benutzer und kommuniziert mit dem Frontend-Server, um Shows zu holen, die für den Benutzer verfügbar sind, und zum Authentifizieren. Als Teil dieses Prozesses sendet der Server URLs zu Medien-Assets zurück, die zu dem Medienwiedergabebauteil weitergegeben werden.
  • Bei besonderen Ausführungsformen greift der Client auf die Tatsache zurück, dass jedes Fragment in einer fragmentierten MPEG 4-Datei eine Sequenznummer hat. Unter Heranziehung dieser Kenntnis und einer gut definierten URL-Struktur zur Kommunikation mit dem Server, fordert der Client Fragmente einzeln an, als läse er separate Dateien von dem Server, indem er einfach URLs für zugehörige Dateien mit steigenden Sequenznummern anfordert. Bei einigen Ausführungsformen kann der Client Dateien anfordern, die in Abhängigkeit von dem Gerät und den Netzwerkressourcen höheren oder niedrigeren Bitratenströmen entsprechen.
  • Da jede Datei die Informationen enthält, die zum Anlegen der URL für die nächste Datei erforderlich sind, sind keine speziellen Playlist-Dateien erforderlich, und alle Aktionen (Starten, Kanalwechsel, Suche) können mit einer einzigen HTTP-Anfrage ausgeführt werden. Nachdem jedes Fragment herunter geladen wurde, beurteilt der Client unter anderen Dingen die Größe des Fragments und die Zeit, die zum Herunterladen erforderlich ist, um zu ermitteln, ob eine Verlangsamung erforderlich ist, oder ob genug Bandbreite zur Verfügung steht, um eine höhere Bitrate anzufordern.
  • Da jede Anfrage zu dem Server wie eine Anfrage zu einer getrennten Datei aussieht, kann die Antwort auf Anfragen in irgendeinem HTTP-Proxy gecached oder über irgendein auf CDN basierendes HTTP verteilt werden.
  • 6 veranschaulicht eine Wechselwirkung für einen Client, der einen Live-Strom empfängt. Der Client beginnt die Wiedergabe, wenn ein Fragment von dem Server gespielt wird. Der Client verwendet die Fragmentnummer, so dass er das entsprechende Untersequenz-Dateifragment anfordern kann. Eine Anwendung, wie zum Beispiel eine Player-Anwendung 607, sendet eine Anfrage zum Mediakit 605. Die Anfrage kann eine Basisadresse und eine Bitrate enthalten. Das Mediakit 605 sendet eine HTTP-Get-Anfrage zur Caching-Schicht 603. Gemäß verschiedenen Ausführungsformen, befindet sich die Live-Antwort nicht im Cache, und die Caching-Schicht 603 gibt die HTTP-Get-Anfrage zu einem Fragmentserver 601 weiter. Der Fragmentserver 601 führt die Verarbeitung aus und sendet das entsprechende Fragment an die Caching-Schicht 603, die die Daten zum Mediakit 605 weitergibt.
  • Das Fragment kann für eine kurze Zeitspanne an der Caching-Schicht 603 gecached werden. Das Mediakit 605 identifiziert die Fragmentnummer und bestimmt, ob die Ressourcen ausreichen, um das Fragment wiederzugeben. Bei einigen Beispielen sind die Ressourcen, wie zum Beispiel Verarbeitungs- oder Bandbreitenressourcen unzureichend. Es kann sein, dass das Fragment nicht schnell genug empfangen wurde, oder das Gerät kann beim Decodieren des Fragments mit ausreichender Geschwindigkeit Schwierigkeiten haben. Das Mediakt 605 kann folglich ein nächstes Fragment, das eine unterschiedliche Datenrate hat, anfordern. Bei einigen Fällen kann das Mediakt 605 ein nächstes Fragment, das eine höhere Datenrate hat, anfordern. Gemäß verschiedenen Ausführungsformen, hält der Fragmentserver 601 Fragmente für unterschiedliche Servicestromqualität mit Timing-Synchronisationsinformationen vor, um das Timing präziser Wiedergabe zu erlauben.
  • Das Mediakit 605 fordert ein nächstes Fragment unter Einsatz von Informationen von dem empfangenen Fragment an. Gemäß verschiedenen Ausführungsformen, kann das nächste Fragment für den Medienstrom auf einem anderen Server vorgehalten werden, eine unterschiedliche Bitrate haben oder eine unterschiedliche Bewilligung erfordern. Die Caching-Schicht 603 bestimmt, dass das nächste Fragment nicht im Cache ist und gibt die Anfrage an den Fragmentserver 601 weiter. Der Fragmentserver 601 sendet das Fragment zu der Caching-Schicht 603 weiter, und das Fragment wird während einer kurzen Zeitspanne gecached. Dann wird das Fragment zu dem Mediakit 605 gesendet.
  • 7 veranschaulicht ein beispielhaftes Computersystem. Gemäß besonderen Ausführungsformen, umfasst ein System 700, das zum Umsetzen besonderer Ausführungsformen der vorliegenden Erfindung geeignet ist, einen Prozessor 701, einen Speicher 703, eine Schnittstelle 711 und einen Bus 715 (zum Beispiel einen PCI-Bus oder ein anderes Zusammenschaltungsgefüge) und arbeitet als ein Streaming-Server. Beim Arbeiten unter der Steuerung einer entsprechenden Software oder Firmware, ist der Prozessor 701 für das Ändern und Übertragen von Live-Mediendaten zu einem Client zuständig. Verschiedene speziell konfigurierte Geräte können auch an Stelle eines Prozessors 701 oder zusätzlich zu dem Prozessor 701 verwendet werden. Die Schnittstelle 711 ist typisch konfiguriert, um Datenpakete oder Datensegmente über ein Netzwerk zu senden und zu empfangen.
  • Besondere Beispiele für Schnittstellenträger umfassen Ethernet-Schnittstellen, Frame-Relay-Schnittstellen, Kabelschnittstellen, DSL-Schnittstellen, Token-Ring-Schnittstellen und dergleichen. Zusätzlich können verschiedene Schnittstellen mit sehr hoher Geschwindigkeit bereitgestellt werden, wie zum Beispiel schnelle Ethernet-Schnittstellen, Gigabit-Ethernet-Schnittstellen, ATM-Schnittstellen, HSSI-Schnittstellen, POS-Schnittstellen, FDDI-Schnittstellen und dergleichen. Allgemein können diese Schnittstellen Ports aufweisen, die zur Kommunikation mit entsprechenden Medien geeignet sind. In einigen Fällen können sie auch einen unabhängigen Prozessor aufweisen, und in einigen Fällen flüchtigen RAM-Speicher. Die unabhängigen Prozessoren können kommunikationsintensive Aufgaben steuern, wie zum Beispiel Paketvermittlung, Mediensteuerung und Verwaltung.
  • Gemäß verschiedenen Ausführungsformen, ist das System 700 ein Fragmentserver, der auch einen Sender-Empfänger, Streaming-Puffer und eine Programmführerdatenbank aufweist. Der Fragmentserver kann auch mit Abonnementverwaltung, Protokollierungs- und Berichterzeugung und Überwachungsfähigkeiten verbunden sein. Bei besonderen Ausführungsformen, Funktionalität, um den Betrieb mit Mobilgeräten, wie zum Beispiel Mobiltelefonen, die in einem bestimmten Mobilfunknetzwerk arbeiten und Abonnementverwaltung bereitstellen, zu erlauben. Gemäß verschiedenen Ausführungsformen, prüft ein Authentifizierungsmodul die Identität von Geräten, darunter Mobilfunkgeräte. Ein Modul zur Protokollierungs- und Berichterzeugung verfolgt Mobilgerätanfragen und zugehörige Antworten mit. Ein Überwachungssystem erlaubt es einem Administrator, Nutzungsmuster und Systemverfügbarkeit anzuzeigen. Gemäß verschiedenen Ausführungsformen, verarbeitet der Fragmentserver Anfragen und Antworten in Zusammenhang mit Transaktionen, die mit Medieninhalt zusammenhängen, während ein getrennter Streaming-Server die eigentlichen Medienströme bereitstellt.
  • Obwohl ein besonderer Fragmentschreiber beschrieben ist, muss man verstehen, dass eine Vielfalt alternativer Konfigurationen möglich ist. Einige Module, wie zum Beispiel ein Bericht- und Protokollierungsmodul sowie ein Monitor sind eventuell nicht auf jedem Server erforderlich. Alternativ können die Module auf einem anderen Gerät, das mit dem Server verbunden ist, umgesetzt sein. Bei einem anderen Beispiel kann der Server keine Schnittstelle zu einer abstrakten Kaufmaschine enthalten und kann vielmehr die abstrakte Kaufmaschine selbst enthalten. Eine Mehrzahl von Konfigurationen ist möglich.
  • In der oben stehenden Spezifikation wurde die Erfindung unter Bezugnahme auf spezifische Ausführungsformen beschrieben. Der Fachmann weiß jedoch zu schätzen, dass verschiedene Änderungen und Wechsel erfolgen können, ohne den Geltungsbereich der Erfindung, wie er in den folgenden Ansprüchen dargelegt ist, zu verlassen. Die Spezifikation und die Figuren sind folglich als beispielhaft und nicht als einschränkend zu sehen, und alle solchen Änderungen gelten als im Geltungsbereich der Erfindung enthalten.

Claims (20)

  1. Verfahren, das Folgendes aufweist: Empfangen eines Medienstroms von einer Inhaltsquelle, Abgrenzen des Medienstroms in eine Mehrzahl von Bildergruppen (GOPs), darunter eine erste GOP, Bereitstellen der ersten GOP zu einer Größenänderungsschicht, wobei die Größenänderungsschicht konfiguriert ist, um Medienstromdaten, die einer Mehrzahl von Auflösungen entsprechen, entlang einer Mehrzahl von Pfaden auszugeben, wobei eine Mehrzahl von Codierern/Fragmentierern bereitgestellt ist, um die ausgegebenen Medienstromdaten für jeden der Mehrzahl Pfade zu verarbeiten, um eine Mehrzahl von ausgerichteten GOP-Varianten zu erzeugen, wobei die ausgerichteten GOP-Varianten mit einer Mehrzahl von Bitraten und Bildwechselfrequenzen für jede der Mehrzahl von Auflösungen verbunden ist.
  2. Verfahren nach Anspruch 1, wobei die Größenänderungsschicht eine Mehrzahl von Größenänderungsbauteilen aufweist.
  3. Verfahren nach Anspruch 1, wobei die Mehrzahl von Codierern/Fragmentierern dynamisch skalierbare virtuelle Maschinen sind.
  4. Verfahren nach Anspruch 1, wobei die Mehrzahl der Codierer/Fragmentierer die ausgegebenen Medienstromdaten für jeden der Mehrzahl von Pfaden gleichzeitig bearbeitet, um eine Mehrzahl Varianten ausgerichteter GOP auszugeben.
  5. Verfahren nach Anspruch 4, wobei die Mehrzahl Varianten ausgerichteter GOP jeweils eine unterschiedliche Kombination aus Auflösung, Bitrate und Bildwechselfrequenz hat.
  6. Verfahren nach Anspruch 4, wobei die Mehrzahl Varianten von ausgerichteten GOP entsprechende Schlüsselrahmen haben, die gleichzeitig resident sind.
  7. Verfahren nach Anspruch 1, wobei die Inhaltsquelle eine Satelliteninhaltsquelle ist.
  8. Verfahren nach Anspruch 1, wobei die Varianten ausgerichtete GOP als eine Mehrzahl von Fragmenten bereitgestellt sind.
  9. Verfahren nach Anspruch 1, wobei die Mehrzahl von Fragmenten in verteilter Speicherung vorgehalten wird.
  10. System, das Folgendes aufweist: einen Delineator einer Gruppe von Bildern (GOP), der konfiguriert ist, um einen Medienstrom von einer Inhaltsquelle zu empfangen und den Medienstrom in eine Mehrzahl von Bildergruppen (GOPs) abzugrenzen, die eine erste GOP aufweist, einen Arbeits-Dispatcher, der konfiguriert ist, um die erste GOP einer Größenänderungsschicht zu liefern, wobei die Größenänderungsschicht konfiguriert ist, um Medienstromdaten, die einer Mehrzahl von Auflösungen entsprechen, entlang einer Mehrzahl von Pfaden auszugeben, wobei eine Mehrzahl von Codierern/Fragmentierern bereitgestellt ist, um die ausgegebenen Medienstromdaten für jeden der Mehrzahl Pfade zu verarbeiten, um eine Mehrzahl von ausgerichteten GOP-Varianten zu erzeugen, wobei die ausgerichteten GOP-Varianten mit einer Mehrzahl von Bitraten und Bildwechselfrequenzen für jede der Mehrzahl von Auflösungen verbunden ist.
  11. System nach Anspruch 10, wobei die Größenänderungsschicht eine Mehrzahl von Größenänderungsbauteilen aufweist.
  12. System nach Anspruch 10, wobei die Mehrzahl von Codierern/Fragmentierern dynamisch skalierbare virtuelle Maschinen sind.
  13. System nach Anspruch 10, wobei die Mehrzahl der Codierer/Fragmentierer die ausgegebenen Medienstromdaten für jeden der Mehrzahl von Pfaden gleichzeitig bearbeitet, um eine Mehrzahl Varianten ausgerichteter GOP auszugeben.
  14. System nach Anspruch 13, wobei die Mehrzahl Varianten ausgerichteter GOP jeweils eine unterschiedliche Kombination aus Auflösung, Bitrate und Bildwechselfrequenz hat.
  15. System nach Anspruch 13, wobei die Mehrzahl Varianten von ausgerichteten GOP entsprechende Schlüsselrahmen hat, die gleichzeitig resident sind.
  16. System nach Anspruch 10, wobei die Inhaltsquelle eine Satelliteninhaltsquelle ist.
  17. System nach Anspruch 10, wobei die Varianten ausgerichtete GOP als eine Mehrzahl von Fragmenten bereitgestellt sind.
  18. System nach Anspruch 10, wobei die Mehrzahl von Fragmenten in verteilter Speicherung vorgehalten wird.
  19. Gerät, das Folgendes aufweist: Mittel zum Empfangen eines Medienstroms von einer Inhaltsquelle, Mittel zum Abgrenzen des Medienstroms in eine Vielzahl von Bildergruppen (GOPs), darunter eine erste GOP, Mittel zum Bereitstellen der ersten GOP zu einer Größenänderungsschicht, wobei die Größenänderungsschicht konfiguriert ist, um Medienstromdaten, die einer Mehrzahl von Auflösungen entsprichen, entlang einer Mehrzahl von Pfaden auszugeben, wobei eine Mehrzahl von Codierern/Fragmentierern bereitgestellt ist, um die ausgegebenen Medienstromdaten für jeden der Mehrzahl Pfade zu verarbeiten, um eine Mehrzahl von ausgerichteten GOP-Varianten zu erzeugen, wobei die ausgerichteten GOP-Varianten mit einer Mehrzahl von Bitraten und Bildwechselfrequenzen für jede der Mehrzahl von Auflösungen verbunden ist.
  20. Gerät nach Anspruch 19, wobei die Größenänderungsschicht eine Mehrzahl von Größenänderungsbauteilen aufweist.
DE112012004994.2T 2011-11-30 2012-11-28 Verbesserte Bildergruppen-(GOP)-Ausrichtung in Medienstromvarianten Withdrawn DE112012004994T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/308,062 2011-11-30
US13/308,062 US9338482B2 (en) 2011-11-30 2011-11-30 Enhanced group of pictures (GOP) alignment in media stream variants
PCT/US2012/066787 WO2013082108A1 (en) 2011-11-30 2012-11-28 Enhanced group of pictures (gop) alignment in media stream variants

Publications (1)

Publication Number Publication Date
DE112012004994T5 true DE112012004994T5 (de) 2014-09-18

Family

ID=48466855

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012004994.2T Withdrawn DE112012004994T5 (de) 2011-11-30 2012-11-28 Verbesserte Bildergruppen-(GOP)-Ausrichtung in Medienstromvarianten

Country Status (4)

Country Link
US (1) US9338482B2 (de)
DE (1) DE112012004994T5 (de)
GB (1) GB2512225A (de)
WO (1) WO2013082108A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9338482B2 (en) 2011-11-30 2016-05-10 Mobitv, Inc. Enhanced group of pictures (GOP) alignment in media stream variants
US20150201193A1 (en) * 2012-01-10 2015-07-16 Google Inc. Encoding and decoding techniques for remote screen sharing of media content using video source and display parameters
US9219929B2 (en) * 2012-02-27 2015-12-22 Fritz Barnes Enhanced startup and channel change for fragmented media stream delivery
US9621613B1 (en) * 2013-11-05 2017-04-11 Visualon, Inc. Bitrate adaptation transitioning using key frames
US10057618B2 (en) 2014-06-06 2018-08-21 Microsoft Technology Licensing, Llc System for filtering media manifests using manifest attributes

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5877814A (en) * 1994-04-20 1999-03-02 Thomson Consumer Electronics, Inc. Asynchronous control signal generating apparatus
US6055270A (en) * 1994-04-20 2000-04-25 Thomson Cosumer Electronics, Inc. Multiplexer system using constant bit rate encoders
US6192154B1 (en) * 1998-01-26 2001-02-20 International Business Machines Corporation Two-pass encoding method of digital motion video sequences for constant-or variable bit rate
US6859496B1 (en) * 1998-05-29 2005-02-22 International Business Machines Corporation Adaptively encoding multiple streams of video data in parallel for multiplexing onto a constant bit rate channel
US6522693B1 (en) * 2000-02-23 2003-02-18 International Business Machines Corporation System and method for reencoding segments of buffer constrained video streams
US7801215B2 (en) * 2001-07-24 2010-09-21 Sasken Communication Technologies Limited Motion estimation technique for digital video encoding applications
US7330509B2 (en) * 2003-09-12 2008-02-12 International Business Machines Corporation Method for video transcoding with adaptive frame rate control
KR100744309B1 (ko) * 2005-11-22 2007-07-30 삼성전자주식회사 Svc 방식이 적용되는 디지털 비디오 스트림의 전송시스템과 그 전송 방법
US8335873B2 (en) * 2006-09-14 2012-12-18 Opentv, Inc. Method and systems for data transmission
US7930449B2 (en) * 2006-09-14 2011-04-19 Opentv Inc. Method and system for data transmission
US8290036B2 (en) * 2008-06-11 2012-10-16 Optibase Technologies Ltd. Method, apparatus and system for concurrent processing of multiple video streams
US20100091888A1 (en) * 2008-10-13 2010-04-15 General Instrument Corporation Multi-Rate Encoder with GOP Alignment
WO2010045289A1 (en) * 2008-10-14 2010-04-22 Ripcode, Inc. System and method for progressive delivery of transcoded media content
US8705616B2 (en) * 2010-06-11 2014-04-22 Microsoft Corporation Parallel multiple bitrate video encoding to reduce latency and dependences between groups of pictures
US9338482B2 (en) 2011-11-30 2016-05-10 Mobitv, Inc. Enhanced group of pictures (GOP) alignment in media stream variants

Also Published As

Publication number Publication date
US9338482B2 (en) 2016-05-10
GB201410988D0 (en) 2014-08-06
GB2512225A (en) 2014-09-24
WO2013082108A1 (en) 2013-06-06
US20130136190A1 (en) 2013-05-30

Similar Documents

Publication Publication Date Title
US11743519B2 (en) Fragment server directed device fragment caching
DE112012001770T5 (de) Auf Echtzeitverarbeitungsfähigkeit basierende Qualitätsanpassung
US9197900B2 (en) Localized redundancy for fragment processing
US11134115B2 (en) Systems and methods for frame duplication and frame extension in live video encoding and streaming
DE112011103333T5 (de) Medienkonvergenzplattform
DE112012002159T5 (de) Kontextsensitive Client-Pufferschwellenwerte
DE112011101911T5 (de) Fragmentierte Dateistruktur für die Ausgabe von Live-Medien-Streams
DE112011102879T5 (de) Medienrechteverwaltung auf mehreren Geräten
US9386331B2 (en) Optimizing video clarity
US20190045230A1 (en) Distributed scalable encoder resources for live streams
DE112013001136T5 (de) Effiziente Abgrenzung und Verteilung von Media-Segmenten
DE112011101908T5 (de) Qualitätseinstellung unter Verwendung eines fragmentierten Medienstroms
DE112011102878T5 (de) Nutzer- und Vorrichtungsauthentifizierung für Mediendienstleistungen
US20130064286A1 (en) Weighted encoder fragment scheduling
US8719440B2 (en) Intelligent device media stream caching
DE112009000898T5 (de) Dynamische Ersetzung von Werbeströmen
DE112013000995T5 (de) Skalierbare Wasserzeicheneinfügung für fragmentierte Medienstrom-Bereitstellung
DE112012004994T5 (de) Verbesserte Bildergruppen-(GOP)-Ausrichtung in Medienstromvarianten
DE112011101004T5 (de) Medienkonvergenzplattform
US9219929B2 (en) Enhanced startup and channel change for fragmented media stream delivery
US20130064287A1 (en) Management of resources for live stream variant processing
US20230010330A1 (en) Methods and systems for streaming content
US20130135525A1 (en) Fragment boundary independent closed captioning
DE102018108784A1 (de) Verfahren zum Senden eines digitalen Videosignals an ein Empfangsgerät, Recheneinheit und Computerprogrammprodukt

Legal Events

Date Code Title Description
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04N0007260000

Ipc: H04N0019000000

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