DE112016004480T5 - Synchronisierung des Renderns von Medien in heterogenen Netzwerkumgebungen - Google Patents

Synchronisierung des Renderns von Medien in heterogenen Netzwerkumgebungen Download PDF

Info

Publication number
DE112016004480T5
DE112016004480T5 DE112016004480.1T DE112016004480T DE112016004480T5 DE 112016004480 T5 DE112016004480 T5 DE 112016004480T5 DE 112016004480 T DE112016004480 T DE 112016004480T DE 112016004480 T5 DE112016004480 T5 DE 112016004480T5
Authority
DE
Germany
Prior art keywords
rendering
media
terminal
time
network
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.)
Pending
Application number
DE112016004480.1T
Other languages
English (en)
Inventor
David L. Biderman
Simon Ezriel Chaim Goldrei
Zhenheng Li
Roger N. Pantos
Mohammed Z. Visharam
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.)
Apple Inc
Original Assignee
Apple 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 Apple Inc filed Critical Apple Inc
Publication of DE112016004480T5 publication Critical patent/DE112016004480T5/de
Pending 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/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/4302Content synchronisation processes, e.g. decoder synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/141Systems for two-way working between two video terminals, e.g. videophone
    • H04N7/147Communication arrangements, e.g. identifying the communication as a video-communication, intermediate storage of the signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems

Landscapes

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

Abstract

Es werden Techniken zum Synchronisieren von Medien-Rendering zwischen einer Vielzahl von vernetzten Terminals offenbart. Ein erstes Terminal kann Kommunikation von einem anderen Terminal empfangen, das eine Netzwerkzeit mit einem ersten Abschnitt eines auf den Terminals zu rendernden Medienelements korreliert (258). Die Terminals können, aus der Korrelation von Netzwerkzeit mit dem ersten Abschnitt von Medien und von einer zwischen den Terminals ausgehandelten Wiedergaberate, andere Abschnitte des Medienelements, die zu anderen Netzwerkzeiten gerendert werden sollen, identifizieren. Die Terminals können jeweils geeignete Abschnitte des Medienelements rendern, während die Netzwerkzeit fortschreitet. Die Terminals können auch andere Daten austauschen, um Wiedergabemodi im Verlauf einer gemeinsam Rendering-Sitzung zu ändern.

Description

  • HINTERGRUND
  • Die vorliegende Offenbarung betrifft Medien-Rendering-Anwendungen für vernetzte Vorrichtungen und insbesondere für Techniken zum Synchronisieren des Medien-Rendering, um Sendebereitstellungsvorgänge nachzuahmen.
  • Aktuelle Kommunikationsnetzwerke unterstützen die Bereitstellung von vielen verschiedenen Typen von Daten, einschließlich Videodaten. Bei vielen Anwendungen, insbesondere wenn Videoinhalte von einem Publikum auf einer einzelnen Anzeigevorrichtung genutzt werden, beeinträchtigen Verzerrungen bei der Netzwerkbereitstellung und dem Rendern der Videoinhalte nicht das Anzeigeerlebnis. Als Beispiel kann von drei separaten Publikumsgruppen ausgegangen werden, die ein gemeinsames Medienelement an drei verschiedenen Orten überprüfen. Selbst wenn die Publikumsgruppen einen „Live“-Video-Feed anzeigen, sind die Anzeigeerlebnisse der Publikumsgruppen möglicherweise nicht beeinträchtigt, wenn das Rendern von Videoinhalten für Publikum 1 eine Sekunde vor dem Rendern derselben Videoinhalte für Publikum 2 und drei Sekunden vor dem Rendern der Videoinhalte für Publikum 3 erfolgt.
  • Wenn die drei Publikumsgruppen jedoch versuchen, die Videoinhalte gemeinsam miteinander zu überprüfen, und wenn sie miteinander in Kommunikation stehen (zum Beispiel mittels einer Audiokonferenz), können diese Verzerrungen das Anzeigeerlebnis beeinträchtigen. Ein Kommentar eines Publikumsmitglieds kann schwer zu verstehen sein, wenn der Kommentar zum Beispiel Videoinhalte betrifft, die anderen Publikumsmitgliedern an anderen Orten noch nicht gezeigt wurden, oder wenn der Kommentar Videoinhalte betrifft, die vor so langer Zeit gerendert wurden, dass Publikumsmitglieder an den anderen Orten Schwierigkeiten haben, sich an deren Inhalte zu erinnern.
  • Medienbereitstellungsprotokolle erfordern häufig, dass Rendering-Terminals wiederzugebende Medieninhalte von Medienservern anfordern. Ein einzelnes Medienelement kann in eine Vielzahl von Bereitstellungseinheiten („Segmente“) segmentiert werden, die zum Decodieren und Rendern einzeln von einem Terminal angefordert, heruntergeladen und gepuffert werden. Wenn zwei oder mehrere Terminals ein gemeinsames Medienelement rendern, fordert jedes Terminal Segmente von einem Medienserver unabhängig davon an, welche Anforderungen von anderen Terminals gesendet werden. Es gibt keine bekannte Technik zum geeigneten Synchronisieren von Medien-Rendering-Vorgängen in diesen Systemen.
  • Figurenliste
    • 1 ist ein vereinfachtes Blockdiagramm eines Medienverteilungssystems, das für die Verwendung mit verschiedenen Ausführungsformen der vorliegenden Offenbarung geeignet ist.
    • 2 veranschaulicht ein Verfahren zum Synchronisieren des Medien-Renderings zwischen Terminals nach einer Ausführungsform der vorliegenden Offenbarung.
    • 3 ist ein Funktionsblockdiagramm eines Terminals 300 nach einer Ausführungsform der vorliegenden Offenbarung.
  • DETAILLIERTE BESCHREIBUNG
  • Ausführungsformen der vorliegenden Offenbarung stellen Techniken zum Synchronisieren des Medien-Renderings zwischen einer Vielzahl von vernetzten Terminals bereit. Ein erstes Terminal kann eine Kommunikation von einem anderen Terminal empfangen, das eine Netzwerkzeit mit einem ersten Abschnitt eines auf den Terminals wiederzugebenden Medienelements korreliert. Die Terminals können, aus der Korrelation von Netzwerkzeit mit dem ersten Abschnitt von Medien und von einer zwischen den Terminals ausgehandelten Wiedergaberate, andere Abschnitte des Medienelements, die zu anderen Netzwerkzeiten gerendert werden sollen, identifizieren. Die Terminals können jeweils geeignete Abschnitte des Medienelements rendern, während die Netzwerkzeit fortschreitet. Die Terminals können auch andere Daten austauschen, um Wiedergabemodi im Verlauf einer gemeinsamen Rendering-Sitzung zu ändern.
  • 1 ist ein vereinfachtes Blockdiagramm eines Medienverteilungssystems 100, das für die Verwendung mit verschiedenen Ausführungsformen der vorliegenden Offenbarung geeignet ist. Das System 100 kann eine Medienquelle 110 und ein oder mehrere Client-Terminals 120.1-120.4 (zusammen als 120 bezeichnet), die in gegenseitiger Kommunikation durch ein Netzwerk 130 bereitgestellt werden, einschließen. Die Medienquelle 110 kann verschiedene Medienelemente 140 speichern, die von den Terminals 120 heruntergeladen und wiedergegeben werden können. Das Netzwerk 130 stellt eine Kommunikationsstruktur dar, über die die Medienelemente 140 von der Medienquelle 110 zu dem/den Terminal(s) 120 übermittelt werden.
  • 1 veranschaulicht beispielhafte Komponenten eines Medienelements 140 nach einer Ausführungsform der vorliegenden Offenbarung. Das Medienelement 140 kann eine Verzeichnisdatei 142 einschließen, die Informationen enthält, die andere Komponenten 144-148 des Medienelements 140 beschreiben. Ein einzelnes Medienelement 140, das audiovisuelle Inhalte darstellt, schließt üblicherweise verschiedene Instanzen von codierten Videoinhalten ein, die alle die visuellen Inhalte des Medienelements darstellen, aber mit verschieden Datenraten codiert sind. Zum Beispiel kann ein einzelnes Medienelement 140 durch einen 5 MBit/s-Datenstrom 144, einen 2 MBit/s-Datenstrom 145 und einen 500 KBit/s-Datenstrom 146 dargestellt werden. Das Medienelement kann auch Datenströme 147-148 für verschiedene Audiospuren, zum Beispiel eine englische Spur 147, eine spanische Spur 148 und Spuren (nicht gezeigt) in anderen Sprachen (Hebräisch, Chinesisch usw.), einschließen. Es ist auch zulässig, Spuren für andere Zwecke, zum Beispiel für geschlossene Untertitel und dergleichen, einzuschließen. Diese Datenströme 144-148 sind üblicherweise in einzeln verpackte Einheiten (so genannte „Segmente“) zum Herunterladen organisiert. Die Verzeichnisdatei 142 kann Daten speichern, die die verschiedenen Datenströme und deren Eigenschaften identifizieren und die Netzwerkkennungen bereitstellen, wo die Segmente für jede Spur abgerufen werden können.
  • Während des Betriebs wird ein bestimmtes Terminal 120.1 wahrscheinlich nicht alle Datenströme 144-148 nutzen, die für ein Medienelement 140 verfügbar sind. Stattdessen wird das Terminal 120.1 wahrscheinlich die Audio- und Videodatenströme (zum Beispiel die Datenströme 145 und 147) identifizieren, die für die Rendering-Umgebung des Terminals geeignet sind. Ein anderes Terminal 120.2, das in einer anderen Umgebung betrieben wird, kann verschiedene Datenströme (zum Beispiel die Datenströme 144 und 148) zum Herunterladen und Anzeigen auswählen. Die verschiedenen Umgebungen können durch Ressourcenunterschiede zwischen den Vorrichtungen 120.1-120.4, zum Beispiel die Auflösungen von deren jeweiligen Anzeigen und Unterschiede zwischen Verarbeitungsressourcen, die für das Datenstromdecodieren verfügbar sind, beeinflusst sein, und sie können auch durch Unterschiede bei der Bandbreite, die von dem Netzwerk 130 für jedes Terminal 120.1, 120.2, 120.3 und 120.4 bereitgestellt werden kann, beeinflusst sein.
  • 1 veranschaulicht eine vereinfachte Architektur eines Medienelements 140. In der Praxis kann eine Verzeichnisdatei 142 durch eine Reihe von Dateien dargestellt sein, die alle Informationen über jeweilige Abschnitte des Medienelements bereitstellen.
  • Wie in 1 dargestellt, sind die Terminals 120 als Smartphones 120.1, 120.2, Tablet-Computer 120.3 und Anzeigen 120.4 veranschaulicht, aber die Prinzipien der vorliegenden Offenbarung sind nicht hierauf beschränkt. Ausführungsformen der vorliegenden Offenbarung finden Anwendung bei Personal Computern (sowohl Desktop- als auch Laptop-Computern), Computer-Servern, Set-Top-Boxen, Medienwiedergabevorrichtungen und/oder Spielplattformen. Das Netzwerk 130 stellt eine beliebige Anzahl von Netzwerken dar, die codierte Videodaten zwischen der Medienquelle 110 und den Terminals 120 transportieren, einschließlich zum Beispiel Festnetze und/oder drahtlose Kommunikationsnetzwerke. Das Kommunikationsnetzwerk 130 kann Daten in leitungsvermittelten und/oder paketvermittelten Kanälen austauschen. Typische Netzwerke schließen Telekommunikationsnetzwerke, lokale Netzwerke, Weitverkehrsnetzwerke und/oder das Internet ein. Für die Zwecke der vorliegenden Erörterung ist die Architektur und Topologie des Netzwerks 130 für die Vorgänge der vorliegenden Offenbarung unwesentlich, sofern dies nicht weiter unten erklärt wird.
  • 2 veranschaulicht ein Verfahren 200 zum Synchronisieren des Medien-Renderings zwischen Terminals nach einer Ausführungsform der vorliegenden Offenbarung. 2 veranschaulicht ein Paar Terminals 210, 220, eine Medienquelle 230 und eine Taktreferenz 240. Eine synchronisierte Rendering-Sitzung kann mit einer Initialisierungsphase 250 beginnen, die die Sitzung zwischen den Terminals 210, 220 herstellt. Die Initialisierungsphase 250 kann einen ersten Kommunikationsfluss 252 einschließen, der zwischen den Terminals 210, 220 ausgetauscht wird, bei dem die Terminals 210, 220 eine während der Sitzung zu verwendende Taktreferenz 240 bestimmen. Als Teil der Initialisierungsphase 250 kann eines der Terminals 210 (als ein „primäres“ Terminal bezeichnet) Nachrichten zu dem anderen Terminal 220 (dem „sekundären“ Terminal) übertragen, die ein zu renderndes Medienelement identifizieren (Nachricht 254), eine während der Sitzung zu verwendende Rendering-Rate identifizieren (Nachricht 256) und eine gemeinsame Netzwerkzeit, die einer Medienzeit entspricht, identifizieren (Nachricht 258). Das sekundäre Terminal 220 kann den Medienelementbezeichner 254 verwenden, um eine Netzwerkadresse der synchron zu rendernden Medienzeit zu identifizieren. Das sekundäre Terminal 220 kann das Medienelement von der Medienquelle 230 unabhängig von Anforderungen anfordern, die von dem primären Terminal 210 gesendet wurden. Das sekundäre Terminal 220 kann auch Datenströme von dem Medienelement auswählen, die für das sekundäre Terminal 220 geeignet sind, wobei die Auswahl des Terminals unabhängig von Auswahlen getroffen werden kann, die von dem primären Terminal 210 getroffen wurden.
  • Das sekundäre Terminal 220 kann die Bezeichner für Medienzeit und gemeinsame Zeit (Nachricht 258) verwenden, um einen Punkt in dem Medienelement mit einer Netzwerkzeit zu korrelieren. Diese Korrelation, die in Verbindung mit der Wiedergaberate verwendet wird, erlaubt es dem sekundären Terminal 220 zu identifizieren, welche Elemente des Medienelements in der Zukunft wiederzugeben sind.
  • Sobald die Initialisierungsphase 250 abgeschlossen ist, können die Terminals 210, 220 jeweilige Rendering-Phasen 260, 270 der Sitzung beginnen. Während der Rendering-Phasen 260, 270 können die Vorgänge jedes Terminals unabhängig von denen des anderen erfolgen, aber die Terminals 210, 220 geben dennoch die synchronisierten Videoinhalte wieder. Jedes Terminal 210, 220 kann ausgewählte Datenströme des Medienelements von der Medienquelle herunterladen (Nachrichtenströme 262, 272). Jedes Terminal 210, 220 kann seinen Rendering-Vorgang auf die Taktreferenz synchronisieren (Nachrichtenströme 264, 274). Jedes Terminal 210, 220 kann einen Abschnitt des Medienelements lokal rendern, indem es basierend auf der in der Initialisierungsphase 250 identifizierten Wiedergaberate und Korrelation bestimmt, welcher Abschnitt des Medienelements zu einer aktuellen „Zeit“ an jedem Terminal (Boxen 266, 276) gerendert werden soll. Diese Vorgänge können rekursiv während der gesamten Videositzung erfolgen, bis eine vorher festgelegte Stoppbedingung erreicht ist, zum Beispiel wenn die Rendering-Sitzung ein Ende des Medienelements erreicht, oder wenn ein Benutzervorgang bewirkt, dass die normale Wiedergabe unterbrochen wird.
  • Ausführungsformen der vorliegenden Offenbarung ziehen in Betracht, dass die Video-Rendering-Sitzung parallel zu anderen Interaktionen 280 zwischen den Terminals 210, 200 erfolgt. Zum Beispiel können die Terminals 210, 220 eine Audio- oder audiovisuelle Konferenz untereinander unterstützen, die es Zuschauern an beiden Terminals erlaubt, das gerenderte Medienelement zu kommentieren. Alternativ dazu können die Interaktionen 280 andere Formen annehmen, wie Instant Messaging-Sitzungen, Chat-Anwendungen, Twittern, Feeds in sozialen Netzwerken und dergleichen. Die Terminals 210, 220 können eine Anwendung zur gemeinsamen Dokumenterstellung unterstützen, die es Zuschauern an jedem Terminal erlaubt, Notizen oder Anmerkungen für das Medienelement zu entwickeln.
  • Wenngleich 2 eine Rendering-Sitzung zwischen nur zwei Terminals 210, 220 veranschaulicht, sind die Prinzipien der vorliegenden Offenbarung nicht hierauf beschränkt. In der Praxis kann eine Rendering-Sitzung eine beliebig ausgewählte Anzahl (N) von Terminals einschließen. In diesen Anwendungen können die Kommunikationsflüsse 252 zwischen den N Terminals geteilt werden. Das primäre Terminal 210 kann Nachrichten 254-258 zu den anderen sekundären Terminals N-1 senden, um die Initialisierungsphase abzuschließen. Danach können die Terminals ihre Rendering-Phasen 260, 270 parallel zueinander durchführen.
  • Die Taktreferenz 240 kann über eine Vielzahl von Techniken erhalten werden. Zum Beispiel bestimmen verschiedene Netzwerkprotokolle Taktreferenzen für Netzwerkelemente, einschließlich der Standards Network Time Protocol (NTP), IEEE 1588 und IEEE 802.1AS. Die Terminals 210, 220 können sich zur Verwendung während des Renderings auf Zeitgebungsreferenzen stützen, die von einem beliebigen dieser Protokolle bereitgestellt werden. Wenn Terminals Taktreferenzen (Nachricht 252) zur Verwendung in der Rendering-Sitzung bestimmen, können die Terminals 210, 220 ein geeignetes Netzwerkelement bestimmen, das diese Zeitgebungsreferenzen bereitstellt. Die Terminals 210, 220 können sich alle auf die Taktreferenz 240 beziehen, um eine Korrelation zwischen der lokalen Betriebszeit jedes Terminals, die von Terminal zu Terminal (z. B. in den Boxen 266, 276) variieren kann, und einer durch die verwendete Taktreferenz 240 bestimmten Netzwerkzeit, zu entwickeln.
  • In der Praxis können einzelne Terminals 210, 220 gemäß lokalen Takten betrieben werden, die in Bezug auf diese Taktquellen Abweichungen aufweisen. Zum Beispiel kann der Takt eines bestimmten Terminals bewirken, dass das Rendering mit einer Rate erfolgt, die 0,01 % schneller ist als das Rendering bei anderen Vorrichtungen. Ein Terminal kann seine Vorgänge regelmäßig auf die Taktreferenz 240 resynchronisieren, um seinen Betrieb anzupassen. Außerdem kann ein Terminal 220 Taktabweichungsfehler im Laufe einer Rendering-Sitzung nachverfolgen, und, wenn Fehler als wesentlich (z. B. über einem vorher festgelegten Schwellenwert) bestimmt werden, kann das Terminal 220 eine lokale Wiedergaberate berechnen, die diese Taktabweichung kompensiert (z. B. um den Fehler von 0,01 % in dem vorgenannten Beispiel zu beseitigen).
  • 2 veranschaulicht einen Kommunikationsfluss und Vorgänge, die erfolgen können, wenn zwei Terminals Videoinhalte mit einer konstanten Wiedergaberate rendern. Ausführungsformen der vorliegenden Offenbarung stellen auch Kommunikationsflüsse bereit, um Rendering-Modi zu unterstützen, die sich von dem in 2 gezeigten Beispiel der konstanten Wiedergabe unterscheiden. Diese schließen Folgendes ein:
  • Wiedergabe anhalten: In diesem Modus können die Terminals 210, 220 jeweils das Rendering des Medienelements an einem vorher festgelegten Punkt auf der Rendering-Zeitleiste des Medienelements anhalten. Um diesen Modus zu unterstützen, kann ein Terminal (zum Beispiel Terminal 220), bei dem ein Anhaltebefehl eingegeben wurde, eine Nachricht zu dem/den anderen Terminal(s) 210 der Sitzung übertragen, die identifiziert, dass ein Anhaltebefehl eingegeben wurde, und die eine Medienzeit identifiziert, zu der der Anhaltevorgang wirksam wird. Jedes Terminal 210, 220 in der Sitzung kann das Rendering zu der in der Anhaltenachricht identifizierten Medienzeit anhalten.
  • Wiedergabe fortsetzen: Ein Terminal kann die normale Wiedergabe fortsetzen, indem es einen zuvor veranlassten Anhaltevorgang aufhebt. Um diesen Modus zu unterstützen, kann ein initiierendes Terminal 210 (das nicht dasselbe Terminal sein muss, das den Anhaltevorgang veranlasst hat) eine Nachricht übertragen, die identifiziert, dass das Anhalten aufgehoben wurde, und die eine Netzwerkzeitreferenz identifiziert, zu der die Aufhebung wirksam werden soll. Basierend auf dieser Nachricht kann jedes empfangende Terminal eine neue Korrelation zwischen seiner Netzwerkzeit und der Zeitleiste des Medienelements erzeugen und das Rendering unter Verwendung der neuen Korrelation fortsetzen.
  • Wiedergabe scannen: In diesem Modus sollten die Terminals 210, 220 jeweils eine Wiedergaberate von der in der Wiedergaberatenachricht 256 identifizierten Standardrate zu einer alternativen Rate ändern. Wiedergaberaten können ausgehend von normalen Rendering-Raten erhöht werden (z. B. das 2-, 4-, 8- oder 16-Fache einer Standardrate), oder sie können ausgehend von den normalen Raten (z. B. das ½- oder ¼-Fache einer Standardrate) verringert werden. Darüber hinaus können Wiedergaberaten negative Werte sein, um ein Scannen in eine ausgehend von der normalen Wiedergabe umgekehrte Richtung zu erlauben. Um diese Wiedergabemodi zu unterstützen, kann ein initiierendes Terminal eine Nachricht zu dem anderen Terminal 210 übertragen, die identifiziert, dass der Scan-Modus gestartet wird, die eine neue Wiedergaberate identifiziert und die eine Medienzeit identifiziert, zu der der Scan-Modus wirksam wird. Jedes Terminal 210, 220 kann eine neue Korrelation zwischen seiner eigenen aktuellen Zeit und der Zeitleiste des Medienelements bestimmen, indem es die in der neuen Nachricht bereitgestellten Informationen verwendet.
  • Wiedergabe suchen: In diesem Modus sollen die Terminals 210, 220 von einer ersten Position auf der Zeitleiste des Medienelements zu einer zweiten Position springen. Um einen Suchmodus zu unterstützen, kann ein initiierendes Terminal eine Nachricht zu dem anderen Terminal 210 übertragen, die identifiziert, dass der Suchmodus gestartet wurde, und die eine neue Position in dem Medienelement, zu der die Wiedergabe springen soll, und eine Netzwerkzeit, zu der das Rendering an der neuen Position beginnen soll, identifiziert. Jedes Terminal 210, 220 kann eine neue Korrelation zwischen seiner eigenen aktuellen Zeit und der Zeitleiste des Medienelements bestimmen, indem es die in der neuen Nachricht bereitgestellten Informationen verwendet.
  • Wiedergabe scrubben: In diesem Modus scrollt ein Benutzer an einem ersten Terminal 210 über eine Zeitleiste des Medienelements, indem er ein Steuerelement einer Benutzeroberfläche, wie einen Schieber, verwendet. An dem ersten Terminal durchläuft der Scroll-Vorgang die Zeitleiste mit einer vom Benutzer bestimmten Rate, die unregelmäßig sein kann. Das erste Terminal 210 kann Rahmen von der Zeitleiste mit einer periodischen Rate anzeigen, die basierend auf einer Position des Scroll-Vorgangs von dem Medienelement ausgewählt sein können, wenn die Anzeige eines neuen Rahmens erforderlich ist.
  • Während des Scrub-Vorgangs kann ein erstes Terminal 210 eine Nachricht zu (einem) anderen Terminal(s) 220 senden, die anzeigt, dass ein Scrubben initiiert wurde, und die eine Netzwerkzeit identifiziert, zu der der Scrub-Vorgang begann. Die anderen Terminals 220 können reagieren, als ob eine Anhaltenachricht empfangen wurde, indem sie die Wiedergabe bei einem Rahmen anhalten, der zu der angegebenen Netzwerkzeit zu rendern war.
  • Wenn der Scrub-Vorgang abgeschlossen ist, wird das Rendering an dem ersten Terminal 210 an einer Stelle innerhalb der Medienzeit fortgesetzt, die von dem Steuerelement der Benutzeroberfläche identifiziert wird. Das erste Terminal 210 kann eine andere Nachricht zu den anderen Terminals 220 senden, die einen Abschnitt des Medienelements identifiziert, bei dem das Rendering fortgesetzt werden soll, und die eine Netzwerkzeit identifiziert, zu der das Rendering beginnen soll. Die anderen Terminals 220 können reagieren, als ob eine Suchnachricht empfangen wurde, und sie können zu der identifizierten Stelle springen und das Rendering zu der identifizierten Netzwerkzeit beginnen.
  • Wahlweise kann, während der Scrub-Vorgang im Gange ist, das erste Terminal 210 zusätzliche Nachrichten zu den anderen Terminals 220 senden, die Rahmen von dem Medienelement identifizieren, die an dem ersten Terminal 210 während des Fortschreitens des Scrub-Vorgangs angezeigt wurden, und die Netzwerkzeiten identifizieren, zu denen diese identifizierten Rahmen angezeigt wurden. Als Reaktion können die anderen Terminals 220 die identifizierten Rahmen zu den Netzwerkzeiten anzeigen. Die Übertragung von diesen Nachrichten kann zum Laden an den Terminals 210 und 220 beitragen, und deshalb können diese Terminals diese zusätzlichen Nachrichten so gut wie möglich übertragen oder verarbeiten.
  • Ausführungsformen der vorliegenden Offenbarung ermöglichen auch, dass diese Nachrichten miteinander kaskadiert werden, um zusätzliche Funktionalität bereitzustellen. Zum Beispiel können die Terminals 210, 220 das Ändern von Kanälen von normalen Fernsehprogrammen nachahmen, indem sie eine Anhaltenachricht übertragen, die das Rendering eines ersten Medienelements auf den Terminals 210, 220 synchron beendet, und dann erneut eine Initialisierungsphase 250 veranlasst, um das Rendering eines neuen Medienelements auf den Terminals 210, 220 synchron zu beginnen.
  • Die Techniken für ein synchronisiertes Rendering der vorliegenden Offenbarung kommen in einer Vielzahl von Anwendungsfällen zum Einsatz. In einem weiter oben erörterten Beispiel können Mitglieder einer gemeinsamen sozialen Gruppe ein Medienelement anzeigen, während sie an einer zusätzlichen Konferenz zwischen den Terminals 210, 220 teilnehmen. Wenn Zuschauer das Medienelement kommentieren oder auf sonstige Weise darauf reagieren, ist deren Kommentar daher wahrscheinlich für die anderen Zuschauer bedeutsam, die denselben Abschnitt des Medienelements synchron betrachten.
  • In einem anderen Anwendungsfall können Zuschauer in einem gemeinsamen Anzeigebereich, wie vor einer gemeinsamen großen Anzeige, versammelt werden. Für einige Zuschauer ist es möglicherweise einfacher, das Medienelement unter Verwendung einer Sprache anzuschauen, die von der durch die gemeinsame Anzeige ausgegebenen Sprache verschieden ist. In diesem Szenario können ausgewählte Zuschauer eine ergänzende Vorrichtung (wie eine persönliche Medienwiedergabevorrichtung oder ein persönliches Smartphone) einsetzen, die mit der Hauptanzeige synchronisiert ist, aber Audioinhalte in einer alternativen Sprache über persönliche Kopfhörer ausgibt. Eine Auswahl von alternativen Audiospuren kann in anderen Anzeigeumgebungen, wie in dem vorstehend beschriebenen Anwendungsfall der sozialen Gruppe, ebenfalls unterstützt werden.
  • In ähnlicher Weise können Zuschauer in einer anderen Gemeinschaftsanzeigeumgebung ein Medienelement anschauen, das von einer Gemeinschaftsanzeigevorrichtung ausgegeben wird. Umgebungsanzeigebedingungen (z. B. Rauschen oder stummgeschaltete Anzeige) können verhindern, dass die Audioinhalte von bestimmten Zuhörern gehört werden. In diesem Szenario können ausgewählte Zuschauer eine ergänzende Vorrichtung einsetzen, die mit der Hauptanzeige synchronisiert ist, aber Audioinhalte über persönliche Kopfhörer ausgibt.
  • In einer weiteren Gemeinschaftsanzeigeumgebung kann ein gemeinsames Medienelement auf einer Vielzahl von Anzeigen gerendert werden, die sich in der Nähe voneinander befinden. In diesen Umgebungen kann ein nicht synchronisiertes Rendering für Zuschauer deutlich sichtbar sein, insbesondere wenn ein gemeinsamer Satz von Szenenwechseln zu verschiedenen Zeiten auf verschiedenen Anzeigen angezeigt wird. Unter Verwendung der Synchronisierungstechniken der vorliegenden Offenbarung können die Anzeigen in dem gemeinsamen Anzeigebereich das Rendering des Medienelements synchronisieren, wodurch eine Verzerrung zwischen dem Rendering von Medienelementen über die Anzeigen hinweg minimiert werden kann.
  • Die Synchronisierungstechniken können auch in Anwendungsfällen Anwendung finden, in denen Zuschauer verschiedene Videodatenströme zur Bereitstellung auf verschiedenen Anzeigen in einem gemeinsamen Anzeigebereich auswählen können. Zum Beispiel kann ein Medienelement, das Konzertaufnahmen darstellt, verschiedene Videodatenströme haben, die auf verschiedene Künstler bei dem Konzert gerichtet sind. Ein erster Videodatenstrom kann Videoinhalte eines Lead-Sängers einschließen, ein zweiter Videodatenstrom kann Videoinhalte eines Gitarristen einschließen, und ein dritter Videodatenstrom kann Videoinhalte eines Schlagzeugers einschließen. In einem anderen Beispiel einer Sportveranstaltung können sich verschiedene Videodatenströme auf verschiedene Beteiligte der Veranstaltung konzentrieren. Publikumsmitglieder können persönliche Medienwiedergabevorrichtungen mit der Hauptanzeige synchronisieren und einen dieser alternativen Videodatenströme zum Rendern auswählen. Auf diese Weise kann das Rendering des alternativen Videodatenstroms auf der persönlichen Medienvorrichtung mit dem Rendering der Hauptanzeige synchronisiert werden.
  • Die Synchronisierungstechniken können bei einer Videokonferenzanwendung Anwendung finden, bei der das Medienelement in live erzeugten Videoinhalten besteht. In einer solchen Ausführungsform kann ein entfernter Teilnehmer das Medienelement auf einer persönlichen Vorrichtung (z. B. einem Smartphone oder Tablet-Computer) anzeigen, während eine Hauptanzeige die Videodatei auf einer anderen Vorrichtung rendert. Bei einer Videokonferenz mit drei oder mehr Videoteilnehmern (die alle ihr eigenes Medienelement erzeugen) können Bediener die lokale Wiedergabe der Medienelemente auf eine Weise steuern, die sich von einem Standard-Rendering-Schema unterscheidet, das möglicherweise auf andere Terminals anwendbar ist. Zum Beispiel kann ein Bediener ein Rendering-Schema auswählen, bei dem alle Medienelemente in jeweiligen Fenstern auf dem Terminal angezeigt werden und Fenster von einer aktuell sprechenden Person in einer größeren Größe als der von nicht sprechenden Teilnehmern gerendert werden. Ein Standard-Rendering-Schema wendet solche Verbesserungen möglicherweise nicht an und gibt stattdessen möglicherweise alle Medienelemente unabhängig von Aktivität (z. B. Sprechen und Nichtsprechen), die in diesen Medienelementen erfolgt, in gleich dimensionierten Fenstern wieder.
  • Die vorstehende Erörterung hat eine Netzwerkumgebung dargestellt, in der jedes Terminal ein Medienelement von einer gemeinsamen Medienquelle 230 herunterlädt. Die Prinzipien der vorliegenden Offenbarung finden in Umgebungen Anwendung, in denen verschiedene Medienquellen (nicht gezeigt) in einem Netzwerk vorhanden sind, die redundante Kopien des Medienelements speichern. Somit kann ein erstes Terminal 210 das Medienelement von einer ersten Medienquelle 230 herunterladen und kann ein zweites Terminal 220 das Medienelement von einer anderen Medienquelle (nicht gezeigt) herunterladen.
  • Die Prinzipien der vorliegenden Offenbarung finden auch in Netzwerkumgebungen Anwendung, in denen ein Terminal 210 das Medienelement (oder Abschnitte davon) einem anderen Terminal 220 bereitstellt. In dieser Ausführungsform kann das erste Terminal 210 Abschnitte des Medienelements herunterladen und diese Abschnitte im lokalen Speicher speichern. Alternativ dazu kann das erste Terminal 210 das Medienelement zum Beispiel durch Erfassen von Videodaten durch ein lokales Bildgebungssystem erstellen. In jedem Fall kann das erste Terminal 210 auch mit dem zweiten Terminal 220 kommunizieren, um den/die von diesem gespeicherten Abschnitt(e) des Medienelements zu identifizieren. Unter diesem Umstand kann das Terminal 220 bestimmen, von welcher Einheit, entweder von dem Terminal 210 oder von der Medienquelle 230, es die Bereitstellung dieser Abschnitte des Medienelements anfordert. Das zweite Terminal 220 kann beim Auswählen der Einheit, an die es seine Anforderung von Medienelementen sendet, Netzwerklastbedingungen und andere Ressourcenbeschränkungen schätzen.
  • Wenngleich 2 veranschaulicht, dass jedes Terminal 210, 220 die Medienelemente erst nach Abschluss der Sitzungsinitialisierung herunterlädt, sind die Prinzipien der vorliegenden Offenbarung ferner nicht hierauf beschränkt. Ausführungsformen der vorliegenden Offenbarung ermöglichen es einem Terminal 210 (oder allen Terminals), ein Medienelement in seiner Gesamtheit herunterzuladen, bevor eine synchronisierte Rendering-Sitzung mit einem anderen Terminal 220 initiiert wird. In diesem Fall müssen das eine oder die mehreren Terminals 210, die das Medienelement vorspeichern, das Rendering nur wie weiter oben beschrieben synchronisieren.
  • Die vorstehende Erörterung hat eine Implementierung beschrieben, bei der ein erstes Terminal 210 als ein primäres Terminal bezeichnet wird und andere Terminals als sekundäre Terminals bezeichnet werden. In einer Ausführungsform können sich die Rollen dieser Terminals während einer gemeinsamen Sitzung ändern. Zum Beispiel kann ein erstes Terminal 210 eine Sitzung als ein primäres Terminal initiieren, wobei andere Terminals die Rolle von sekundären Terminals übernehmen. Wenn ein Benutzer an dem ersten Terminal 210 aus irgendeinem Grund die Sitzung verlässt, dann kann ein anderes Terminal (zum Beispiel Terminal 220) die Rolle eines primären Terminals für einen nachfolgenden Abschnitt der Sitzung übernehmen. Die Rolle des primären Terminals kann auch durch einen ausdrücklichen Benutzerbefehl geändert werden, der über ein die Sitzung unterstützendes Steuerelement einer Benutzeroberfläche eingegeben wird.
  • Wenngleich in 2 nicht veranschaulicht, können außerdem andere Terminals (nicht gezeigt) einer bereits aktiven Sitzung beitreten. Wenn ein neues Terminal einer Sitzung beitritt, kann ein Terminal, entweder ein primäres Terminal oder eines der sekundären Terminals, Nachrichten ähnlich den Nachrichten 252-258 zu dem neuen Terminal übertragen, die die Taktreferenz, das Medienelement, die Wiedergaberate und die Korrelation zwischen Medienzeit und Wiedergabezeit identifizieren. Danach kann sich das Terminal auf die Wiedergabe der anderen Terminals synchronisieren und das Rendering des Medienelements beginnen.
  • 3 ist ein Funktionsblockdiagramm eines Terminals 300 nach einer Ausführungsform der vorliegenden Offenbarung. Das Terminal 300 kann ein Verarbeitungssystem 310, ein Speichersystem 320, eine Anzeige 330, einen Transceiver (TX/RX) 340 und Eingabe/Ausgabe-Einheiten (E/A-Einheiten) 350 einschließen.
  • Das Verarbeitungssystem 310 kann den Betrieb des Terminals 300 steuern, indem es bewirkt, dass das Terminal 300 mit anderen Einheiten wie den in 2 veranschaulichten interagiert, um das Rendering zu synchronisieren. Das Speichersystem 320 kann Anweisungen speichern, die das Verarbeitungssystem 310 ausführen kann, und es kann auch davon erzeugte Anwendungsdaten 320 speichern. Die Architektur des Verarbeitungssystems 310 kann von Terminal zu Terminal variieren. Üblicherweise schließt das Verarbeitungssystem 310 einen Zentralprozessor ein; es kann auch Grafikprozessoren, Digitalsignalprozessoren und anwendungsspezifische integrierte Schaltungen (nicht gezeigt) einschließen, wie es für die individuellen Anwendungsanforderungen geeignet ist. Die Architektur des Speichersystems 320 kann ebenfalls von Terminal zu Terminal variieren. Üblicherweise schließt das Speichersystem 320 eine oder mehrere elektrische, optische und/oder magnetische Speichervorrichtungen (ebenfalls nicht gezeigt) ein. Das Speichersystem 320 kann über das gesamte Verarbeitungssystem verteilt sein. Zum Beispiel kann das Speichersystem einen Cache-Speicher einschließen, der auf einer gemeinsamen integrierten Schaltung mit einem Hauptprozessor des Verarbeitungssystems 310 bereitgestellt wird. Das Speichersystem 320 kann auch einen Direktzugriffshauptspeicher einschließen, der über eine Speichersteuervorrichtung an das Verarbeitungssystem 310 gekoppelt ist, und es kann auch nicht-flüchtige Speichervorrichtungen zur langfristigen Speicherung einschließen.
  • Das Verarbeitungssystem 310 kann auch eine Vielzahl von Programmen während des Betriebs ausführen, einschließlich eines Betriebssystems 360 und eines oder mehrerer Anwendungsprogramme 370. Wie in 3 dargestellt, kann zum Beispiel das Terminal 300 eine Medien-Rendering-Anwendung 372 und eine Konferenzanwendung 374 zusammen mit möglicherweise anderen Anwendungen ausführen. Die Medien-Rendering-Anwendung 372 kann das Herunterladen, das Decodieren und die synchronisierte Anzeige von Medienelementen wie in der vorstehenden Erörterung beschrieben verwalten. Die Konferenzanwendung 374 kann wie erörtert den Konferenzaustausch zwischen dem Terminal 300 und einem anderen Terminal (nicht gezeigt) unterstützen.
  • Die Rendering-Anwendung 372 kann einen Satz von Steuerelementen einer Benutzeroberfläche 378 zur Verwaltung der Anwendung bestimmen. Somit können Steuerelemente einer Benutzeroberfläche gemäß dem Rendering-Anwendungsfall, für den das Terminal 300 angewendet wird, variieren. Zum Beispiel können es standardmäßige Steuerelemente einer Benutzeroberfläche 378 einem Bediener erlauben, die hierin vorstehend beschriebenen Anhalte-, Fortsetz-, Scan-, Such- und Scrub-Vorgänge durchzuführen. In einigen Anwendungen kann es jedoch vorteilhaft sein, Anwendungen zu diesen Steuerelementen zu verweigern. In einer Umgebung (zum Beispiel einem Restaurant oder Fitnessstudio), in der mehrere Anzeigen synchronisierte Inhalte zur Anzeige durch ein großes Publikum anzeigen, kann es zum Beispiel vorteilhaft sein, einzelnen Benutzern die Fähigkeit zu verweigern, das Medien-Rendering zum Beispiel durch Anhalten oder Überspringen von Inhalten zu steuern.
  • Die vorstehende Erörterung hat den Betrieb der Ausführungsformen der vorliegenden Erfindung im Kontext von Terminals beschrieben, die verschiedene Komponenten einschließen. Üblicherweise werden diese Komponenten als elektronische Vorrichtungen bereitgestellt. Sie können in integrierten Schaltungen wie anwendungsspezifischen integrierten Schaltungen, anwenderprogrammierbaren Gatteranordnungen und/oder Digitalsignalprozessoren ausgeführt sein. Alternativ dazu können sie in Computerprogrammen ausgeführt sein, die auf Personal Computern, Notebook-Computern, Tablet-Computern, Smartphones, Set-Top-Boxen, Spielplattformen, tragbaren Medienwiedergabevorrichtungen und/oder Computer-Servern ausgeführt werden. Diese Computerprogramme werden üblicherweise in physischen Speichermedien wie elektronisch, magnetisch und/oder optisch basierten Speichervorrichtungen gespeichert, wo sie auf einen unter der Kontrolle eines Betriebssystems stehenden Prozessor gelesen und ausgeführt werden. Und natürlich können diese Komponenten als Hybridsysteme bereitgestellt werden, die Funktionalität wie gewünscht über speziell dafür vorgesehene Hardwarekomponenten und programmierte Universalprozessoren verteilen.
  • Wenngleich die vorstehende Erörterung ein Medienelement 140 (1) im Kontext einer Verzeichnisdatei und verschiedener Datenströme beschrieben hat, gelten die Prinzipien der vorliegenden Offenbarung darüber hinaus für Medienelemente mit verschiedenen Architekturen. Zum Beispiel kann ein Medienelement eine Architektur einer flachen Datei (Flat File) haben, in der alle Medieninhalte und Metadatenbeschreibungen von Zeitleisten in einer einzelnen herunterladbaren Datei bereitgestellt werden. Ferner muss das Medienelement keine Videodatei per se sein; die Prinzipien der vorliegenden Offenbarung gelten für Medienelemente, die reine Audioinhalte, Spielinhalte und dergleichen darstellen. Somit würden die Medienelemente durch Mediensenkenvorrichtungen wie Anzeigen und/oder Lautsprecher gerendert, die für die Eigenschaft des Medienelements geeignet sind.
  • Verschiedene Ausführungsformen der Erfindung sind hierin spezifisch veranschaulicht und/oder beschrieben. Es versteht sich jedoch, dass Modifikationen und Variationen der Erfindung von den vorstehenden Lehren abgedeckt sind und innerhalb des Bereichs der beigefügten Ansprüche liegen, ohne vom Wesen und beabsichtigten Umfang der Erfindung abzuweichen.

Claims (27)

  1. Verfahren zum Synchronisieren von Medien-Rendering zwischen Terminals, umfassend an einem ersten Terminal: als Reaktion auf eine von einem anderen Terminal einer synchronisierten Rendering-Sitzung empfangene Kommunikation, Korrelieren einer Netzwerkzeit mit einem ersten Abschnitt eines zu rendernden Medienelements (258), Abrufen von Inhalten des Medienelements von einer Netzwerkadresse (262), Identifizieren, aus der Korrelation der Netzwerkzeit mit dem ersten Abschnitt und von einer in Kommunikation von dem anderen Terminal empfangenen Wiedergaberate, eines zweiten Abschnitts des zu rendernden Medienelements und einer Zeit, zu der der zweite Abschnitt zu rendern ist, und Rendern des zweiten Abschnitts des Medienelements zu der Zeit, zu der der zweite Abschnitt zu rendern ist (266).
  2. Verfahren nach Anspruch 1, wobei das Identifizieren ein Korrelieren der Netzwerkzeit mit der aktuellen Zeit an dem ersten Terminal einschließt.
  3. Verfahren nach Anspruch 1, ferner umfassend ein Empfangen einer Identifikation des Medienelements von dem anderen Terminal (254).
  4. Verfahren nach Anspruch 1, ferner umfassend ein Aushandeln einer Identifikation einer Quelle der Netzwerkzeit mit dem anderen Terminal.
  5. Verfahren nach Anspruch 1, umfassend, während die aktuelle Zeit während der Rendering-Sitzung fortschreitet, ein Wiederholen des Identifizierens und des Renderings, bis eine Stoppbedingung eintritt.
  6. Verfahren nach Anspruch 5, wobei die Stoppbedingung eintritt, wenn das Rendering ein Ende des Medienelements erreicht.
  7. Verfahren nach Anspruch 5, wobei die Stoppbedingung eine neue Kommunikation ist, die einen alternativen Rendering-Modus identifiziert.
  8. Verfahren nach Anspruch 7, wobei der alternative Rendering-Modus ein Anhaltevorgang ist, das Verfahren danach umfassend ein Anhalten des Renderings an einer Stelle des Medienelements, die in der neuen Kommunikation identifiziert wird.
  9. Verfahren nach Anspruch 7, wobei der alternative Rendering-Modus ein Scan-Vorgang ist, wobei das Verfahren danach ein Rendering des Medienelements mit einer alternativen Wiedergaberate umfasst, die in der neuen Kommunikation identifiziert wird, beginnend an einer Position in dem Medienelement, die durch die neue Kommunikation identifiziert wird.
  10. Verfahren nach Anspruch 7, wobei der alternative Rendering-Modus ein Suchvorgang ist, wobei das Verfahren danach ein Rendering des Medienelements umfasst, beginnend an einer zweiten Position in dem Medienelement, unter Verwendung einer neuen Korrelation zwischen der Netzwerkzeit und dem Medienelement, wenn das Rendering eine erste Position in dem Medienelement erreicht, die in der neuen Kommunikation identifiziert wird.
  11. Verfahren nach Anspruch 7, wobei das erste Terminal die neue Kommunikation zu dem anderen Terminal überträgt.
  12. Verfahren nach Anspruch 7, wobei das erste Terminal die neue Kommunikation von dem anderen Terminal empfängt.
  13. Verfahren zum Synchronisieren von Medien-Rendering zwischen Terminals, umfassend, an einem ersten Terminal: Übertragen einer Kommunikation zu einem anderen Terminal, die eine synchronisierte Rendering-Sitzung initialisiert, wobei die Kommunikation Indikatoren enthält, die eine Netzwerkzeit mit einem ersten Abschnitt eines zu rendernden Medienelements und einer Wiedergaberate korrelieren (258), Abrufen von Inhalten des Medienelements von einer Netzwerkadresse (262), Identifizieren, aus der Korrelation der Netzwerkzeit mit dem ersten Abschnitt und der Wiedergaberate, eines zweiten Abschnitts des zu rendernden Medienelements und einer Zeit, zu der der zweite Abschnitt zu rendern ist, und Rendern des zweiten Abschnitts des Medienelements zu der Zeit, zu der der zweite Abschnitt zu rendern ist (266).
  14. Verfahren nach Anspruch 13, wobei das Identifizieren ein Korrelieren der Netzwerkzeit mit der aktuellen Zeit an dem ersten Terminal einschließt.
  15. Verfahren nach Anspruch 13, ferner umfassend ein Empfangen einer Identifikation des Medienelements von dem anderen Terminal.
  16. Verfahren nach Anspruch 13, ferner umfassend ein Aushandeln einer Identifikation einer Quelle der Netzwerkzeit mit dem anderen Terminal.
  17. Verfahren nach Anspruch 13, ferner umfassend, während die aktuelle Zeit während der Rendering-Sitzung fortschreitet, ein Wiederholen des Identifizierens und des Renderings, bis eine Stoppbedingung eintritt.
  18. Verfahren nach Anspruch 17, ferner umfassend ein Wiederholen des Identifizierens und des Renderings, bis das Rendering ein Ende des Medienelements erreicht.
  19. Verfahren nach Anspruch 17, ferner umfassend, wenn eine neue Kommunikation einen Anhaltevorgang identifiziert, ein Anhalten des Renderings an einer Stelle des Medienelements, die in der neuen Kommunikation identifiziert wird.
  20. Verfahren nach Anspruch 17, ferner umfassend, wenn eine neue Kommunikation einen Scan-Vorgang identifiziert: Rendering des Medienelements mit einer alternativen Wiedergaberate, die in der neuen Kommunikation identifiziert wird, beginnend an einer Position in dem Medienelement, die durch die neue Kommunikation identifiziert wird.
  21. Verfahren nach Anspruch 17, ferner umfassend, wenn eine neue Kommunikation einen Suchvorgang identifiziert: Wiederholen des Identifizierens und des Renderings, bis das Rendering eine erste Position in dem Medienelement erreicht, die in der neuen Kommunikation identifiziert wird, und danach, Rendering des Medienelements, beginnend an einer zweiten Position in dem Medienelement unter Verwendung einer neuen Korrelation zwischen der Netzwerkzeit und dem Medienelement.
  22. Terminal, umfassend: einen mit einem Netzwerk verbundenen Transceiver (340), eine Mediensenkenvorrichtung, ein Verarbeitungssystem (310) zum Ausführen von Programmanweisungen, die Folgendes bewirken: Herunterladen, durch den Transceiver (340), eines zu rendernden Medienelements von einer Netzwerkressource, Empfangen, durch den Transceiver (340), von Indikatoren von einem anderen Terminal, die eine erste Netzwerkzeit mit einem ersten Abschnitt des Medienelements korrelieren, Rendering, durch die Mediensenkenvorrichtung, zu einer aktuellen Netzwerkzeit, eines zweiten Abschnitts des Medienelements korreliert mit der aktuellen Netzwerkzeit, wie durch die korrelierte erste Netzwerkzeit und den ersten Abschnitt und durch eine Wiedergaberate bestimmt.
  23. Terminal nach Anspruch 22, wobei das Medienelement in Kommunikation zwischen dem Terminal und dem anderen Terminal identifiziert wird.
  24. Terminal nach Anspruch 22, wobei die Identifikation einer Quelle der ersten Netzwerkzeit zwischen den Terminals ausgehandelt wird.
  25. Terminal, umfassend: einen mit einem Netzwerk verbundenen Transceiver (340), eine Mediensenkenvorrichtung, ein Verarbeitungssystem (310) zum Ausführen von Programmanweisungen, die Folgendes bewirken: Herunterladen, durch den Transceiver (340), eines zu rendernden Medienelements von einer Netzwerkressource, zu einer aktuellen Netzwerkzeit, Identifizieren, aus einer Korrelation einer Netzwerkzeit mit einem ersten Abschnitt des Medienelements und einer Wiedergaberate zum Rendern, eines zweiten Abschnitts des zu rendernden Medienelements, und Rendern, durch die Mediensenkenvorrichtung, des zweiten Abschnitts des Medienelements, korreliert mit der aktuellen Netzwerkzeit.
  26. Computerlesbare Speichervorrichtung, die Anweisungen speichert, die bei Ausführung durch eine Verarbeitungsvorrichtung die Verarbeitungsvorrichtung zu Folgendem veranlassen: als Reaktion auf eine von einer anderen Vorrichtung einer synchronisierten Rendering-Sitzung empfangene Kommunikation, Korrelieren einer Netzwerkzeit mit einem ersten Abschnitt eines zu rendernden Medienelements (258), Abrufen von Inhalten des Medienelements von einer Netzwerkadresse (262), Identifizieren, aus der Korrelation der Netzwerkzeit mit dem ersten Abschnitt und von einer in Kommunikation von dem anderen Terminal empfangenen Wiedergaberate, eines zweiten Abschnitts des zu rendernden Medienelements und einer Zeit, zu der der zweite Abschnitt zu rendern ist, und Rendern des zweiten Abschnitts des Medienelements zu der Zeit zum Rendern des zweiten Abschnitts (266).
  27. Computerlesbare Speichervorrichtung, die Anweisungen speichert, die bei Ausführung durch eine Verarbeitungsvorrichtung die Verarbeitungsvorrichtung zu Folgendem veranlassen: Übertragen einer Kommunikation zu einer anderen Vorrichtung, die eine synchronisierte Rendering-Sitzung initialisiert, wobei die Kommunikation Indikatoren enthält, die eine Netzwerkzeit mit einem ersten Abschnitt eines zu rendernden Medienelements und einer Wiedergaberate korrelieren (258), Abrufen von Inhalten des Medienelements von einer Netzwerkadresse (262), Identifizieren, aus der Korrelation der Netzwerkzeit mit dem ersten Abschnitt und der Wiedergaberate, eines zweiten Abschnitts des zu rendernden Medienelements und einer Zeit, zu der der zweite Abschnitt zu rendern ist, und Rendern des zweiten Abschnitts des Medienelements zu der Zeit zum Rendern des zweiten Abschnitts (266).
DE112016004480.1T 2015-09-30 2016-08-29 Synchronisierung des Renderns von Medien in heterogenen Netzwerkumgebungen Pending DE112016004480T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201514871879A 2015-09-30 2015-09-30
US14/871,879 2015-09-30
PCT/US2016/049280 WO2017058437A1 (en) 2015-09-30 2016-08-29 Synchronization of media rendering in heterogeneous networking environments

Publications (1)

Publication Number Publication Date
DE112016004480T5 true DE112016004480T5 (de) 2018-07-19

Family

ID=56985667

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112016004480.1T Pending DE112016004480T5 (de) 2015-09-30 2016-08-29 Synchronisierung des Renderns von Medien in heterogenen Netzwerkumgebungen

Country Status (6)

Country Link
US (1) US10582158B2 (de)
JP (2) JP6941093B2 (de)
KR (1) KR102051985B1 (de)
CN (1) CN107852523B (de)
DE (1) DE112016004480T5 (de)
WO (1) WO2017058437A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11509726B2 (en) * 2017-10-20 2022-11-22 Apple Inc. Encapsulating and synchronizing state interactions between devices

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7088774B1 (en) * 2002-05-29 2006-08-08 Microsoft Corporation Media stream synchronization
US20070110074A1 (en) * 2004-06-04 2007-05-17 Bob Bradley System and Method for Synchronizing Media Presentation at Multiple Recipients
KR100565333B1 (ko) 2004-06-22 2006-03-30 엘지전자 주식회사 휴대단말기의 비디오 오디오 동기장치 및 방법
CN100514992C (zh) * 2007-03-30 2009-07-15 中国联合网络通信集团有限公司 一种移动终端帧动画的处理方法
JP2009060512A (ja) * 2007-09-03 2009-03-19 Sharp Corp 携帯端末、再生装置、コンテンツ再生システム、コンテンツ再生プログラム、コンピュータ読み取り可能な記録媒体、及び携帯端末の制御方法
WO2009038402A1 (en) 2007-09-21 2009-03-26 Lg Electronics Inc. Digital broadcasting system and data processing method in the digital broadcasting system
EP2195743A2 (de) * 2007-10-12 2010-06-16 Rony Zarom System und verfahren für synchronisiertes video-sharing
JP5282447B2 (ja) * 2008-05-29 2013-09-04 ソニー株式会社 情報処理装置、情報処理方法、プログラムおよび情報処理システム
JP5230744B2 (ja) 2008-08-29 2013-07-10 株式会社ソニー・コンピュータエンタテインメント 情報処理システムおよび情報処理装置
EP2180655A1 (de) * 2008-10-27 2010-04-28 Thomson Licensing SA Verfahren zur Übertragung eines digitalen Inhaltstroms und entsprechendes Empfangsverfahren
US8718805B2 (en) * 2009-05-27 2014-05-06 Spot411 Technologies, Inc. Audio-based synchronization to media
US9209987B2 (en) * 2010-03-02 2015-12-08 Microsoft Technology Licensing, Llc Social media playback
JP2011228487A (ja) * 2010-04-20 2011-11-10 Universal Tokki Corp 磁場生成装置およびこれを有する船舶
WO2011140221A1 (en) * 2010-05-04 2011-11-10 Shazam Entertainment Ltd. Methods and systems for synchronizing media
US9094564B2 (en) * 2010-05-07 2015-07-28 Microsoft Technology Licensing, Llc Clock synchronization for shared media playback
CN101990101A (zh) * 2010-11-04 2011-03-23 武汉钢铁(集团)公司 实时多媒体混合编解码方法
TWI647940B (zh) 2011-02-11 2019-01-11 內數位專利控股公司 在協同對話期間行動站媒體流同步方法及裝置
US9414105B2 (en) * 2011-02-14 2016-08-09 Blackfire Research Corporation Mobile source device media playback over rendering devices at lifestyle-determined locations
CN109068155B (zh) 2011-09-23 2021-01-26 韩国电子通信研究院 传送媒体数据的设备以及接收媒体数据的设备
US9654817B2 (en) * 2012-01-27 2017-05-16 Avaya Inc. System and method to synchronize video playback on mobile devices
JP5924728B2 (ja) * 2012-02-02 2016-05-25 日本放送協会 信号処理装置及びプログラム
US8933312B2 (en) * 2012-06-01 2015-01-13 Makemusic, Inc. Distribution of audio sheet music as an electronic book
WO2014056171A1 (zh) * 2012-10-11 2014-04-17 华为技术有限公司 一种实现视频遮挡的方法、装置和系统
CN103106679B (zh) * 2013-01-05 2016-03-30 广东威创视讯科技股份有限公司 分布式3d多通道渲染方法、系统和平台
US9100687B2 (en) * 2013-05-31 2015-08-04 Sonic Ip, Inc. Playback synchronization across playback devices
JP2014239278A (ja) 2013-06-06 2014-12-18 ソニー株式会社 コンテンツ供給装置、コンテンツ供給方法、プログラム、およびコンテンツ供給システム

Also Published As

Publication number Publication date
WO2017058437A1 (en) 2017-04-06
JP2018530944A (ja) 2018-10-18
CN107852523B (zh) 2021-01-19
CN107852523A (zh) 2018-03-27
JP2020174378A (ja) 2020-10-22
KR20180030143A (ko) 2018-03-21
KR102051985B1 (ko) 2019-12-04
US10582158B2 (en) 2020-03-03
JP6941093B2 (ja) 2021-09-29
US20170289500A1 (en) 2017-10-05

Similar Documents

Publication Publication Date Title
US9584835B2 (en) System and method for broadcasting interactive content
DE602005003471T2 (de) Verfahren und system zur interaktiven steuerung von medien über ein netzwerk
US6665835B1 (en) Real time media journaler with a timing event coordinator
US8112490B2 (en) System and method for providing a virtual environment with shared video on demand
US20140123014A1 (en) Method and system for chat and activity stream capture and playback
US20110161834A1 (en) Systems and Methods for Restoring and Recreating a Live On-Line Session
DE112013002247T5 (de) Kombinierte Broadcast- und Unicast-Übermittlung
US20090210904A1 (en) Control Of Multimedia Content Delivery
DE102012013336A1 (de) Aushandeln einer kontinuierlichen multi-stream-präsenz
DE112013001136T5 (de) Effiziente Abgrenzung und Verteilung von Media-Segmenten
DE102011014134A1 (de) Verfahren und System für gemeinschaftliches Live-Tagging von Audio-Konferenzen
US11689749B1 (en) Centralized streaming video composition
EP2315429B1 (de) Verfahren, Vorrichtung und System zur selektiven Ausgabe von Multimediainhalten
DE112019000271T5 (de) Verfahren und vorrichtung zur verarbeitung und verteilung von live-virtual-reality-inhalten
US20160316252A1 (en) System, method and apparatus for enhanced internet broadcasting
DE112020004978T5 (de) System und Verfahren zum Ausliefern in Echtzeit eines zielgerichteten Inhalts in einem Streaming-Inhalt
US12010161B1 (en) Browser-based video production
DE112016004480T5 (de) Synchronisierung des Renderns von Medien in heterogenen Netzwerkumgebungen
DE102019123216A1 (de) Verwaltung von Vorrichtungen in Ad-hoc-Rendering-Netzwerken
US20220377407A1 (en) Distributed network recording system with true audio to video frame synchronization
DE102019204521A1 (de) Kontextabhängiges Routing von Mediendaten
US11611609B2 (en) Distributed network recording system with multi-user audio manipulation and editing
US11818186B2 (en) Distributed network recording system with synchronous multi-actor recording
US20220417619A1 (en) Processing and playing control over interactive video
CN111885345A (zh) 远程会议实现方法、装置、终端设备和存储介质

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R409 Internal rectification of the legal status completed
R016 Response to examination communication