DE112012001770T5 - Auf Echtzeitverarbeitungsfähigkeit basierende Qualitätsanpassung - Google Patents

Auf Echtzeitverarbeitungsfähigkeit basierende Qualitätsanpassung Download PDF

Info

Publication number
DE112012001770T5
DE112012001770T5 DE112012001770.6T DE112012001770T DE112012001770T5 DE 112012001770 T5 DE112012001770 T5 DE 112012001770T5 DE 112012001770 T DE112012001770 T DE 112012001770T DE 112012001770 T5 DE112012001770 T5 DE 112012001770T5
Authority
DE
Germany
Prior art keywords
client device
fragment
media stream
threshold
device side
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
DE112012001770.6T
Other languages
English (en)
Inventor
Tommy Isaksson
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 DE112012001770T5 publication Critical patent/DE112012001770T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/267Flow control; Congestion control using explicit feedback to the source, e.g. choke packets sent by the destination endpoint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/38Flow control; Congestion control by adapting coding or compression rate
    • 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/234318Processing 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 by decomposing into objects, e.g. MPEG-4 objects
    • 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • 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/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • 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/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • H04N21/25825Management of client data involving client display capabilities, e.g. screen resolution of a mobile phone
    • 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/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • H04N21/25833Management of client data involving client hardware characteristics, e.g. manufacturer, processing or storage capabilities
    • 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/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25866Management of end-user data
    • 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/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/437Interfacing the upstream path of the transmission network, e.g. for transmitting client requests to a VOD server
    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • 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/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/4424Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used
    • 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
    • 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/6373Control signals issued by the client directed to the server or network components for rate control, e.g. request to the server to modify its transmission rate
    • 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
    • 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
    • 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

Landscapes

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

Abstract

Die Qualität eines an ein Clientgerät übertragenen Medienstroms wird dynamisch auf der Grundlage der Echtzeit-Verfügbarkeit von Ressourcen auf dem Clientgerät angepasst. Zentralverarbeitungseinheit-Ressourcen, Speicherverfügbarkeit, Pufferauslastung, Auslastung der Grafikverarbeitungseinheit etc. werden fortlaufend überwacht, um die Fähigkeit eines Geräts zur Handhabung von Medienströmung bestimmter Qualitätslevel zu bewerten. Wenn festgestellt wird, dass die Ressourcen auf Seiten eines Clientgeräts einen Medienstrom hoher Qualität zeitweilig nicht bewältigen können, wird ein Strom geringerer Qualität gewählt und an das Clientgerät übermittelt, ohne dass eine neue Sitzung eröffnet werden muss.

Description

  • Daten verwandter Anmeldungen
  • Die vorliegende Anmeldung beansprucht die Priorität der US-Patentanmeldung Nr. 13/090,959 mit dem Titel REAL-TIME PROCESSING CAPABILITY BASED QUALITY ADAPTATION, angemeldet am 20. April 2011 (Attorney Docket No. MOBIP068US), deren gesamte Offenbarung durch Bezugnahme für alle Zwecke Teil des Gegenstandes der vorliegenden Anmeldung ist.
  • Technisches Gebiet
  • Die vorliegende Offenbarung betrifft eine auf der Echtzeitverarbeitungsfähigkeit basierende Qualitätsanpassung.
  • Beschreibung des Standes der Technik
  • Die Videoqualität auf einem Clientgerät hängt von einer Vielzahl verschiedener Faktoren ab. In einigen Beispielen können Clientgeräte Medien über Netzwerke empfangen, die unterschiedliche Übertragungsraten, Bandbreiten, Wartezeiten oder Zuverlässigkeit aufweisen. Clientgeräte können ebenso über unterschiedliche Verarbeitungs-, Grafik-, Anzeige-, Speicher- und Pufferfähigkeiten verfügen. Es ist üblicherweise schwierig, eine problemlose Wiedergabe unter verschiedenartigen Bedingungen und für verschiedene Nutzungsfälle bereitzustellen.
  • Herkömmliche Verfahren und Mechanismen für das Wiedergeben von Medien auf Clientgeräten, wie Mobilgeräten, sind begrenzt. Es ist daher erwünscht, verbesserte Verfahren und Mechanismen für das Abspielen von Medien auf der Client-Seite zu schaffen.
  • Kurzbeschreibung der Zeichnungen
  • Die Offenbarung ist am besten unter Bezugnahme auf die nachfolgende Beschreibung in Verbindung mit den zugehörigen Zeichnungen zu verstehen, welche besondere Ausführungsbeispiele darstellen.
  • 1 zeigt ein Beispiel für einen Hardwarespezifikationsüberwachungsmechanismus.
  • 2 zeigt ein Beispiel für ein Verfahren für eine auf der Echtzeitverarbeitungsfähigkeit basierende Qualitätsanpassung.
  • 3 zeigt ein Beispiel für ein Fragmentierungssystem.
  • 4 zeigt ein anderes Beispiel für ein Fragmentierungssystem.
  • 5 zeigt Beispiele für von dem Fragmentschreiber gespeicherte Dateien.
  • 6 zeigt ein Beispiel für einen Austausch unter Verwendung eines Fragmentierungssystems.
  • 7 zeigt ein Beispiel für ein System.
  • Beschreibung exemplarischer Ausführungsbeispiele
  • Im Folgenden wird detailliert auf einige spezifische Beispiele für die Erfindung Bezug genommen, welche die von den Erfindern gegenwärtig als beste Arten der Durchführung der Erfindung angesehenen Ausführungsbeispiele beinhalten. Beispiele für diese spezifischen Ausführungsbeispiele sind in den beigefügten Zeichnungen dargestellt. Zwar wird die Erfindung in Zusammenhang mit diesen spezifischen Ausführungsbeispielen beschrieben, jedoch ist es ersichtlich, dass nicht beabsichtigt ist, die Erfindung auf die beschriebenen Ausführungsbeispiele zu beschränken. Im Gegenteil ist es beabsichtigt, Alternativen, Modifikationen und Äquivalente abzudecken, die dem Geist und dem Rahmen der Erfindung entsprechen, wie diese durch die beigefügten Ansprüche definiert sind.
  • Die Verfahren gemäß der vorliegenden Erfindung werden beispielsweise im Zusammenhang mit einer bestimmten Art von Streaming-Protokollen beschrieben. Es sei jedoch darauf hingewiesen, dass die erfindungsgemäßen Verfahren auf eine Vielzahl von Protokollen anwendbar sind. In der folgenden Beschreibung werden zahlreiche spezifische Details angeführt, um ein umfassendes Verständnis der vorliegenden Erfindung zu vermitteln. Besondere exemplarische Ausführungsbeispiele der vorliegenden Erfindung können ohne einige oder sämtliche dieser spezifischen Details implementiert werden. In anderen Fällen werden hinreichend bekannte Verfahrensabläufe nicht im Detail beschrieben, um das Verständnis der vorliegenden Erfindung nicht unnötig zu erschweren.
  • Verschiedene Verfahren und Mechanismen der vorliegenden Erfindung werden manchmal aus Gründen der Klarheit in Singularform beschrieben. Es sei jedoch darauf hingewiesen, dass einige Ausführungsbeispiele mehrere Durchläufe eines Verfahrens oder mehrfache Instantiierungen eines Mechanismus beinhalten, sofern dies nicht anders angegeben ist. Zum Beispiel verwendet ein System einen Prozessor in verschiedenen Zusammenhängen. Es ist jedoch ersichtlich, dass ein System mehrere Prozessoren verwenden kann, ohne den Rahmen der vorliegenden Erfindung zu verlassen, sofern dies nicht anders angegeben ist. Ferner beschreiben die Verfahren und Mechanismen der vorliegenden Erfindung manchmal eine Verbindung zwischen zwei Einheiten. Es sei darauf hingewiesen, dass eine Verbindung zwischen zwei Einheiten nicht notwendigerweise eine direkte, uneingeschränkte Verbindung bezeichnet, da eine Vielzahl anderer Einheiten zwischen den beiden Einheiten vorhanden sein kann. Ein Prozessor kann beispielsweise mit einem Speicher verbunden sein, jedoch ist offensichtlich, dass eine Vielzahl von Brücken und Steuerungen zwischen dem Prozessor und dem Speicher vorgesehen sein kann. Dementsprechend bedeutet eine Verbindung nicht notwendigerweise eine direkte, uneingeschränkte Verbindung, sofern dies nicht anders angegeben ist.
  • Überblick
  • Die Qualität eines an ein Clientgerät übertragenen Medienstroms wird dynamisch auf der Grundlage der Echtzeit-Verfügbarkeit von Ressourcen auf dem Clientgerät angepasst. Zentralverarbeitungseinheit-Ressourcen, Speicherverfügbarkeit, Pufferauslastung, Auslastung der Grafikverarbeitungseinheit etc. werden fortlaufend überwacht, um die Fähigkeit eines Geräts zur Handhabung von Medienströmung bestimmter Qualitätslevel zu bewerten. Wenn festgestellt wird, dass die Ressourcen auf Seiten eines Clientgeräts einen Medienstrom hoher Qualität zeitweilig nicht bewältigen können, wird ein Strom geringerer Qualität gewählt und an das Clientgerät übermittelt, ohne dass eine neue Sitzung eröffnet werden muss.
  • Exemplarische Ausführungsbeispiele
  • Eine Vielzahl verschiedener Mechanismen wird zur Ausgabe von Medienströmen an Geräte verwendet. In vielen Fällen kann ein Medienstrom zu bestimmten Zeiten auf verschiedenen Geräten nicht problemlos wiedergegeben werden. Netzwerke liefern möglicherweise Daten nicht mit einer konstanten Rate. Die Netzwerkbandbreite, die Wartezeit, der Durchsatz und die Zuverlässigkeit können sämtlich in Abhängigkeit von den Netzwerkbedingungen variieren. Daher weisen Media-Player in Clientgeräten üblicherweise Puffer und Pufferschwellenwerte auf, die dazu dienen, zu bestimmen, wann eine Wiedergabe beginnt oder fortgesetzt wird. Ein großer Puffer mit einem hohen zugeordneten Pufferschwellenwert benötigt viel Zeit für den Aufbau, jedoch toleriert er ungünstige Netzwerkbedingungen. Ein kleiner Puffer mit einem niedrigen zugeordneten Pufferschwellenwert ermöglicht eine schnelle Anfangswiedergabe, ist jedoch unter vielen Netzwerkbedingungen schwer aufrechtzuerhalten. Gemäß verschiedenen Ausführungsbeispielen wählt ein Inhaltsserver einen Strom mit einem für ein Gerät geeigneten Qualitätslevel auf der Grundlage des Puffers, der Netzwerkeigenschaften, der Auflösung, des Geräteprozessors etc. aus. Bei besonderen Ausführungsbeispielen wählt der Inhaltsserver, wenn die Netzwerkbedingungen die Übertragung eines hoch-qualitativen Stroms nicht ermögliche, einen Strom geringerer Qualität zur Übertragung an das Gerät.
  • Die Verfahren und Mechanismen der vorliegenden Erfindung erkennen jedoch, dass selbst wenn die Netzwerkbedingungen ausreichende Datenraten ermöglichen, die Vorrichtung selbst möglicherweise nicht über ausreichende Ressourcen für die Wiedergabe eines Medienstroms verfügt. Zwar kann ein Gerät technisch die Spezifikationen erfüllen und einen ausreichend leistungsfähigen Prozessor haben, über ausreichend Speicher verfügen etc., jedoch können dynamische Veränderungen in dem Gerät selbst das Gerät außer Stande setzen, einen gewählten Strom zu verarbeiten und wiederzugeben. Beispielsweise kann das Gerät Aufgaben ausführen, wie die Durchführung von Updates im Hintergrund, das Durchführen eines Virus/Malware-Scans, das Kopieren von Dateien oder das Ausführen einer anderen ressourcenintensiven Anwendung. Das Gerät verfügt möglicherweise nicht mehr über ausreichend Speicher, Busbandbreite oder freie Prozessorzyklen, um die Wiedergabe adäquat durchzuführen, selbst wenn die Gerätespezifikationen geeignet sind.
  • Daher sind Verfahren und Mechanismen vorgesehen, um nicht nur verfügbare Datenübertragungsraten des Netzwerks, sondern auch die Echtzeit-Decodier- und Wiedergabefähigkeiten eines Clientgeräts zu bewerten. Die Decodier- und Wiedergabefähigkeiten eines Clientgeräts werden durch kontinuierliches Feststellen der Auslastung der Zentralverarbeitungseinheit und der Speicherauslastung sowie der Rate der fehlenden Einzelbilder auf Seiten des Decoders oder des Renderers bewertet. Bei besonderen Ausführungsbeispielen kann das Gerät einen Medienstrom wie für eine problemlose Wiedergabe erforderlich empfangen, jedoch kann das Gerät nicht in der Lage sein, die Medien-Frames rechtzeitig zu dekodieren oder wiederzugeben, da es gleichzeitig eine andere Aufgabe ausführt. Folglich kann ein Streaming-Server dynamisch auf die Übertragung eines Stroms niedrigerer Qualität umschalten, der weniger prozessorintensiv ist.
  • Gemäß zahlreicher verschiedener Ausführungsbeispiele schaltet ein Streaming-Server nur dann dynamisch auf einen Strom höherer Qualität um oder überträgt einen Strom hoher Qualität nur dann an ein Gerät, wenn sowohl verfügbare Netzwerkbandbreite, als auch ausreichende dynamische Verarbeitungsressourcenverfügbarkeit auf Seiten des Clientgeräts selbst gegeben ist. Erkennt das Clientgerät, dass es nicht imstande ist, in Echtzeit zu dekodieren und wiederzugeben, oder wenn die Geräteprozessorauslastung oder die Speicherauslastung zu hoch ist, schaltet der Streaming-Server übergangslos auf eine Übertragung mit niedrigerer Qualität um, selbst wenn ausreichend Netzwerkbandbreite vorhanden ist.
  • In bestimmten Beispielen eröffnet ein Client eine Sitzung, beispielsweise eine Real-Time-Streaming-Protocol-Sitzung (RTSP). Ein Servercomputer empfängt eine Verbindung für einen Medienstrom, eröffnet eine Sitzung, und liefert einen Medienstrom an ein Clientgerät. Der Medienstrom enthält Pakete, die Frames, beispielsweise MPEG-4-Frames, kapseln. Die MPEG-4-Frames selbst können Schlüsselbilder oder Differenzbilder sein. Die von dem Server verwendete spezifische Datenkapselungsmethode hängt von der Art des Inhalts, dem Format dieses Inhalts, dem Format der Nutzdaten, und den für das Senden der Daten verwendeten Anwendungs- und Übertragungsprotokollen ab. Nachdem das Clientgerät den Medienstrom empfangen hat, entkapselt das Clientgerät die Pakete, um die MPEG-Frames zu erhalten, und dekodiert die MPEG-Frames, um die eigentlichen Mediendaten zu erhalten.
  • Herkömmliche MPEG-4-Dateien machen es erforderlich, dass ein Abspielgerät den gesamten Dateikopf parst, bevor irgendwelche Daten dekodiert werden können. Das Parsen des gesamten Dateikopfs kann erhebliche Zeit in Anspruch nehmen, insbesondere bei Geräten mit begrenzten Netzwerk- und Verarbeitungsressourcen. Infolgedessen wird durch die Verfahren und Mechanismen der vorliegenden Erfindung ein fragmentiertes MPEG-4-Framework geschaffen, das ein Abspielen während des Empfangs eines ersten MPEG-4-Dateifragments ermöglicht. Ein zweites MPEG-4-Dateifragment kann unter Verwendung von in dem ersten MPEG-4-Dateifragment enthaltenen Informationen angefordert werden. Gemäß verschiedenen Ausführungsbeispielen kann es sich bei dem angeforderten zweiten MPEG-4-Dateifragment um ein Fragment handeln, das einem Strom entspricht, der eine höhere oder geringere Bitrate aufweist, als der dem ersten Dateifragment zugeordnete Strom.
  • MPEG-4 ist ein erweiterbares Containerformat ohne eine festgelegte Struktur für die Beschreibung von Medientypen. Stattdessen weist MPEG-4 eine Objekthierarchie auf, welche das Definieren individueller Strukturen für jedes Format ermöglicht. Die Formatbeschreibung ist in dem Beispielbeschreibungsfeld (”stsd”) für jeden Strom gespeichert. Das Beispielbeschreibungsfeld kann Informationen enthalten, die nicht bekannt werden, bevor sämtliche Daten kodiert sind. Das Beispielbeschreibungsfeld kann beispielsweise eine durchschnittliche Bitrate enthalten, die vor der Kodierung nicht bekannt ist.
  • Gemäß verschiedenen Ausführungsbeispielen werden MPEG-4-Dateien fragmentiert, so dass ein Live-Stream nahezu live aufgezeichnet und wiedergegeben werden kann. MPEG-4-Dateien können erzeugt werden, ohne warten zu müssen, bis der gesamte Inhalt für das Vorbereiten der Film-Dateiköpfe geschrieben ist. Um eine MPEG-4-Fragmentierung ohne band-externe Signalgebung zu ermöglichen, ist eine Feldstruktur vorgesehen, welche Synchronisierungsinformationen, Dateiende-Informationen und Kapitelinformationen enthält. Gemäß verschiedenen Ausführungsbeispielen dienen Synchronisierungsinformationen der Audio- und Video-Synchronisierung, wenn die Wiedergabe einen Beginn mitten in einem Strom mit sich bringt. Die Dateiende-Informationen geben das Ende des gegenwärtigen Programms oder der Datei an. Diese können Informationen zum Fortsetzen der Stromübertragung des nächsten Programms oder der nächsten Datei enthalten. Die Kapitelinformationen können für Video-on-Demand-Inhalte verwendet werden, die in Kapitel, welche möglicherweise durch Werbeslots getrennt sind, unterteilt sind.
  • TCP findet häufiger Anwendung als UDP, und Netzwerktechnologien, die Schalt-, Load-Balancer- und Netzwerkkartentechnologien verwenden, werden häufiger für TCP als für UDP entwickelt. Infolgedessen werden Verfahren und Mechanismen zum Ausgeben von fragmentierten Live-Medien über TCP bereitgestellt. Sequenzinformationen werden ebenfalls beibehalten und/oder modifiziert, um einen übergangslosen Betrieb des Clientgeräts zu ermöglichen. Die Zeitsteuerungs- und Sequenzinformationen in einem Medienstrom bleiben erhalten.
  • Anforderungen werden als separate Dateien einem Client angezeigt, und Dateien sollten auf Abspielgeräten, die fragmentiertes MPEG-4 umsetzen können, wiedergebbar sein. Live-Inhalte oder nahezu live gesendete Inhalte, Video-on-Demand-(VOD) und Digital-Video-Record-Inhalte (DVR) sind sämtlich unter Verwendung von Fragmentierung verarbeitbar.
  • 1 zeigt Mechanismen zur dynamischen Überwachung der Geräteressourcenverfügbarkeit. Gemäß verschiedenen Ausführungsbeispielen überwachen ein Clientgerät und ein zugeordneter Server die Prozessorauslastung 101, die Speicherauslastung 103, die Decoder/Rendererauslastung 105 und die Decoder/Renderer-Frame Drops 107. Bei besonderen Ausführungsbeispielen werden die Prozessorauslastung 101 und die Prozessorauslastungsgeschichte 111 überwacht und periodisch an einen Inhaltsserver berichtet. Bei einigen Beispielen wird die Prozessorauslastung 101 kontinuierlich an einen Inhaltsserver berichtet. Bei anderen Beispielen wird die Prozessorauslastung 101 nur berichtet, wenn sie einen Schwellenwert 121 überschreitet. Ähnlich können die Speicherauslastung 103, die Speicherauslastungsgeschichte 113, die Decoder/Renderer-Verzögerung 105, die Decoder/Renderer-Verzögerungsgeschichte 115, die Decoder/Renderer-Frame-Drops 107 und die Decoder/Renderer-Frame-Drop-Geschichte 117 kontinuierlich überwacht und berichtet werden. Gemäß verschiedenen Ausführungsbeispielen werden die Speicherauslastung 103, die Decoder/Renderer-Verzögerung 105 und die Decoder/Renderer-Frame-Drops 107 nur berichtet, wenn sie einen Speicherauslastungsschwellenwert 123, einen Decoder/Renderer-Verzögerungsschwellenwert 125 und/oder einen Decoder/Renderer-Frame-Drop-Schwellenwert 127 übersteigen. Die Schwellenwerte können auf der Grundlage durchschnittlicher Userpräferenzen oder individueller Userpräferenzen bestimmt werden.
  • Gemäß verschiedenen Ausführungsbeispielen betrifft die Decoder/Renderer-Verzögerung 105 Pakete oder Fragmente, die von dem Clientgerät empfangen wurden, jedoch noch nicht von einem Decoder/Renderer verarbeitet werden können. Ein Decoder/Renderer kann ein Hardware- oder Software-Decoder/Renderer sein, der mit anderen Operationen beschäftigt sein kann. Obwohl Streaming-Daten rechtzeitig in dem Gerät ankommen, ist der Decoder/Renderer unter Umständen nicht in der Lage, die Streaming-Daten rechtzeitig zu verarbeiten.
  • 2 zeigt ein Verfahren zum Anpassen der Qualität eines an ein Clientgerät übertragenen Medienstroms basierend auf der dynamisch ermittelten Clientgerätressourcenverfügbarkeit. Bei 201 sendet ein Clientgerät eine Anforderung nach einem Medienstrom an einen Inhaltsserver. Die Anforderung kann eine Client-Identifizierung sowie Geräteeigenschaften enthalten. Bei 203 stellt der Inhaltsserver fest, ob das Clientgerät berechtigt ist, den Medienstrom zu empfangen. Bei 205 wählt der Inhaltsserver einen für das Clientgerät geeigneten Strom auf der Grundlage von Faktoren wie dem Abonnementumfang, der Clientgerät-Bildschirmgröße, der Bildschirmauflösung, dem Prozessortyp, der Speichergröße, der Art der Netzwerkverbindung etc. aus. Bei 207 empfängt der Client den Strom zur Wiedergabe. Gemäß verschiedenen Ausführungsbeispielen puffert der Client zunächst den Strom und beginnt die Wiedergabe bei 209 erst nachdem der Puffer bis zu einem vorbestimmten Schwellenwert gefüllt ist. Bei besonderen Ausführungsbeispielen überwacht das Clientgerät dynamisch die Prozessorauslastung und die Speicherauslastung bei 211. Gemäß verschiedenen Ausführungsbeispielen kann das Clientgerät bei 213 auch dynamisch die Decoderverzögerung und Decoder-Frame-Drops überwachen. Durch den Decoder verursachte Verzögerungen und Frame-Drops können zu Pufferüberläufen führen, da das Clientgerät weiterhin Frames empfängt, die jedoch nicht angezeigt werden können.
  • Gemäß verschiedenen Ausführungsbeispielen sendet das Clientgerät, wenn das Clientgerät bei 215 feststellt, dass die Prozessorauslastung, die Speicherauslastung, die Decoderverzögerung und/oder die Decoder-Frame-Drops einen bestimmten Schwellenwert übersteigen, bei 217 ein Signal an den Streaming-Server, damit dieser einen Strom sendet, der weniger Clientgerätverarbeitungsressourcen verwendet. Der Strom, der weniger Clientgerätverarbeitungsressourcen verwendet, kann ein Strom mit geringerer Auflösung, einer geringeren Frame-Rate, einer geringeren Anzahl von Farben, verringerter Audioqualität etc. sein, oder es kann sich sogar um einen Strom handeln, der auf eine andere Weise kodiert ist. Bei 219 sendet der Inhaltsserver den Strom verringerter Qualität, selbst wenn die Netzwerkressourcen ausreichen, um den Strom höherer Qualität zu übertragen.
  • Bei 221 überwacht das Clientgerät die Ressourcenauslastung und sendet ein Signal an einen Inhaltsserver, um die Medienstromqualität möglichst zu erhöhen, falls ausreichende Verarbeitungsressourcen, Speicherressourcen und Decoderressourcen über einen vorbestimmten Zeitraum verfügbar sind. Bei 223 kann der Inhaltsserver einen Strom höherer Qualität an das Clientgerät senden, wenn sowohl ausreichende Netzwerkressourcen aktuell verfügbar sind, als auch ausreichende Geräteressourcen aktuell verfügbar sind.
  • Bei besonderen Ausführungsbeispielen werden Daten, wie fragmentierte MPEG-4-Pakete, auf Seiten des Clientgeräts empfangen. Der Inhaltsserver kann MPEG-4-Fragmente durch MPEG-4-Fragmente höherer oder geringerer Qualität ersetzen, während die Zeitgebungs- und Sequenznummerinformationen beibehalten werden.
  • In einigen Beispielen wird, wenn die Geräteressourcen begrenzt sind, der Strom auf einen Strom geringerer Qualität umgeschaltet, der die Wiedergabe von mehr Inhalt bei weniger übertragenen MPEG-4-Fragmenten erlaubt. Wenn ausreichend Geräteressourcen zur Verfügung stehen, kann der Inhaltsserver alternativ mit der Übertragung eines Stroms höherer Qualität beginnen, während der Eindruck einer übergangslosen Betrachtung für den Nutzer erhalten bleibt. Ein Inhaltsserver kann die Qualität eines Stroms basierend auf der dynamisch ermittelten Ressourcenauslastung des Clientgeräts verändern.
  • 3 ist eine schematische Darstellung eines Beispiels für ein Fragmentierungssystem 301, das einem Inhaltsserver zugeordnet ist, der die erfindungsgemäßen Verfahren und Mechanismen verwenden kann. Kodierer 305 empfangen Mediendaten von Satelliten, Inhaltsbibliotheken und anderen Inhaltsquellen und senden RTP-Multicast-Daten an einen Fragmentschreiber 309. Die Kodierer 305 senden ferner Session-Announcement-Protocol-Bekanntgaben (SAP) an einen SAP-Empfänger 321. Gemäß verschiedenen Ausführungsbeispielen erzeugt der Fragmentschreiber 309 Fragmente für das Live-Streaming und schreibt Dateien zur Aufzeichnung auf eine Platte. Der Fragmentschreiber 309 empfängt RTP-Multicast-Ströme von den Kodierern 305 und parst die Ströme, um die Audio-/Video-Daten als Teil von fragmentierten MPEG-4-Dateien neu zu packen. Wenn ein neues Programm beginnt, erzeugt der Fragmentschreiber 309 eine neue MPEG-4-Datei im Fragmentspeicher und hängt Fragmente an. Bei bestimmten Ausführungsbeispielen unterstützt der Fragmentschreiber 309 Live- und/oder DVR-Konfigurationen.
  • Der Fragmentserver 311 versieht die Zwischenspeicherungsschicht mit Fragmenten für Clients. Die Designphilosophie hinter der Client/Server-API minimiert Leerläufe und verringert im Hinblick auf die Ausgabe der Mediendaten an den Client 315 die Komplexität so weit wie möglich. Der Fragmentserver 311 stellt Live-Streams und/oder DVR-Konfigurationen zur Verfügung.
  • Der Fragment-Controller 307 ist mit Anwendungsservern 303 verbunden und steuert die Fragmentierung von Live-Kanal-Strömen. Der Fragment-Controller 307 integriert optional Führungsdaten, um die Aufzeichnungen für eine Global-/Netzwerk-DVR zu steuern. In bestimmten Ausführungsbeispielen bettet der Fragment-Controller 307 die Aufzeichnung in eine Logik ein, um die Fragmentschreiberkomponente 309 zu vereinfachen. Gemäß verschiedenen Ausführungsbeispielen läuft der Fragment-Controller 307 auf dem selben Host wie der Fragmentschreiber 309. Bei bestimmten Ausführungsbeispielen instanziiert der Fragment-Controller 307 Instanzen des Fragmentschreibers 309 und sorgt für eine hohe Verfügbarkeit.
  • Gemäß verschiedenen Ausführungsbeispielen verwendet der Client 315 eine Medienkomponente, welche fragmentierte MPEG-4-Dateien anfordert, Trick-Play ermöglicht, und Bandbreitenanpassung vornimmt. Der Client kommuniziert mit den dem HTTP-Proxy 313 zugeordneten Anwendungsdienstleistungen, um Führer zu erhalten und dem Nutzer den verfügbaren aufgezeichneten Inhalt anzuzeigen.
  • 4 zeigt ein Beispiel für ein Fragmentierungssystem 401, das für Video-on-Demand-Inhalte verwendbar ist. Der Fragger 403 erfordert eine Quelle kodierter Videoclips. Jedoch erzeugt der kommerzielle Kodierer keine Ausgangsdatei mit minimalem objektorientiertem Framework-Dateikopf (MOOF) und bettet stattdessen sämtliche Inhalt-Dateiköpfe in die Movie-Datei (MOOV) ein. Der Fragger liest die Eingangsdatei und erzeugt einen alternativen Ausgang, der mit MOOF-Dateiköpfen fragmentiert und mit individuellen Dateiköpfen erweitert wurde, welche das Erlebnis optimieren und als Hinweise für Server dienen.
  • Der Fragmentserver 411 versieht die Zwischenspeicherungsschicht mit Fragmenten für Clients. Die Designphilosophie hinter der Client/Server-API minimiert Leerläufe und verringert im Hinblick auf die Ausgabe der Mediendaten an den Client 415 die Komplexität so weit wie möglich. Der Fragmentserver 411 liefert VoD-Inhalte.
  • Gemäß verschiedenen Ausführungsbeispielen verwendet der Client 415 eine Medienkomponente, welche fragmentierte MPEG-4-Dateien anfordert, Trick-Play ermöglicht, und Bandbreitenanpassung vornimmt. Der Client kommuniziert mit den dem HTTP-Proxy 413 zugeordneten Anwendungsservices, um Führer zu erhalten und dem Nutzer den verfügbaren aufgezeichneten Inhalt anzuzeigen.
  • 5 zeigt Beispiele für Dateien, welche von dem Fragmentschreiber gespeichert werden. Gemäß verschiedenen Ausführungsbeispielen handelt es sich bei dem Fragmentschreiber um eine Komponente in der Gesamtheit des Fragmentierers. Es handelt sich dabei um ein Binärprogramm, das Befehlszeilenargumente verwendet, um ein bestimmtes Programm basierend entweder auf der NTP-Zeit aus dem kodierten Strom oder auf der Uhrzeit aufzuzeichnen. Bei bestimmten Ausführungsbeispielen ist dies als Teil der Argumente konfigurierbar und ist von dem Eingangs-Strom abhängig. Sobald der Fragmentschreiber das Aufzeichnen eines Programms abgeschlossen hat, wird er geschlossen. Für Live-Ströme werden Programme künstlich als kurze Intervalle von beispielsweise 5–15 Minuten Länge erzeugt.
  • Gemäß verschiedenen Ausführungsbeispielen handelt es sich bei den Fragmentschreiber-Befehlszeilenargumenten um die SDP-Datei des aufzuzeichnenden Kanals, die Startzeit, die Endzeit, den Namen der gegenwärtigen und der nächsten Ausgangsdatei. Der Fragmentschreiber beobachtet den RTP-Verkehr von den Live-Video-Kodierern und schreibt die Mediendaten als fragmentierte MPEG-4 erneut auf die Platte. Gemäß verschiedenen Ausführungsbeispielen werden Mediendaten als fragmentierte MPEG-4 geschrieben, wie dies in MPEG-4 Teil 12 (ISO/IEC 14496-12) definiert ist. Jede übertragene Sendung wird als separate Datei, die durch eine Sendungs-ID (welche aus dem EPG abgeleitet ist) identifiziert ist, auf eine Platte geschrieben. Clients fügen die Sendungs-ID als Teil des Kanalnamens hinzu, wenn sie das Ansehen einer vorab aufgezeichneten Sendung anfordern. Der Fragmentschreiber nimmt jede der verschiedenen Kodierungen auf und speichert sie als verschiedene MPEG-4-Fragmente.
  • Bei bestimmten Ausführungsbeispielen schreibt der Fragmentschreiber die RTP-Daten für eine bestimmte Kodierung und die Sendungs-ID in eine einzelne Datei. In dieser Datei befinden sich Metadateninformationen, welche die gesamte Datei (MOOV-Blöcke) beschreiben. Atome werden als Gruppen von MOOF/MDAT-Paaren gespeichert, um das Speichern einer Sendung als einzelne Datei zu ermöglichen. Am Ende der Datei befinden sich Direktzugriffsinformationen, die verwendet werden können, um einem Client das Durchführen von Bandbreitenanpassungen und Trickplay-Funktionen zu ermöglichen.
  • Gemäß verschiedenen Ausführungsbeispielen enthält der Fragmentschreiber eine Option, welche Fragmente verschlüsselt, um die Stream-Sicherheit während des Aufzeichnungsvorgangs zu gewährleisten. Der Fragmentschreiber fordert einen Kodierschlüssel von dem Lizenzmanager an. Die verwendeten Schlüssel sind denen ähnlich, die für das DRM verwendet werden. Das Kodierformat ist bei der Kodierung von MOOF geringfügig anders. Die Verschlüsselung erfolgt ein Mal, so dass dadurch keine übermäßigen Kosten während der Ausgabe an die Clients entstehen.
  • Der Fragmentserver antwortet auf HTTP-Anforderungen von Inhalten. Gemäß verschiedenen Ausführungsbeispielen stellt er API bereit, die von Clients genutzt werden können, um erforderliche Dateiköpfe zu erhalten, die für das Dekodieren des Videos sowie das Suchen eines beliebigen gewünschten Zeitabschnitts in dem Fragment notwendig sind, und API für das Live-Ansehen von Kanälen. Tatsächlich werden Live-Kanäle mit den zuletzt geschriebenen Fragmenten einer Sendung auf diesem Kanal gespeist. Der Fragmentschreiber sendet den Mediendateikopf (der für das Initialisieren von Decodern erforderlich ist), bestimmte Fragmente und den Direktzugriffsblock an die Clients zurück. Gemäß verschiedenen Ausführungsbeispielen ermöglichen die unterstützen API eine Optimierung, wenn die Metadatendateikopfinformationen dem Client zusammen mit dem ersten Fragment zurück gesendet werden. Der Fragmentschreiber erzeugt eine Reihe von Fragmenten innerhalb der Datei. Fordert ein Client einen Stream an, fordert er jedes dieser Fragmente an und der Fragmentserver liest den Teil der Datei, welcher das Fragment betrifft, und sendet dieses an den Client zurück.
  • Gemäß verschiedenen Ausführungsbeispielen verwendet der Fragmentserver eine REST API, die zwischenspeicherfreundlich ist, so dass die meisten an den Fragmentserver gerichteten Anforderungen zwischengespeichert werden können. Der Fragmentserver verwendet Zwischenspeicher-Control-Dateiköpfe und ETag-Dateiköpfe, um dem Zwischenspeicher die richtigen Hinweise zu geben. Diese API verleiht ferner die Fähigkeit, zu verstehen, an welcher Stelle ein bestimmter Nutzer die Wiedergabe angehalten hat, und die Wiedergabe von diesem Punkt an zu starten (die Fähigkeit zur Pause bei einem Gerät und zur Fortsetzung bei einem anderen vorausgesetzt).
  • Bei bestimmten Ausführungsbeispielen folgen die Client-Anforderungen nach Fragmenten dem folgenden Format:
    http://{HOSTNAME}/frag/{CHANNEL}/{BITRATE}/[{ID}/]{COMMAND}[/{ARG}] z. B.
    http://frag.hosttv.com/frag/1/H8QVGAH264/1270059632.mp4/fragment/42.
  • Gemäß verschiedenen Ausführungsbeispielen ist der Kanalname der selbe wie der Backend-Kanalname, der als Kanalbereich der SDP-Datei verwendet wird. VoD verwendet den Kanalnamen ”vod”. Die BITRATE sollte dem BITRATE/AUFLÖSUNG-Identifikatorschema entsprechen, die für RTP-Streams verwendet wird. Die ID wird dynamisch zugewiesen. Bei Live-Streams kann es sich dabei um den UNIX-Zeitstempel handeln; bei DVR handelt es sich dabei um eine einzigartige ID für die Sendung; bei VoD handelt es sich dabei um die Posten-ID. Die ID ist optional und nicht in LIVE-Befehl-Anforderungen enthalten. Der Befehl und das Argument dienen der Angabe des genauen gewünschten Befehls und jedweder Argumente. Um beispielsweise den Teil 42 anzufordern, lautet dieser Bereich ”fragment/42”.
  • Das URL-Format macht die Anforderungen geeignet für Inhaltsausgabenetzwerke (CDN), da die Fragmente sich nach diesem Punkt nie mehr verändern, so dass zwei separate Clients, welche den gleichen Strom ansehen, unter Verwendung eines Zwischenspeichers bedient werden können. Insbesondere nutzt die Headend-Architektur dies, um das Eintreffen zu vieler dynamischer Anforderungen an dem Fragmentserver zu vermeiden, indem sie für das Zwischenspeichern von Anforderungen einen HTTP-Proxy am vorderen Ende verwendet.
  • Gemäß verschiedenen Ausführungsbeispielen handelt es sich bei dem Fragment-Controller um ein Daemon, das auf dem Fragmentierer abläuft und die Fragmentschreiberprozesse verwaltet. Es wird vorgeschlagen, hierin ein konfiguriertes Filter zu verwenden, das von dem Fragment-Controller ausgeführt wird, um die Liste der aufzuzeichnenden Übertragungen zu erzeugen. Dieses Filter fügt sich in externe Komponenten ein, wie beispielsweise einen Führerserver, um zu bestimmen, welche Sendungen aufzuzeichnen sind und welche Übertragungs-ID zu verwenden ist.
  • Gemäß verschiedenen Ausführungsbeispielen weist der Client eine Anwendungslogikkomponente und eine Medienwiedergabekomponente auf. Die Anwendungslogikkomponente liefert die UI für den Benutzer und teilt dem Frontend-Server ferner mit, dass er Sendungen beschaffen soll, die für den Benutzer verfügbar sind, und die Authentifizierung vornehmen soll. Als Teil dieses Vorgangs sendet der Server URLs zu Medieninhalten zurück, die an die Medienwiedergabekomponente weitergeleitet werden.
  • In besonderen Ausführungsbeispielen verlässt sich der Client auf die Tatsache, dass jedes Fragment in einer fragmentierten MP-4-Datei eine Sequenznummer hat. Unter Nutzung dieser Kenntnis und einer gut definierten URL-Struktur für die Kommunikation mit dem Server, fordert der Client Fragmente einzeln an, als ob er separate Dateien aus dem Server lesen würde, indem er einfach URLs für Dateien anfordert, die ansteigenden Sequenznummern zugeordnet sind. Bei einigen Ausführungsbeispielen kann der Client Dateien anfordern, die Ströme mit einer höheren oder einer geringeren Bitrate entsprechen, je nachdem, welche Geräte- und Netzwerkressourcen gegeben sind.
  • Da jede Datei die zum Erzeugen der URL für die nächste Datei erforderlichen Informationen enthält, sind keine speziellen Playlist-Dateien erforderlich, und alle Aktionen (Start, Kanalwechsel, Suche) können mittels einer einzigen HTTP-Anforderung durchgeführt werden. Nachdem jedes Fragment heruntergeladen wurde, beurteilt der Client unter anderem die Größe des Fragments und die für dessen Download erforderliche Zeit, um festzustellen, ob eine Verlangsamung erforderlich ist, oder ob ausreichend Bandbreite verfügbar ist, um eine höhere Bitrate anzufordern.
  • Da jede an den Server gerichtete Anforderung wie eine Anforderung nach einer separaten Datei erscheint, kann die Reaktion auf die Anforderungen in jedem HTTP-Proxy zwischengespeichert oder über jedes HTTP-basierte CDN verteilt werden.
  • 6 zeigt eine Interaktion für einen Client, der einen Live-Stream empfängt. Der Client startet die Wiedergabe, während ein Fragment aus dem Server abgespielt wird. Der Client verwendet die Fragmentnummer, so dass er das korrekte nachfolgende Dateifragment anfordern kann. Eine Anwendung, wie beispielsweise eine Abspielanwendung 607 sendet eine Anforderung an ein Mediakit 605. Die Anforderung kann eine Basisadresse und eine Bitrate umfassen. Das Mediakit 605 sendet eine HTTP-Get-Anforderung an die Zwischenspeicherungsschicht 603. Gemäß verschiedenen Ausführungsbeispielen befindet sich die Live-Antwort nicht im Zwischenspeicher und die Zwischenspeicherungsschicht 603 leitet die HTTP-Get-Anforderung an einen Fragmentserver 601 weiter. Der Fragmentserver 601 führt eine Verarbeitung durch und sendet das richtige Fragment an die Zwischenspeicherungsschicht 603, welche die Daten an das Mediakit 605 sendet.
  • Das Fragment kann für einen kurzen Zeitraum in der Zwischenspeicherungsschicht 603 zwischengespeichert werden. Das Mediakit 605 identifiziert die Fragmentnummer und stellt fest, ob die Ressourcen zum Abspielen des Fragments ausreichen. In einigen Beispielen sind die Ressourcen, wie beispielsweise die Verarbeitungs- oder Bandbreitenressourcen, unzureichend. Das Fragment wurde möglicherweise nicht schnell genug empfangen oder das Gerät hat Schwierigkeiten mit einer ausreichend schnellen Dekodierung des Fragments. Folglich kann das Mediakit 605 ein nächstes Fragment anfordern, das eine andere Datenrate hat. In einigen Fällen kann das Mediakit 605 ein nächstes Fragment mit einer höheren Datenrate anfordern. Gemäß verschiedenen Ausführungsbeispielen hält der Fragmentserver 601 Fragmente für verschiedene Service-Stromqualitäten mit Zeitsteuerungssynchronisierungsinformationen bereit, um eine Zeitsteuerung der genauen Wiedergabe zu ermöglichen.
  • Das Mediakit 605 fordert ein nächstes Fragment unter Verwendung von Informationen aus dem empfangenen Fragment an. Gemäß verschiedenen Ausführungsbeispielen kann das nächste Fragment für den Medienstrom auf einem anderen Server gespeichert sein, eine andere Bitrate aufweisen oder eine andere Autorisierung erfordern. Die Zwischenspeicherungsschicht 603 stellt fest, dass sich das nächste Fragment nicht in dem Zwischenspeicher befindet und sendet die Anforderung an den Fragmentserver 601. Der Fragmentserver 601 sendet das Fragment an die Zwischenspeicherungsschicht 603 und das Fragment wird für einen kurzen Zeitraum zwischengespeichert. Das Fragment wird sodann an das Mediakit 605 gesendet.
  • 7 zeigt ein Beispiel für ein Computersystem. Gemäß bestimmten Ausführungsbeispielen weist ein System 700, das zum Implementieren bestimmter Ausführungsbeispiele der vorliegenden Erfindung geeignet ist, einen Prozessor 701, einen Speicher 703, ein Interface 711 und einen Bus 715 (beispielsweise einen PCI-Bus oder eine andere Verbindungsstruktur) auf und arbeitet als Streaming-Server. Wenn er unter Steuerung durch geeignete Software oder Firmware arbeitet, ist der Prozessor 701 für das Modifizieren und Übertragen von Live-Mediendaten an einen Client verantwortlich. Verschiedene speziell konfigurierte Vorrichtungen können ebenfalls anstelle des Prozessors 701 oder zusätzlich zu dem Prozessor 701 verwendet werden. Das Interface 711 ist üblicherweise zum Senden und Empfangen von Datenpaketen oder Datensegmenten über ein Netzwerk konfiguriert.
  • Besondere Beispiele für unterstützte Interfaces umfassen Ethernet-Interfaces, Frame-Relay-Interfaces, Kabel-Interfaces, DSL-Interfaces, Token-Ring-Interfaces und dergleichen. Darüber hinaus können verschiedene sehr schnelle Interfaces vorgesehen sein, wie beispielsweise Fast-Ethernet-Interfaces, Gigabit-Ethernet-Interfaces, ATM-Interfaces, HSSI-Interfaces, POS-Interfaces, FDDI-Interfaces und dergleichen. Im Allgemeinen können diese Interfaces Ports aufweisen, welche für die Kommunikation mit geeigneten Medien geeignet sind. In einigen Fällen können sie auch einen unabhängigen Prozessor und in einigen Fällen einen flüchtigen RAM aufweisen. Die unabhängigen Prozessoren können solch kommunikationsintensive Aufgaben wie Paketwechsel, Mediensteuerung und -verwaltung wahrnehmen.
  • Gemäß verschiedenen Ausführungsbeispielen handelt es sich bei dem System 700 um einen Fragmentserver, der ferner einen Transceiver, Streaming-Puffer und eine Programmführerdatenbank aufweist. Der Fragmentserver kann ferner mit Fähigkeiten für die Abonnementverwaltung, die Logging- und Berichterstellung und die Überwachung versehen sein. In bestimmten Ausführungsbeispielen besteht die Möglichkeit des Betriebs mit mobilen Geräten, wie Mobiltelefonen, die in einem bestimmten Mobilfunknetz betrieben werden, und der Bereitstellung einer Abonnementverwaltung. Gemäß verschiedenen Ausführungsbeispielen prüft ein Authentisierungsmodul die Identität von Geräten, einschließlich Mobilgeräten. Ein Logging- und Berichterstellungsmodul verfolgt Anforderungen von Seiten von Mobilgeräten und die entsprechenden Antworten. Ein Überwachungssystem ermöglicht es einem Administrator, Nutzungsmuster und die Systemverfügbarkeit zu beobachten. Gemäß verschiedenen Ausführungsbeispielen handhabt der Fragmentserver Anforderungen und Antworten bezüglich Medieninhalte betreffenden Transaktionen, während ein separater Streaming-Server die eigentlichen Medien-Ströme liefert.
  • Zwar wurde ein bestimmter Fragmentserver beschrieben, jedoch sollte ersichtlich sein, dass eine Vielzahl alternativer Konfigurationen möglich ist. Beispielsweise sind einige Module wie das Logging- und Berichterstellungsmodul und ein Monitormodul möglicherweise nicht in jedem Server erforderlich. Alternativ können die Module in einer anderen Vorrichtung ausgebildet sein, welche mit dem Server verbunden ist. In einem anderen Beispiel weist der Server kein Interface zu einer Abstraktkaufmaschine aus und kann tatsächlich die Abstraktkaufmaschine selbst aufweisen. Eine Vielzahl von Konfigurationen ist möglich.
  • In der vorangehenden Beschreibung wurde die Erfindung unter Bezugnahme aus spezifische Ausführungsbeispiele beschrieben. Für den Fachmann auf diesem Gebiet ist jedoch ersichtlich, dass verschiedene Modifizierungen und Änderungen vorgenommen werden können, ohne den in den Ansprüchen nachfolgend ausgeführten Rahmen der Erfindung zu verlassen. Die Beschreibung und die Figuren sind daher eher als illustrativ, denn als einschränkend anzusehen, und sämtliche derartigen Modifizierungen gelten als in den Rahmen der Erfindung eingeschlossen.

Claims (10)

  1. Verfahren mit den folgenden Schritten: Senden einer ersten Anforderung nach einem Medienstrom an einen Inhaltsserver; Empfangen einer ersten Vielzahl von Paketen, die einem Medienstrom eines ersten Qualitätslevels zugeordnet sind, von dem Inhaltsserver; Beginnen der Wiedergabe des Medienstroms des ersten Qualitätslevels auf einem ersten Clientgerät; dynamisches Überwachen der Hardwareressourcenauslastung auf Seiten des ersten Clientgeräts; Feststellen, dass die Hardwareressourcenauslastung auf Seiten des ersten Clientgeräts einen Schwellenwert übersteigt; Senden eines Signals an den Inhaltsserver zur Verringerung der Qualität des Medienstroms des ersten Qualitätslevels.
  2. Verfahren nach Anspruch 1, bei welchem die Ressourcenauslastung auf Seiten des ersten Clientgeräts den Schwellenwert übersteigt, wenn die Prozessorauslastung auf Seiten des ersten Clientgeräts einen Prozessorauslastungsschwellenwert übersteigt.
  3. Verfahren nach Anspruch 1, bei welchem die Ressourcenauslastung auf Seiten des ersten Clientgeräts den Schwellenwert übersteigt, wenn die Speicherauslastung auf Seiten des ersten Clientgeräts einen Speicherauslastungsschwellenwert übersteigt.
  4. Verfahren nach Anspruch 1, bei welchem die Ressourcenauslastung auf Seiten des ersten Clientgeräts den Schwellenwert übersteigt, wenn die Decoderverzögerung auf Seiten des ersten Clientgeräts einen Decoderverzögerungsschwellenwert übersteigt.
  5. Verfahren nach Anspruch 4, bei welchem eine Decoderverzögerung resultiert, wenn ein von dem ersten Clientgerät empfangenes Paket noch nicht verarbeitet werden kann, da die Decoderhardware andere Aufgaben ausführt.
  6. Verfahren nach Anspruch 1, bei welchem die Ressourcenauslastung auf Seiten des ersten Clientgeräts den Schwellenwert übersteigt, wenn Decoder-Frame-Drops auf Seiten des Clientgeräts einen Schwellenwert für Decoder-Frame-Drops übersteigen.
  7. Verfahren nach Anspruch 1, bei welchem der Medienstrom ein fragmentierter MPEG-4-Medienstrom ist.
  8. Verfahren nach Anspruch 1, bei welchem der Inhaltsserver den Medienstrom des ersten Qualitätslevels auf der Grundlage bekannter Eigenschaften des ersten Clientgeräts wählt.
  9. Verfahren nach Anspruch 1, bei welchem der Inhaltsserver den Medienstrom des ersten Qualitätslevels auf der Grundlage eines Abonnementlevels wählt.
  10. Verfahren nach Anspruch 1, bei welchem das Clientgerät einen Medienstrom eines zweiten Qualitätslevels von dem Inhaltsserver in der gleichen Sitzung wie den Medienstrom des ersten Qualitätslevels empfängt.
DE112012001770.6T 2011-04-20 2012-04-13 Auf Echtzeitverarbeitungsfähigkeit basierende Qualitätsanpassung Withdrawn DE112012001770T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/090,959 2011-04-20
US13/090,959 US8990351B2 (en) 2011-04-20 2011-04-20 Real-time processing capability based quality adaptation
PCT/US2012/033603 WO2012145249A1 (en) 2011-04-20 2012-04-13 Real-time processing capability based quality adaptation

Publications (1)

Publication Number Publication Date
DE112012001770T5 true DE112012001770T5 (de) 2014-01-16

Family

ID=47022126

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012001770.6T Withdrawn DE112012001770T5 (de) 2011-04-20 2012-04-13 Auf Echtzeitverarbeitungsfähigkeit basierende Qualitätsanpassung

Country Status (4)

Country Link
US (2) US8990351B2 (de)
DE (1) DE112012001770T5 (de)
GB (1) GB2505113B (de)
WO (1) WO2012145249A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8990351B2 (en) 2011-04-20 2015-03-24 Mobitv, Inc. Real-time processing capability based quality adaptation
DE102014115188A1 (de) 2014-10-17 2016-04-21 Visocon Gmbh Verfahren zur Anpassung eines zu übertragenden Datenstroms an eine Ressourcenauslastung

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005191933A (ja) * 2003-12-25 2005-07-14 Funai Electric Co Ltd 送信装置、送受信システム
US8503539B2 (en) 2010-02-26 2013-08-06 Bao Tran High definition personal computer (PC) cam
US8996987B2 (en) * 2011-06-30 2015-03-31 Apple Inc. List view optimization
US9900630B2 (en) * 2011-11-08 2018-02-20 Comcast Cable Communications, Llc Adaptive content selection
EP2815582B1 (de) 2012-01-09 2019-09-04 ActiveVideo Networks, Inc. Wiedergabe einer interaktiven vereinfachten benutzerschnittstelle auf einem fernsehgerät
US9241170B1 (en) * 2012-01-18 2016-01-19 Google Inc. Adaptive streaming using chunked time-to-offset mapping
US9800945B2 (en) 2012-04-03 2017-10-24 Activevideo Networks, Inc. Class-based intelligent multiplexing over unmanaged networks
WO2013162614A1 (en) * 2012-04-27 2013-10-31 Hewlett-Packard Development Company, L.P. Collaborative caching
JP6071269B2 (ja) * 2012-06-26 2017-02-01 キヤノン株式会社 画像表示制御装置、画像表示制御装置の制御方法、画像表示制御システム、およびプログラム
US20140189064A1 (en) * 2012-12-31 2014-07-03 Bruce R. Cilli Method and system for adaptive video transmission
US10275128B2 (en) 2013-03-15 2019-04-30 Activevideo Networks, Inc. Multiple-mode system and method for providing user selectable video content
US10200508B2 (en) 2013-09-17 2019-02-05 Nvidia Corporation System and method for sharing special-purpose processing resources
JP6277646B2 (ja) * 2013-09-25 2018-02-14 富士通株式会社 受信装置,受信方法,プログラム
US9542953B2 (en) * 2014-01-22 2017-01-10 Comcast Cable Communications, Llc Intelligent data delivery
US9788029B2 (en) 2014-04-25 2017-10-10 Activevideo Networks, Inc. Intelligent multiplexing using class-based, multi-dimensioned decision logic for managed networks
US10057618B2 (en) 2014-06-06 2018-08-21 Microsoft Technology Licensing, Llc System for filtering media manifests using manifest attributes
US10264293B2 (en) 2014-12-24 2019-04-16 Activevideo Networks, Inc. Systems and methods for interleaving video streams on a client device
US10523985B2 (en) * 2014-12-24 2019-12-31 Activevideo Networks, Inc. Managing deep and shallow buffers in a thin-client device of a digital media distribution network
WO2016134343A1 (en) * 2015-02-20 2016-08-25 Harmonic, Inc. Encoding/transcoding based on subjective video quality preferences
US20170026444A1 (en) * 2015-07-24 2017-01-26 Airwatch Llc Policy driven media consumption framework
US10116667B2 (en) * 2016-01-26 2018-10-30 Bank Of America Corporation System for conversion of an instrument from a non-secured instrument to a secured instrument in a process data network
US10129238B2 (en) 2016-02-10 2018-11-13 Bank Of America Corporation System for control of secure access and communication with different process data networks with separate security features
US10142347B2 (en) 2016-02-10 2018-11-27 Bank Of America Corporation System for centralized control of secure access to process data network
US11374935B2 (en) 2016-02-11 2022-06-28 Bank Of America Corporation Block chain alias person-to-person resource allocation
US10762504B2 (en) 2016-02-22 2020-09-01 Bank Of America Corporation System for external secure access to process data network
US10091904B2 (en) * 2016-07-22 2018-10-02 Intel Corporation Storage sled for data center
CN106211511A (zh) * 2016-07-25 2016-12-07 青岛海信电器股份有限公司 跑马灯滚动速度的调整方法及显示装置
US10402796B2 (en) 2016-08-29 2019-09-03 Bank Of America Corporation Application life-cycle transition record recreation system
CN108496164A (zh) * 2016-10-31 2018-09-04 华为技术有限公司 基于动态资源反馈的备份优化
US10349105B2 (en) * 2016-11-14 2019-07-09 Arris Enterprises Llc Channel change processing using stored content
US10812559B2 (en) * 2017-01-18 2020-10-20 Amazon Technologies, Inc. Just-in-time variable adaptive encoding and delivery of media content
US10313419B1 (en) * 2017-01-31 2019-06-04 Amazon Technologies, Inc. VBR encoding of live content
US10484446B1 (en) * 2017-01-31 2019-11-19 Amazon Technologies, Inc. VBR encoding of live content
CN111066329A (zh) * 2017-09-08 2020-04-24 连株式会社 控制视频质量
GB2573484B (en) * 2017-10-09 2022-08-03 Displaylink Uk Ltd Compensating for interruptions in a wireless connection
CN109656708B (zh) * 2017-10-10 2020-09-08 武汉斗鱼网络科技有限公司 Android的动画播放限制方法、存储介质、电子设备及系统
GB2568037B (en) 2017-10-27 2022-08-03 Displaylink Uk Ltd Compensating for interruptions in a wireless connection
US10741143B2 (en) * 2017-11-28 2020-08-11 Nvidia Corporation Dynamic jitter and latency-tolerant rendering
US12075133B2 (en) * 2018-01-31 2024-08-27 Qualcomm Incorporated Dynamic conditional advertisement insertion
US10820236B2 (en) 2018-02-27 2020-10-27 Verizon Patent And Licensing Inc. Method and system for carrier-initiated traffic tuning and communication of subscriber parameters
US11317130B2 (en) * 2018-02-27 2022-04-26 Verizon Patent And Licensing Inc. Method and system for carrier-initiated traffic tuning and communication of subscriber parameters
US11064245B1 (en) * 2018-10-03 2021-07-13 Videolocalize Inc. Piecewise hybrid video and audio synchronization
US11544585B2 (en) * 2018-11-13 2023-01-03 Disney Enterprises, Inc. Analyzing viewer behavior in real time
CN113455011B (zh) * 2019-02-18 2023-10-24 创新科技有限公司 用于媒体设备中的数据管理的系统和方法
CN112104879B (zh) * 2020-11-13 2021-03-23 腾讯科技(深圳)有限公司 一种视频编码方法、装置、电子设备及存储介质

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001063485A2 (en) * 2000-02-24 2001-08-30 Transfinity Corporation Content distribution system
US6701483B1 (en) 2000-08-18 2004-03-02 Alantro Communications, Inc. Fast search-based decoding scheme
CN1557072A (zh) 2001-09-21 2004-12-22 ���˹���Ѷ��� 使用缓冲器大小计算用于拥塞控制的传输速率的数据通信方法和系统
US6931061B2 (en) 2002-11-13 2005-08-16 Sony Corporation Method of real time MPEG-4 texture decoding for a multiprocessor environment
US9314691B2 (en) 2002-12-10 2016-04-19 Sony Computer Entertainment America Llc System and method for compressing video frames or portions thereof based on feedback information from a client device
US20060015773A1 (en) * 2004-07-16 2006-01-19 Dell Products L.P. System and method for failure recovery and load balancing in a cluster network
US7885286B2 (en) * 2005-12-23 2011-02-08 Netsocket, Inc. Method and arrangements in an IP network
US9386064B2 (en) * 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US20080205389A1 (en) * 2007-02-26 2008-08-28 Microsoft Corporation Selection of transrate and transcode processes by host computer
US8812710B2 (en) * 2007-10-05 2014-08-19 At&T Intellectual Property I, L.P. Video content monitoring and display based on popularity
US8954876B1 (en) * 2007-10-09 2015-02-10 Teradici Corporation Method and apparatus for providing a session status indicator
US20090100493A1 (en) * 2007-10-16 2009-04-16 At&T Knowledge Ventures, Lp. System and Method for Display Format Detection at Set Top Box Device
US8250441B2 (en) * 2007-12-11 2012-08-21 Wi-Lan Inc. Outer coding framework for application packet error rate minimization
KR101582084B1 (ko) * 2008-01-25 2016-01-05 삼성전자주식회사 홈 네트워크에서 이벤트를 처리하는 방법 및 이를 위한장치
US9003051B2 (en) * 2008-04-11 2015-04-07 Mobitv, Inc. Content server media stream management
US8370887B2 (en) * 2008-05-30 2013-02-05 Microsoft Corporation Media streaming with enhanced seek operation
US8295345B2 (en) * 2008-09-22 2012-10-23 Smith Micro Software, Inc. Transcoder unit and method
US8392600B2 (en) 2009-09-14 2013-03-05 Adobe Systems Incorporated Dynamic stream switch control
US8510763B2 (en) * 2010-06-14 2013-08-13 Microsoft Corporation Changing streaming media quality level based on current device resource usage
US20110314071A1 (en) * 2010-06-17 2011-12-22 Openwave Systems Inc. Metadata-based data access and control
RU2010135495A (ru) * 2010-08-24 2012-02-27 ЭлЭсАй Корпорейшн (US) Видеотранскодер с гибким управлением качеством и сложностью
US8699582B2 (en) * 2010-10-06 2014-04-15 Qualcomm Incorporated Context-based adaptations of video decoder
US20120195356A1 (en) * 2011-01-31 2012-08-02 Apple Inc. Resource usage control for real time video encoding
US8885050B2 (en) * 2011-02-11 2014-11-11 Dialogic (Us) Inc. Video quality monitoring
US8990351B2 (en) 2011-04-20 2015-03-24 Mobitv, Inc. Real-time processing capability based quality adaptation

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8990351B2 (en) 2011-04-20 2015-03-24 Mobitv, Inc. Real-time processing capability based quality adaptation
US10263875B2 (en) 2011-04-20 2019-04-16 Mobitv, Inc. Real-time processing capability based quality adaptation
DE102014115188A1 (de) 2014-10-17 2016-04-21 Visocon Gmbh Verfahren zur Anpassung eines zu übertragenden Datenstroms an eine Ressourcenauslastung
US10178145B2 (en) 2014-10-17 2019-01-08 Eyeson Gmbh Method for adjusting a data stream to be transmitted to a resource load

Also Published As

Publication number Publication date
GB201319806D0 (en) 2013-12-25
US8990351B2 (en) 2015-03-24
US10263875B2 (en) 2019-04-16
US20150172161A1 (en) 2015-06-18
GB2505113A (en) 2014-02-19
US20120271920A1 (en) 2012-10-25
WO2012145249A1 (en) 2012-10-26
GB2505113B (en) 2017-10-11

Similar Documents

Publication Publication Date Title
DE112012001770T5 (de) Auf Echtzeitverarbeitungsfähigkeit basierende Qualitätsanpassung
DE112012002159T5 (de) Kontextsensitive Client-Pufferschwellenwerte
DE112011101911T5 (de) Fragmentierte Dateistruktur für die Ausgabe von Live-Medien-Streams
US9787747B2 (en) Optimizing video clarity
DE112011103333T5 (de) Medienkonvergenzplattform
DE112011102878T5 (de) Nutzer- und Vorrichtungsauthentifizierung für Mediendienstleistungen
DE112011101908T5 (de) Qualitätseinstellung unter Verwendung eines fragmentierten Medienstroms
DE112013001136T5 (de) Effiziente Abgrenzung und Verteilung von Media-Segmenten
DE112012002526B4 (de) Medieninhalt-Übertragungsverfahren und Übertragungsvorrichtung unter Verwendung desselben
DE112011102879T5 (de) Medienrechteverwaltung auf mehreren Geräten
DE112013002247T5 (de) Kombinierte Broadcast- und Unicast-Übermittlung
US9197900B2 (en) Localized redundancy for fragment processing
US20190045230A1 (en) Distributed scalable encoder resources for live streams
DE112012001769T5 (de) Verfahren und Einrichtung für Broadcast- und Multicast-/Unicast -Übergang
DE112011101004T5 (de) Medienkonvergenzplattform
DE112013000995T5 (de) Skalierbare Wasserzeicheneinfügung für fragmentierte Medienstrom-Bereitstellung
DE112012004994T5 (de) Verbesserte Bildergruppen-(GOP)-Ausrichtung in Medienstromvarianten
KR102176404B1 (ko) 통신 장치, 통신 데이터 생성 방법, 및 통신 데이터 처리 방법
DE112014000242T5 (de) Skalierbare digitale Videoaufzeichnungen auf Netzwerkbasis über eine Architektur auf Shard-Basis
US20130135525A1 (en) Fragment boundary independent closed captioning
DE112018002893T5 (de) Verfahren zum Senden und Empfangen eines Rundsendungssignals und eine Vorrichtung hierfür
DE102018108784B4 (de) Verfahren zum Senden eines digitalen Videosignals an ein Empfangsgerät, Recheneinheit und Computerprogrammprodukt

Legal Events

Date Code Title Description
R005 Application deemed withdrawn due to failure to request examination