DE102022205604A1 - Optimieren einer medienerfahrung bei einer konferenz mit diversen teilnehmern - Google Patents

Optimieren einer medienerfahrung bei einer konferenz mit diversen teilnehmern Download PDF

Info

Publication number
DE102022205604A1
DE102022205604A1 DE102022205604.3A DE102022205604A DE102022205604A1 DE 102022205604 A1 DE102022205604 A1 DE 102022205604A1 DE 102022205604 A DE102022205604 A DE 102022205604A DE 102022205604 A1 DE102022205604 A1 DE 102022205604A1
Authority
DE
Germany
Prior art keywords
data processing
processing system
stream
codec
conference
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
DE102022205604.3A
Other languages
English (en)
Inventor
Chandok Gurtej
Christopher Garrigo
Chieh Lu
Daniel Pollack
Kartric Santhanam
David Biderman
Jinbo Qui
Dazhong ZHANG
Jose A. Lozano Hinojosa
Igor Kobzar
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 DE102022205604A1 publication Critical patent/DE102022205604A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems
    • H04N7/152Multipoint control units therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems
    • 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/40Support for services or applications
    • H04L65/403Arrangements for multi-party communication, e.g. for conferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Telephonic Communication Services (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Die Teilnehmersysteme in einer audiovisuellen (AV-) Konferenz können in einer Ausführungsform Verfahren verwenden, um sicherzustellen, dass alle Teilnehmer eine gemeinsame Plattform aufweisen, um AV-Konferenzen zu unterstützen, wie einen gemeinsamen Codec, und auch versuchen, eine AV-Konferenz mit höherer Qualität (z. B. besser als der gemeinsame Codec) basierend auf verfügbarer Bandbreite und anderen Kriterien bereitzustellen. Die Teilnehmersysteme können den gemeinsamen Codec als eine Ausweichplattform verwenden, wenn eine Bandbreite oder andere Kriterien eine Reduktion der Qualität der AV-Konferenz vorgeben. Es werden auch andere Ausführungsformen offenbart.

Description

  • HINTERGRUND
  • Das Gebiet dieser Offenbarung bezieht sich auf eine Echtzeitkommunikation, häufig durch ein Computernetzwerk oder einen Satz von Netzwerken.
  • Echtzeitkommunikation, wie Videotelefonie, unter Verwendung von Datenverarbeitungssystemen, die während der Kommunikation Audio und Video bereitstellen können, sind sehr beliebt geworden. Derzeit gibt es viele bekannte Beispiele für solche Kommunikationen, einschließlich z. B. FaceTime von Apple Inc., WebEx von Cisco, Teams von Microsoft, Zoom usw. Diese Videotelefonie-Kommunikationen ermöglichen es Teilnehmern, in Echtzeit zu sprechen, was der herkömmlichen Audiotelefonie ähnlich ist, und auch Bilder während des Sprechens zu senden und zu empfangen, so dass die Teilnehmer sich während des Sprechens gegenseitig sehen können oder ihre Computerbildschirme sehen oder anderen Inhalt sehen. Diese Kommunikation kann einem persönlichen Treffen gleichen und kann als eine Konferenz oder eine audiovisuelle (AV) Konferenz bezeichnet werden.
  • Es ist oft der Fall, dass die Teilnehmer einer Konferenz unterschiedliche Arten von Datenverarbeitungssystemen verwenden, die unterschiedliche Medienfähigkeiten aufweisen können. Zum Beispiel kann das Datenverarbeitungssystem eines Teilnehmers ein Laptop-Computer sein, der eine Version eines Windows-Betriebssystems ausführt, und ein Datenverarbeitungssystem eines anderen Teilnehmers kann ein Smartphone sein, das eine Version eines Android-Betriebssystems ausführt, und ein Datenverarbeitungssystem eines dritten Teilnehmers kann ein iMac-Desktop-Computer sein, der eine Version eines macOS-Betriebssystems ausführt. Diese unterschiedlichen Systeme können unterschiedliche Medienfähigkeiten wie unterschiedliche Videocodecs aufweisen. Durch diesen Unterschied werden die unterschiedlichen Systeme gezwungen, die niedrigste gemeinsame Konfiguration zu verwenden, aber dies führt nicht zu einer optimalsten Erfahrung für jeden einzelnen in der Konferenz. Eine Alternative zum Verwenden der niedrigsten gemeinsamen Konfiguration kann ein Ansatz sein, der einen Server verwendet, der eine Medientranscodierung zwischen den zwei unterschiedlichen Systemen durchführt. Wenn jedoch eine End-to-End-Sicherheit (z. B. eine Verschlüsselung, die den Inhalt auf dem Server undurchsichtig macht) erforderlich ist, ist es für einen Server nicht möglich, eine Medientranscodierung durchzuführen, da der Server den Inhalt nicht entschlüsseln kann.
  • KURZDARSTELLUNG DER BESCHREIBUNG
  • Die Teilnehmersysteme in einer audiovisuellen (AV) Konferenz können in einer Ausführungsform Verfahren verwenden, um sicherzustellen, dass alle Teilnehmer eine gemeinsame Plattform aufweisen, um AV-Konferenzen zu unterstützen, wie einen gemeinsamen Codec und ein gemeinsames Verschlüsselungsverfahren, und auch versuchen, eine AV-Konferenz mit höherer Qualität (z. B. besser als der gemeinsame Codec) basierend auf verfügbarer Bandbreite und anderen Kriterien einer Teilmenge der Teilnehmersysteme bereitzustellen, die den besseren Codec unterstützen. AV-Konferenzen können mit End-to-End-Verschlüsselung verwendet werden, sodass keine Servermedientranscodierung erforderlich ist und keine Serverentschlüsselung erforderlich ist, und die Verwendung eines gemeinsamen Codecs und gemeinsamen Verschlüsselungsverfahrens kann unterschiedlichen Arten von Datenverarbeitungssystemen ermöglichen, an der Konferenz teilzunehmen. Die Teilnehmersysteme können auch den gemeinsamen Codec als Ausweichplattform verwenden, wenn die Bandbreite oder andere Kriterien eine Reduktion der Qualität der AV-Konferenz vorgeben. In einer Ausführungsform sollten mindestens manche der Teilnehmersysteme in der Lage sein, Mediencodecs zu verwenden, die besser als der gemeinsame Codec sind; zum Beispiel können, wenn eine Teilmenge von Teilnehmersystemen einen besseren Codec unterstützen, diese Teilnehmersysteme Streams senden und empfangen, die unter Verwendung des besseren Codecs codiert sind, und auch Streams senden und empfangen, die mit einem gemeinsamen Codec für diejenigen Teilnehmer codiert sind, die den gemeinsamen Codec verwenden (z. B. weil sie den besseren Codec nicht haben oder auf die Verwendung des gemeinsamen Codecs zugegriffen haben, zum Beispiel aufgrund einer Netzwerkbandbreitenreduktion). Im Falle eines Ausweichens sollten den Teilnehmersystemen keine Kosten für das Codieren und Übertragen von Streams mit besseren Mediencodecs entstehen, wenn kein anderer Teilnehmer in der Konferenz fähig ist, diese Streams zu konsumieren. Auch im Falle eines Ausweichens kann ein Teilnehmersystem, das kein Codieren und Übertragen mehrerer Streams (wie eines gemeinsamen Codec-Streams und eines mit einem besseren Codec codierten Streams) halten kann, nur den gemeinsamen Codec-Stream übertragen, aber dennoch an der Konferenz beteiligt sein.
  • Ein Gesichtspunkt dieser Offenbarung bezieht sich auf ein Einrichten eines gemeinsamen Codec-Streams auf Nachfrage als Reaktion darauf, dass ein Teilnehmer (z. B. ein drittes Datenverarbeitungssystem) einer Konferenz beitritt. Gemäß diesem Gesichtspunkt kann ein Verfahren durch ein erstes Datenverarbeitungssystem in einer Umgebung durchgeführt werden, die das erste Datenverarbeitungssystem und ein zweites Datenverarbeitungssystem und ein drittes Datenverarbeitungssystem und einen oder mehrere Server einschließt, und das Verfahren kann die folgenden Vorgänge einschließen: Übertragen, durch das erste Datenverarbeitungssystem an den Server, von Codec-Fähigkeiten des ersten Datenverarbeitungssystems, wobei die Codec-Fähigkeiten des ersten Datenverarbeitungssystems einen ersten Satz von Codecs in dem ersten Datenverarbeitungssystem angeben, die zur Verwendung in einer audiovisuellen (AV) Konferenz verfügbar sind; Empfangen, durch das erste Datenverarbeitungssystem, eines zweiten Satzes von Codec-Fähigkeiten des zweiten Datenverarbeitungssystems, wobei der zweite Satz von Codec-Fähigkeiten einen zweiten Satz von Codecs in dem zweiten Datenverarbeitungssystem angibt, die zur Verwendung in der AV-Konferenz verfügbar sind; Empfangen, an dem ersten Datenverarbeitungssystem, einer Anforderung von dem zweiten Datenverarbeitungssystem, um einen ersten Stream, der mit einem ersten Codec codiert ist, in der AV-Konferenz der erste Codec in dem ersten Satz von Codecs in dem ersten Datenverarbeitungssystem zu empfangen; Übertragen, durch das erste Datenverarbeitungssystem an den Server, des ersten Streams zur Lieferung an das zweite Datenverarbeitungssystem; Empfangen, durch das erste Datenverarbeitungssystem, einer Anforderung von dem dritten Datenverarbeitungssystem für einen zweiten Stream, der mit einem zweiten Codec codiert ist, in der AV-Konferenz, wobei sich der zweite Codec in dem ersten Satz von Codecs befindet und sich von dem ersten Codec unterscheidet; Erstellen, auf Nachfrage und als Reaktion auf die Anforderung von dem dritten Datenverarbeitungssystem, des zweiten Streams in der AV-Konferenz; und Übertragen des zweiten Streams an den Server zur Lieferung an das dritte Datenverarbeitungssystem, während das erste Datenverarbeitungssystem das Übertragen des ersten Streams an den Server zur Lieferung an das zweite Datenverarbeitungssystem fortsetzt.
  • In einer Ausführungsform dieses Verfahrens ist jeder Codec in dem ersten Satz von Codecs und in dem zweiten Satz von Codecs konfiguriert, um Videoinhalte in einer AV-Konferenz zur Übertragung an andere Teilnehmer in der AV-Konferenz zu komprimieren und konfiguriert, um den in der AV-Konferenz empfangenen Videoinhalt zu dekomprimieren, und der zweite Codec ist ein Codec, der gemeinsam ist und zur Verwendung in dem ersten, dem zweiten und dem dritten Datenverarbeitungssystem verfügbar ist. Das Verfahren kann unterschiedliche Arten von Datenverarbeitungssystem unterstützen, zum Beispiel können das erste und das zweite Datenverarbeitungssystem eine oder mehrere Versionen eines ersten Betriebssystems (z. B. iOS von Apple Inc.) während der AV-Konferenz ausführen, und das dritte Datenverarbeitungssystem führt ein zweites Betriebssystem (z. B. Android von Google) während der AV-Konferenz aus. In diesem Beispiel können das erste und zweite Datenverarbeitungssystem FaceTime-Anwendungen verwenden, um an der AV-Konferenz teilzunehmen, und der Server kann ein Server in einer FaceTime-Infrastruktur sein, während das dritte Datenverarbeitungssystem einen Webbrowser verwendet, um an der AV-Konferenz teilzunehmen.
  • In einer Ausführungsform dieses Verfahrens kann das erste Datenverarbeitungssystem eines oder mehrere überwachen von: Uplink-Bandbreite von dem ersten Datenverarbeitungssystem, Downlink-Bandbreite für das erste Datenverarbeitungssystem, Wärmedaten über den Wärmezustand des ersten Datenverarbeitungssystems oder Batteriezustand über eine Batterie in dem ersten Datenverarbeitungssystem; und das erste Datenverarbeitungssystem kann, als Reaktion auf eine oder mehrere Bedingungen, die aus dem Überwachen bestimmt werden, von einem Übertragen des ersten Streams an das zweite Datenverarbeitungssystem zu dem Übertragen des zweiten Streams an das zweite Datenverarbeitungssystem umschalten. In einer Ausführungsform kann dieses Umschalten durch Zuordnen des zweiten Streams zu einer Streamkennung des ersten Streams erfolgen, um zu bewirken, dass der Server den zweiten Stream an das zweite Datenverarbeitungssystem weiterleitet. In einer anderen Ausführungsform kann das Umschalten erfolgen durch: Übertragen, durch das erste Datenverarbeitungssystem, einer Angabe an den Server zur Lieferung an das zweite Datenverarbeitungssystem, dass das erste Datenverarbeitungssystem das Übertragen des ersten Streams zur Lieferung an das zweite Datenverarbeitungssystem angehalten hat oder anhalten wird; Empfangen einer Anforderung, von dem zweiten Datenverarbeitungssystem, für den zweiten Stream; und Übertragen, durch das erste Datenverarbeitungssystem, des zweiten Streams an den Server zur Lieferung an das zweite Datenverarbeitungssystem.
  • Ein Verfahren, das durch einen Server gemäß diesem Gesichtspunkt bei Einrichtung auf Nachfrage eines gemeinsamen Codec-Streams durchgeführt wird, kann die folgenden Vorgänge einschließen: Empfangen, durch den Server von dem ersten Datenverarbeitungssystem, von Codec-Fähigkeiten des ersten Datenverarbeitungssystems, wobei die Codec-Fähigkeiten des ersten Datenverarbeitungssystems einen ersten Satz von Codecs in dem ersten Datenverarbeitungssystem angeben, die zur Verwendung in einer audiovisuellen (AV) Konferenz verfügbar sind; Übertragen, durch den Server an das erste Datenverarbeitungssystem, eines zweiten Satzes von Codec-Fähigkeiten des zweiten Datenverarbeitungssystems, wobei der zweite Satz von Codec-Fähigkeiten einen zweiten Satz von Codecs in dem zweiten Datenverarbeitungssystem angibt, die zur Verwendung in der AV-Konferenz verfügbar sind; Übertragen, durch den Server an das erste Datenverarbeitungssystem, einer Anforderung von dem zweiten Datenverarbeitungssystem, um einen ersten Stream, der mit einem ersten Codec codiert ist, in der AV-Konferenz der erste Codec in dem ersten Satz von Codecs in dem ersten Datenverarbeitungssystem zu empfangen; Empfangen, durch den Server von dem ersten Datenverarbeitungssystem, des ersten Streams zur Lieferung an das zweite Datenverarbeitungssystem; Übertragen, durch den Server an das erste Datenverarbeitungssystem, einer Anforderung von dem dritten Datenverarbeitungssystem für einen zweiten Stream, der mit einem zweiten Codec codiert ist, in der AV-Konferenz, wobei sich der zweite Codec in dem ersten Satz von Codecs befindet und sich von dem ersten Codec unterscheidet; und Empfangen des zweiten Streams an dem Server zur Lieferung an das dritte Datenverarbeitungssystem, während der Server weiterhin den ersten Stream an das zweite Datenverarbeitungssystem überträgt.
  • Ein weiterer Gesichtspunkt dieser Offenbarung bezieht sich auf eine Verwendung von besseren oder optimalen Codecs für mindestens eine Teilmenge von Teilnehmersystemen in einer Konferenz. Gemäß diesem Gesichtspunkt kann ein Verfahren durch ein erstes Datenverarbeitungssystem in einer Umgebung durchgeführt werden, die das erste Datenverarbeitungssystem und ein zweites Datenverarbeitungssystem und einen Server einschließt, und das Verfahren kann die folgenden Vorgänge einschließen: Übertragen, durch das erste Datenverarbeitungssystem an den Server, von Codec-Fähigkeiten des ersten Datenverarbeitungssystems, wobei die Codec-Fähigkeiten des ersten Datenverarbeitungssystems einen ersten Satz von Codecs in dem ersten Datenverarbeitungssystem angeben, die zur Verwendung in einer audiovisuellen (AV) Konferenz verfügbar sind; Empfangen, durch das erste Datenverarbeitungssystem, eines zweiten Satzes von Codec-Fähigkeiten des zweiten Datenverarbeitungssystems, wobei der zweite Satz von Codec-Fähigkeiten einen zweiten Satz von Codecs in dem zweiten Datenverarbeitungssystem angibt, die zur Verwendung in der AV-Konferenz verfügbar sind; Übertragen, durch das erste Datenverarbeitungssystem an den Server, einer Anforderung für einen ersten Stream, der durch einen ersten Codec an dem zweiten Datenverarbeitungssystem codiert ist, wobei die Anforderung auf Kriterien an dem ersten Datenverarbeitungssystem eines Codecs mit einer höchsten Qualität basiert, der dem ersten und dem zweiten Satz von Codecs gemeinsam ist.
  • Die hierin beschriebenen Gesichtspunkte und Ausführungsformen können nicht-transitorische maschinenlesbare Medien einschließen, die ausführbare Computerprogrammanweisungen speichern können, die, wenn diese ausgeführt werden, das eine oder die mehreren Datenverarbeitungssysteme veranlassen, die hierin beschriebenen Verfahren durchzuführen, wenn die Computerprogrammanweisungen ausgeführt werden. Die Anweisungen können in nicht-transitorischen maschinenlesbaren Medien gespeichert werden, wie in einem dynamischen Direktzugriffsspeicher (DRAM), der flüchtiger Speicher ist, oder in nichtflüchtigem Speicher, wie Flash-Speicher oder andere Formen von Speicher. Die hierin beschriebenen Gesichtspunkte und Ausführungsformen können auch in Form von Datenverarbeitungssystemen vorliegen, die zum Durchführen dieser Verfahren gebaut oder programmiert sind. Zum Beispiel kann ein Datenverarbeitungssystem mit Hardware-Logik gebaut werden, um diese Verfahren durchzuführen oder mit einem Computerprogramm programmiert werden, um diese Verfahren durchzuführen, und ein solches Datenverarbeitungssystem kann als ein Teilnehmersystem oder ein Serversystem betrachtet werden, das in einer Konferenz wie einer hierin beschriebenen AV-Konferenz verwendet werden kann.
  • Die vorstehende Kurzdarstellung schließt keine vollständige Liste aller Ausführungsformen und Gesichtspunkte in dieser Offenbarung ein. Alle Systeme, Medien und Verfahren können aus allen geeigneten Kombinationen der verschiedenen vorstehend zusammengefassten Gesichtspunkte und Ausführungsformen und auch denjenigen, die in der nachstehenden detaillierten Beschreibung offenbart werden, praktiziert werden.
  • Figurenliste
  • Die vorliegende Erfindung wird in beispielhafter und nicht einschränkender Weise in den Figuren der begleitenden Zeichnungen veranschaulicht, in denen gleiche Bezüge gleiche Elemente angeben.
    • 1 zeigt ein Beispiel einer Konferenzumgebung, die mit den hierin beschriebenen Ausführungsformen verwendet werden kann.
    • 2A ist ein Flussdiagramm, das ein Verfahren gemäß einer Ausführungsform zeigt, das einen neuen Stream (z. B. einen mit einem gemeinsamen Codec codierten Stream) für ein neues Teilnehmersystem erzeugt, während ein vorhandener Stream für ein anderes Teilnehmersystem beibehalten wird.
    • 2B zeigt ein Beispiel eines Satzes von Teilnehmersystemen und einen Server, der das in 2A gezeigte Verfahren durchführen kann.
    • 2C ist ein Flussdiagramm, das ein Verfahren zeigt, das von einem Serversystem in 2B durchgeführt werden kann.
    • 3A ist ein Flussdiagramm, das ein Verfahren gemäß einer Ausführungsform zeigt, in dem ein Teilnehmersystem unter Verwendung eines anderen Codecs, wie eines gemeinsamen Codecs, auf einen zweiten Stream ausweicht.
    • 3B zeigt ein Beispiel eines Satzes von Teilnehmersystemen und einen Server, der das in 3A gezeigte Verfahren durchführen kann.
    • 4A ist ein Flussdiagramm, das ein Verfahren gemäß einer weiteren Ausführungsform zeigt, in dem ein Teilnehmersystem unter Verwendung eines anderen Codecs, wie eines gemeinsamen Codecs, auf einen zweiten Stream ausweicht.
    • 4B zeigt ein Beispiel eines Satzes von Teilnehmersystemen und einen Server, der das in 4A gezeigte Verfahren durchführen kann.
    • 5A ist ein Flussdiagramm, das ein Verfahren gemäß einer Ausführungsform zeigt, das es Teilnehmersystemen ermöglicht, bessere Codecs auszuwählen, wenn andere Systeme diese besseren Codecs unterstützen.
    • 5B zeigt ein Beispiel eines Satzes von Teilnehmersystemen und einen Server, der das Verfahren von 5A durchführen kann.
    • 6 zeigt ein Beispiel eines Datenverarbeitungssystems, das verwendet werden kann, um ein Teilnehmersystem oder ein Serversystem (z. B. einen Weiterleitungsserver) zu implementieren.
  • DETAILLIERTE BESCHREIBUNG
  • Verschiedene Ausführungsformen und Gesichtspunkte werden unter Bezugnahme auf nachstehend erörterte Details beschrieben, und die begleitenden Zeichnungen veranschaulichen die verschiedenen Ausführungsformen. Die folgende Beschreibung und die Zeichnungen sind veranschaulichend und nicht als einschränkend auszulegen. Zahlreiche spezifische Details werden beschrieben, um ein gründliches Verständnis verschiedener Ausführungsformen bereitzustellen. In bestimmten Fällen werden jedoch bekannte oder herkömmliche Details nicht beschrieben, um eine knappe Erörterung von Ausführungsformen bereitzustellen.
  • Eine Bezugnahme auf „eine Ausführungsform“ in dieser Patentschrift bedeutet, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder ein bestimmtes Charakteristikum, das oder die in Verbindung mit der Ausführungsform beschrieben ist, in mindestens einer Ausführungsform eingeschlossen sein kann. Das Auftreten des Ausdrucks „in einer Ausführungsform“ an verschiedenen Stellen in der Patentschrift bezieht sich nicht notwendigerweise immer auf dieselbe Ausführungsform. Die in den Figuren, die folgen, dargestellten Prozesse werden durch eine Verarbeitungslogik durchgeführt, die Hardware (z. B. Schaltlogik, dedizierte Logik usw.), Software oder eine Kombination von beidem umfasst. Obwohl die Prozesse nachstehend hinsichtlich mancher sequenzieller Vorgänge beschrieben sind, sollte ersichtlich sein, dass manche der beschriebenen Vorgänge in einer anderen Reihenfolge durchgeführt werden können. Darüber hinaus können manche Operationen parallel anstatt sequenziell durchgeführt werden.
  • Audio-Videokonferenzen stellen den Empfang und die Übertragung von Audio- und/oder Videosignalen (normalerweise als Streaming-Inhalt) von Benutzervorrichtungen oder Systemen (z. B. an unterschiedlichen Standorten) für die Kommunikation zwischen Benutzern in Echtzeit bereit. In manchen Fällen können zwei Benutzer audiovisuelle Konferenzen nutzen, um miteinander in einer Eins-zu-Eins-Kommunikation an ihren jeweiligen Vorrichtungen zu kommunizieren. In anderen Fällen können audiovisuelle Mehrweg-Konferenzen von mehr als zwei Benutzern genutzt werden, um an einer Echtzeit-Gruppen-Konversation teilzunehmen.
  • In manchen Systemen der audiovisuellen Mehrweg-Konferenzen kann eine Netzwerkverschlechterung von einem oder mehreren der Teilnehmersysteme erfahren werden. In dem audiovisuellen Eins-zu-Eins-Konferenzbeispiel können die zwei teilnehmenden Systeme beide von einem Hochqualitäts-/Bitraten-Stream zu einem Niederqualitäts-/Bitraten-Stream umschalten, um den Bandbreitenverschlechterungen entgegenzuwirken. Wenn jedoch mehr als zwei Teilnehmer in einer audiovisuellen Konferenz vorhanden sind, kann das Umschalten aller Teilnehmervorrichtungen zu einem Niederqualitäts-/Bitraten-Inhaltsstream, weil eine einzige Teilnehmervorrichtung Bandbreitenbeschränkungen aufweist, zu einer Verschlechterung der audiovisuellen Konferenzerfahrung für alle Teilnehmer führen. Das Umschalten wird komplizierter, wenn die Teilnehmersysteme unterschiedliche Arten von Systemen sind, wie ein iPhone, das FaceTime auf einer Version von iOS ausführt, und ein Smartphone, das eine Version eines Android-Betriebssystems ausführt.
  • 1 zeigt ein Beispiel einer Konferenzumgebung 10, die mit einer oder mehreren der hierin beschriebenen Ausführungsformen verwendet werden kann. Jedoch werden möglicherweise nicht alle der dargestellten Komponenten in allen Implementierungen der Ausführungsformen verwendet, und eine oder mehrere Implementierungen können zusätzliche oder andere Komponenten als die in der Figur gezeigten einschließen.
  • Variationen in der Anordnung und Art der Komponenten können gemäß den hierin beschriebenen Ausführungsformen vorgenommen werden, und zusätzliche Komponenten, unterschiedliche Komponenten oder weniger Komponenten können gemäß den hierin beschriebenen Ausführungsformen bereitgestellt werden.
  • Die Konferenzumgebung 10 schließt Datenverarbeitungssysteme 15, 17 und 19, eines oder mehrere Computernetzwerke 12 (z. B. das Internet) und einen oder mehrere AV-Konferenzserver 14 ein. Das eine oder die mehreren Netzwerke 12 können zum Beispiel über beliebige zwei oder mehr der Datenverarbeitungssysteme 15, 17 und 19 und den einen oder die mehreren Server 14 kommunikativ (direkt oder indirekt) koppeln, um den Datenaustausch zwischen den Systemen und dem einen oder den mehreren Servern zu ermöglichen. In einer oder mehreren Implementierungen können das eine oder die mehreren Netzwerke 12 ein verbundenes Netzwerk von Vorrichtungen sein, die das Internet einschließen und/oder kommunikativ damit gekoppelt sein können. Zu Erläuterungszwecken ist die Konferenzumgebung 10 in 1 so veranschaulicht, dass sie die Systeme 15, 17 und 19 und einen oder mehrere Server 14 einschließt, die Konferenzumgebung 10 kann jedoch eine beliebige Anzahl von elektronischen Vorrichtungen oder Datenverarbeitungssystemen und eine beliebige Anzahl von Servern, häufig Millionen von Vorrichtungen oder Systemen, die über große geographische Regionen verteilt sind, einschließen. Zusätzlich kann die Konferenzumgebung 10 unterschiedliche Arten von Servern einschließen, die Nachrichtenvorgänge (z. B. Übertragung von Push-Benachrichtigungen oder Push-Nachrichten zwischen den Teilnehmersystemen) und Registrierungsvorgänge (z. B. FaceTime-Registrierungsserver, die zum Registrieren von Benutzern des FaceTime-AV-Konferenzsystems verwendet werden) und andere Vorgänge durchführen, die zum Einrichten von Konferenzen unter den Teilnehmersystemen, wie den Datenverarbeitungssystemen 15, 17 und 19, verwendet werden. Der eine oder die mehreren Server 14 können eine Cloud von Servern sein, die verwendet werden, um AV-Konferenzen unter Datenverarbeitungssystemen wie den Systemen 15, 17 und 19 zu erleichtern. In einer Ausführungsform können der eine oder die mehreren Server 14 den Server 108 einschließen, der in dem US-Patent Nr. 10,931,725 gezeigt und beschrieben ist, das einen Server beschreibt, der in einer Gruppen-FaceTime-Architektur oder -Infrastruktur verwendet wird; andere Server (z. B. andere selektive Weiterleitungsserver), die in diesem US-Patent beschrieben sind, können auch in den in dieser Offenbarung beschriebenen Ausführungsformen verwendet werden.
  • Die Datenverarbeitungssysteme 15, 17 und 19 können zum Beispiel ein Desktop-Computer, eine tragbare Rechenvorrichtung wie ein Laptop-Computer, ein Tablet-Computer (z. B. ein iPad), ein Smartphone (z. B. ein iPhone oder ein Android-Smartphone), ein intelligenter Lautsprecher (z. B. ein Echo oder Echo-Show von Amazon), eine Peripherievorrichtung (z. B. eine digitale Kamera, Kopfhörer), eine Spielvorrichtung oder ein System, eine am Körper tragbare Vorrichtung, wie eine kopfmontierte Anzeige oder eine Brille oder Smartwatch und dergleichen, oder eine beliebige andere geeignete Vorrichtung oder Unterhaltungselektronik-Vorrichtung, die zum Beispiel eine oder mehrere drahtlose Schnittstellen, wie WLAN-Funkgeräte, WiFi-Funkgeräte, Mobilfunkgeräte, Bluetooth-Funkgeräte, Zigbee-Funkgeräte, Nahfeldkommunikation (NFC) -Funkgeräte und/oder andere drahtlose Funkgeräte einschließt. Diese Datenverarbeitungssysteme können zum Beispiel konfiguriert sein, um an audiovisuellen Konferenzen teilzunehmen, wobei die Datenverarbeitungssysteme 15, 17 und 19 (auch als Teilnehmervorrichtungen oder Teilnehmersysteme bezeichnet) an einem Gruppengespräch teilnehmen können, in dem Video- und/oder Audio-Inhaltsstreams zwischen den Teilnehmervorrichtungen in der AV-Konferenz übertragen werden. Im Kontext der hierin beschriebenen Ausführungsformen wird unter einer AV-Konferenz eine Kommunikation verstanden, bei der mindestens eines von Audio oder Video als Streaming-Inhalt zwischen den Teilnehmersystemen übertragen wird; normalerweise werden in einer Ausführungsform sowohl Audio als auch Video übertragen (vorausgesetzt, dass mindestens manche Teilnehmersysteme mit einer Kamera ausgestattet sind), aber in manchen Situationen kann nur Audio übertragen werden, wenn sich die Netzwerkbandbreite zu einem Punkt verschlechtert, dass nur Audioübertragung von manchen oder allen Teilnehmersystemen unterstützt werden kann. In einer Ausführungsform kann die Übertragung von Audio nur an einem Punkt während einer AV-Konferenz erfolgen (oder sogar während der Gesamtheit der AV-Konferenz). In einer Ausführungsform können mindestens manche der Teilnehmersysteme eine AV-Konferenzanwendung (z. B. die FaceTime-Anwendung) aufweisen, die auf dem Teilnehmersystem installiert ist; die AV-Konferenzanwendung auf der Sendevorrichtung (z. B. Datenverarbeitungssystem 15) kann das Übertragen von Streaming-Inhalt zum Empfang durch mindestens einen anderen Teilnehmer erleichtern, der auch dieselbe AV-Konferenzanwendung (oder eine Version dieser Anwendung) mit denselben Medienfähigkeiten wie die Sendevorrichtung aufweist. In einer Ausführungsform schließen einer oder mehrere Teilnehmer möglicherweise keine dedizierte AV-Konferenzanwendung ein (z. B. schließen diese die FaceTime-Anwendung nicht ein), und sie können einen Webbrowser (oder eine ähnliche Anwendung) verwenden, um an der AV-Konferenz teilzunehmen. In diesem Fall können solche Teilnehmersysteme als Webteilnehmer bezeichnet werden, und sie können bekannte Protokolle verwenden, wie webRTC oder ein Quick-Relay-Protokoll, um an der AV-Konferenz teilzunehmen. In einer Ausführungsform können der Audio- und Videoinhalt mit End-to-End-Verschlüsselung verschlüsselt sein, sodass die zwischengeschalteten Server entlang des Pfades den Inhalt nicht entschlüsseln können.
  • Ein Verfahren gemäß einer Ausführungsform wird nun unter Bezugnahme auf 2A, 2B und 2C beschrieben. Bei diesem Verfahren tritt ein neues Teilnehmersystem (z. B. ein Teilnehmersystem 107, das ein Webteilnehmer in 2B sein kann), das unterschiedliche Medienfähigkeiten als die bestehenden Teilnehmersysteme aufweist, einer laufenden AV-Konferenz (oder mindestens eine initiierte AV-Konferenz) mit vorhandenen Teilnehmersystemen bei, wodurch bewirkt wird, dass die bestehenden Teilnehmersysteme neue Streams mit einem Codec erzeugen, der unter den Teilnehmersystemen gemeinsam ist, während die ursprünglichen zwei vorhandenen Teilnehmersysteme (z. B. Teilnehmersysteme 103 und 109 in 2B) weiterhin unter Verwendung eines anderen (z. B. besseren) Codecs Inhalt einander senden oder voneinander empfangen. Ein Codec ist ein System (z. B. Software und Hardware), das den Inhalt für die Übertragung von einer Vorrichtung komprimiert und den empfangenen Inhalt für die Präsentation an der Vorrichtung dekomprimiert (z. B. Anzeigen von Bildern und/oder Wiedergeben von Audio). 2A zeigt ein Verfahren, das von einem der bestehenden Teilnehmersysteme (z. B. dem Teilnehmersystem 103) durchgeführt wird, und 2C zeigt ein Verfahren, das von einem Weiterleitungsserver (z. B. Weiterleitungsserver 105 in 2B) durchgeführt wird. Das in 2A gezeigte Verfahren kann nach einer Initiierung der AV-Konferenz beginnen; diese Initiierung kann zum Beispiel auftreten, wenn ein Benutzer an dem Teilnehmersystem 103 einen oder mehrere Teilnehmer über eine audiovisuelle Konferenzanwendung auswählt und/oder kann die audiovisuelle Konferenz aus einem anderen Kommunikationsmodus, wie Gruppentextnachrichten, einem Gruppensprachanruf usw. initiieren. Zum Beispiel können die Teilnehmer aus Kontakten ausgewählt werden, die innerhalb eines Kontaktadressbuchs enthalten sind, das auf dem Teilnehmersystem 103 gespeichert ist. Der Benutzer kann die audiovisuelle Konferenz initiieren, indem ein geeignetes Benutzerschnittstellenelement ausgewählt wird, das von der audiovisuellen Konferenzanwendung oder Kontaktadressbuch-Anwendung oder Textnachrichten-Anwendung oder Sprachanrufanwendung bereitgestellt wird, wodurch die eingeladenen Teilnehmer an ihren jeweiligen Vorrichtungen (z. B. den Teilnehmersystemen 107 und 109) aufgefordert werden, die Teilnahme an der audiovisuellen Konferenz anzunehmen oder abzulehnen.
  • In Vorgang 51 in 2A überträgt ein erstes Datenverarbeitungssystem (z. B. das Teilnehmersystem 103 in 2B) seine Codec-Fähigkeiten (z. B. einen ersten Satz von Codec-Fähigkeiten) zur Verwendung in einer AV-Konferenz; diese Übertragung kann auf einen selektiven Weiterleitungsserver gerichtet und davon empfangen werden, wie dem selektiven Weiterleitungsserver 105 in 2B (oder an einen Einrichtungsserver, der die AV-Konferenz ermöglicht). In einer Ausführungsform kann der Inhalt dieser Übertragung dann durch den selektiven Weiterleitungsserver an andere Teilnehmersysteme weitergeleitet werden, wenn sie an der AV-Konferenz teilnehmen. Die Codec-Fähigkeiten (in Vorgang 51 übertragen) können eine erschöpfende Liste aller verfügbaren Codecs (sowohl Audio als auch Video) an dem ersten Datenverarbeitungssystem sein, die zur Verwendung in der AV-Konferenz verfügbar sind, und können auch eine Liste aller verfügbaren Verschlüsselungsverfahren (für End-to-End-Verschlüsselung) und andere verfügbare Fähigkeiten (z. B. Verlustwiedergewinnungstechniken) zur Verwendung in der AV-Konferenz einschließen. Bei Vorgang 53 kann das erste Datenverarbeitungssystem (z. B. das Teilnehmersystem 103 in 2B) einen zweiten Satz von Codec-Fähigkeiten von einem zweiten Datenverarbeitungssystem (z. B. dem Teilnehmersystem 109 in 2B) empfangen, und dieser empfangene zweite Satz kann eine erschöpfende Liste aller verfügbaren Codecs (sowohl Audio als auch Video) sein, die zur Verwendung in der AV-Konferenz verfügbar ist, und kann auch eine Liste aller verfügbaren Verschlüsselungsverfahren (für End-to-End-Verschlüsselung) und andere verfügbare Fähigkeiten (z. B. Verlustwiederherstellungstechniken) zur Verwendung in der AV-Konferenz einschließen. Bei Vorgang 55 kann das erste Datenverarbeitungssystem (das Teilnehmersystem 103 in 2B) eine Anforderung von dem zweiten Datenverarbeitungssystem (z. B. dem Teilnehmersystem 109 in 2B) empfangen, um einen ersten Inhaltsstream (z. B. Video), der mit einem ersten Codec codiert ist (d. h. einer der Codecs in dem Satz von Fähigkeiten, der in Vorgang 51 übertragen wird, und einer der Codecs in dem zweiten Satz von Fähigkeiten) zu empfangen. In einer Ausführungsform kann das erste Datenverarbeitungssystem als Reaktion auf die in Vorgang 55 empfangene Anforderung in Vorgang 57 einen ersten Stream zur Lieferung durch einen Weiterleitungsserver (z. B. den Weiterleitungsserver 105 in 2B) an das zweite Datenverarbeitungssystem übertragen. Der erste Stream kann durch einen Codec hoher oder der höchsten Qualität (basierend auf zum Beispiel Inhaltsauflösung oder anderen Parametern) codiert werden, der sowohl dem ersten Datenverarbeitungssystem als auch dem zweiten Datenverarbeitungssystem gemeinsam ist.
  • In dem in 2B gezeigten Beispiel sendet das Teilnehmersystem 103 als Teil des Vorgangs 57 den ersten Stream 115 an den Weiterleitungsserver 105, der wiederum den ersten Stream als Stream 117 an das Teilnehmersystem 109 weiterleitet, wie in 2B gezeigt. Der erste Stream kann, wenn es die Umstände erlauben, mit dem Codec höchster Qualität (z. B. dem ersten Codec) codiert werden, der sowohl dem ersten (Teilnehmersystem 103) als auch dem zweiten (Teilnehmersystem 109) System gemeinsam ist, um zu ermöglichen, dass beide Teilnehmersysteme die bestmögliche Qualität von Video oder anderem Inhalt erfahren. Das Teilnehmersystem 109 kann auch an das Teilnehmersystem 103 (durch den Weiterleitungsserver 105) Inhalt übertragen, der von dem ersten Codec, der den zwei Systemen 103 und 109 gemeinsam ist, codiert wird, wobei der Inhalt von dem Teilnehmersystem 103 empfangen, dekomprimiert/decodiert und präsentiert wird.
  • Wenn ein dritter Teilnehmer (z. B. das Teilnehmersystem 107 in 2B) der AV-Konferenz beitritt, empfängt das Teilnehmersystem 103 in 2B in Vorgang 59 in 2A eine Anforderung (z. B. Anforderung oder Anmeldung 121, in 2B gezeigt) von dem dritten Teilnehmer für einen zweiten Stream, der mit einem zweiten Codec codiert ist, der ein gemeinsamer Codec sein kann, der für alle drei Teilnehmer (Teilnehmersysteme 103, 107 und 109, in 2B gezeigt) verfügbar ist und von dem ersten Codec verschieden ist und ein Codec geringerer Qualität sein kann (in Bezug auf einen oder mehrere von Bildqualität oder verlustreiches Verhalten oder Auflösung usw.). Die Anforderung 121 wird durch den Weiterleitungsserver 105 weitergeleitet, nachdem der Weiterleitungsserver die Anforderung oder die Anmeldung 119 von dem Teilnehmersystem 107 empfängt. In einer Ausführungsform kann der dritte Teilnehmer ein Webteilnehmer sein, den ersten Codec, der von den Teilnehmersystemen 103 und 109 verwendet wird, zum Senden und Empfangen des ersten Streams 115 nicht einschließt; in einer Ausführungsform kann der Weiterleitungsserver versuchen, zu verifizieren, dass alle Teilnehmersysteme mindestens einen gemeinsamen Codec einschließen, der an allen Teilnehmersystemen in der AV-Konferenz verfügbar ist. Als Reaktion auf die Anforderung in Vorgang 59 erzeugt das erste Datenverarbeitungssystem in Vorgang 61 einen zweiten Inhaltsstream (der zweite Stream 123, in 2B gezeigt) für die AV-Konferenz, der durch den zweiten Codec codiert wird, welcher der gemeinsame Codec sein kann. Der zweite Stream kann in einer Ausführungsform durch dieselbe Kamera auf dem ersten Datenverarbeitungssystem aufgenommen werden, die auch Inhalt (z. B. Video) für den ersten Stream aufnimmt. In Vorgang 63 von 2A überträgt das Teilnehmersystem 103 den zweiten Stream 123 auf Nachfrage an den in 2B gezeigten Weiterleitungsserver 105. Der zweite Stream 123 wird dann durch den Weiterleitungsserver 105 als zweiter Stream 125 an das Teilnehmersystem 107 weitergeleitet, wie in 2B gezeigt. Das Teilnehmersystem 103 kann weiterhin den ersten Stream 115 erstellen und übertragen, während der zweite Stream 123 übertragen wird. Der in 2A und 2B gezeigte Ansatz ermöglicht den Teilnehmersystemen 103 und 109, weiterhin einen besseren Codec als den gemeinsamen Codec zu verwenden, während dem Teilnehmersystem 107 gestattet wird, der AV-Konferenz beizutreten. Somit können die Teilnehmersysteme 103 und 109 den ersten Codec verwenden, um Inhalte (z. B. Video) untereinander zu senden und zu empfangen, während der Inhalt (z. B. Video) von dem Teilnehmersystem 107 unter Verwendung des zweiten Codecs gesendet und empfangen wird. Obschon 2B die Übertragungen von dem Teilnehmersystem 103 zeigt, versteht es sich, dass das Teilnehmersystem 103 auch Inhalte von den Teilnehmersystemen 107 und 109 empfängt, und die Teilnehmersysteme 107 und 109 auch Inhalte an die anderen Systeme übertragen, sodass jedes der drei Teilnehmersysteme in 2B Inhalt an die anderen Teilnehmersysteme sendet und Inhalt von den anderen Teilnehmersystemen empfängt.
  • 2C zeigt ein Verfahren, das von einem Weiterleitungsserver (z. B. Weiterleitungsserver 105) durchgeführt werden kann, wenn das Teilnehmersystem 107 der AV-Konferenz zwischen den Teilnehmersystemen 103 und 109 beitritt. Das Verfahren in 2C kann durchgeführt werden, während das erste Teilnehmersystem (z. B. das Teilnehmersystem 103) das in 2A gezeigte Verfahren durchführt. In Vorgang 151, in 2C gezeigt, kann der Weiterleitungsserver Codec-Fähigkeiten des ersten Datenverarbeitungssystems (z. B. des Teilnehmersystems 103 in 2B) empfangen; diese Codec-Fähigkeiten können dann an andere Teilnehmersysteme in der AV-Konferenz weitergeleitet werden. In Vorgang 153 in 2C kann der Server von einem zweiten Datenverarbeitungssystem (z. B. dem Teilnehmersystem 109 in 2B) einen zweiten Satz von Codec-Fähigkeiten (z. B. eine erschöpfende Liste verfügbarer Codecs für die AV-Konferenz) empfangen und dann den zweiten Satz von Codec-Fähigkeiten an das erste Datenverarbeitungssystem übertragen. Dieser Austausch von Codec-Fähigkeiten ermöglicht es jedem Teilnehmersystem, zu sehen, welche Fähigkeiten an jedem Teilnehmersystem verfügbar sind, damit jedes Teilnehmersystem einen gewünschten Stream auswählen kann, der von einem gewünschten Codec in der AV-Konferenz codiert wird. In Vorgang 155 in 2C kann der Weiterleitungsserver an das erste Datenverarbeitungssystem (z. B. das Teilnehmersystem 103 in 2B) eine Anforderung von dem zweiten Datenverarbeitungssystem übertragen, um einen ersten Stream zu empfangen, der von einem ersten Codec auf dem ersten Datenverarbeitungssystem codiert wird (dort, wo der erste Codec in der Liste verfügbarer Codecs auf dem ersten Datenverarbeitungssystem). Dann empfängt der Weiterleitungsserver in Vorgang 157 den angeforderten ersten Stream zur Lieferung an das zweite Datenverarbeitungssystem, und der Weiterleitungsserver leitet dann den ersten Stream an das zweite Datenverarbeitungssystem weiter. Natürlich kann der Weiterleitungsserver auch eine Anforderung von dem ersten Datenverarbeitungssystem empfangen, um einen Stream von dem zweiten Datenverarbeitungssystem zu empfangen, der mit dem ersten Codec auf dem zweiten Datenverarbeitungssystem codiert ist (wobei die an dem ersten und zweiten Datenverarbeitungssystem verwendeten Codecs für die aneinander gesendeten Streams gleich sein können), und der Weiterleitungsserver kann den Stream von dem zweiten Datenverarbeitungssystem empfangen und diesen Stream an das erste Datenverarbeitungssystem weiterleiten.
  • In Vorgang 159 empfängt der Weiterleitungsserver eine Anforderung von einem dritten Datenverarbeitungssystem (z. B. dem Teilnehmersystem 107 in 2B) für einen zweiten Stream, der mit einem zweiten Codec codiert ist, der den drei Teilnehmersystemen in 2B gemeinsam ist, und der Weiterleitungsserver überträgt die Anforderung an das erste und das zweite Datenverarbeitungssystem (Teilnehmersysteme 130 und 109). Dann empfängt der Weiterleitungsserver in Vorgang 161 den angeforderten zweiten Stream (codiert mit dem zweiten Codec) und leitet den zweiten Stream an das dritte Datenverarbeitungssystem weiter, während der Weiterleitungsserver weiterhin die mit dem ersten Codec codierten Streams an das erste und das zweite Datenverarbeitungssystem weiterleitet. Dies gestattet es den Teilnehmersystemen 103 und 109, weiterhin einen besseren Codec (den ersten Codec) als den gemeinsamen Codec (zweiten Codec) zu verwenden, während dem Teilnehmersystem 107 gestattet wird, der AV-Konferenz beizutreten. In einer Ausführungsform können das erste und zweite Datenverarbeitungssystem Vorrichtungen sein, die Versionen desselben Betriebssystems ausführen (z. B. Versionen von iOS) und die gleichen Medienfähigkeiten teilen und die gleiche AV-Konferenzanwendung verwenden (z. B. FaceTime), während das dritte Datenverarbeitungssystem eine Vorrichtung sein kann, die ein anderes Betriebssystem (z. B. ein Android-Betriebssystem) ausführt und die FaceTime-AV-Konferenzanwendung nicht einschließt.
  • In einer Ausführungsform können die Teilnehmersysteme, die den besseren Codec verwenden, dies weiterhin tun, während die Bedingungen (z. B. Netzwerkbandbreite, Batteriefüllstände, Wärmezustände) diese Verwendung zulassen; es ist jedoch möglich, dass sich die Bedingungen ändern und Ausweichansätze erfordern, die auf die Verwendung des gemeinsamen Codecs umschalten. 3A und 3B zeigen eine Implementierung eines Ausweichansatzes, und 4A und 4B zeigen eine weitere Implementierung eines Ausweichansatzes.
  • Bei dem in 3A gezeigten Verfahren brauchen die Teilnehmersysteme keine Signalisierung über die Änderung in den Streams bereitzustellen; vielmehr ist jeder Teilnehmer konfiguriert, um bereit zu sein, um auf die Verwendung des gemeinsamen Codecs in einer Ausweichsituation bei Empfang von Inhalt, der mit dem gemeinsamen Codec codiert ist, umzuschalten. In dem Kontext der in 2B gezeigten Umgebung wird mindestens ein Teilnehmer bereits den gemeinsamen Codec verwenden. In Vorgang 201 in 3A überwacht jedes Teilnehmersystem (z. B. Teilnehmersysteme 210 und 216 in 3B) seinen lokalen Zustand, der Upload-Bandbreite, Download-Bandbreite, Wärmedaten über den Wärmezustand des Systems einschließen kann (z. B. wird die Vorrichtung zu heiß, während sie mehrere Streams in der AV-Konferenz sendete?) und Batteriezustand einer oder mehrerer Batterien (z. B. hat sich die Batterie unter einen oder mehrere Schwellenwerte entladen?).
  • Dieses Überwachen kann periodisch über die Zeit während der AV-Konferenz erfolgen. Die vorläufige US-Patentanmeldung Nr. 63/041,549 , eingereicht am 19. Juni 2020 (durch Hsien-Po Shiang, et. al. und mit der Bezeichnung HIGH FREQUENCY PROBING FOR NETWORK BANDWIDTH ESTIMATION USING VIDEO DATA IN REAL-TIME VIDEO CONFERENCE), stellt Beispiele bereit, wie die Bandbreite während einer AV-Konferenz überwacht werden kann. Somit kann jedes Teilnehmersystem, wie die Teilnehmersysteme 210, 214 und 216 in 3B, diese Zustände überwachen, um zu bestimmen, ob eine Bedingung vorliegt, die ein Ausweichen auf den gemeinsamen Codec erfordert. Wenn sich zum Beispiel die Netzwerkbandbreite (z. B. Upload-Bandbreite) für das Teilnehmersystem zu stark verschlechtert, um die Übertragung mehrerer Codec-Streams zu unterstützen, oder wenn das Teilnehmersystem zu heiß wird, um die Übertragung mehrerer Codec-Streams zu unterstützen, oder die Hauptbatterie zu niedrig ist, um die Übertragung der mehreren Codec-Streams zu unterstützen, schaltet das Teilnehmersystem in Vorgang 203 in 3A von dem Übertragen eines ersten Streams, der mit einem ersten (besseren) Codec codiert ist, zu dem Übertragen eines zweiten Streams, der mit dem gemeinsamen Codec codiert ist, um; an einem gewissen Punkt während dieses Umschaltens stoppt das Teilnehmersystem das Übertragen des ersten Streams, sodass es nur den zweiten Stream an alle Empfänger übertragen kann. Das Teilnehmersystem 210 wird in dem in 3B gezeigten Beispiel bereits den zweiten Stream 219 an das Teilnehmersystem 214 (während ebenfalls der erste Stream 217 an das Teilnehmersystem 216 übertragen wird) vor Vorgang 203 von 3A übertragen, sodass die Umschaltung durch Markieren oder Assoziieren des zweiten Streams 219 mit einer Kennung des ersten Streams 217 durchgeführt werden kann, wodurch veranlasst wird, dass der Weiterleitungsserver 212 den zweiten Stream an das Teilnehmersystem 216 (das sich zuvor an dem ersten Stream angemeldet hat) weiterleitet. Das Markieren oder die Assoziierung des zweiten Streams mit der Kennung des ersten Streams leitet den zweiten Stream 219 automatisch an das Teilnehmersystem 216 weiter, und das Teilnehmersystem 210 kann das Übertragen des ersten Streams 217 stoppen, sobald es beginnt, den zweiten Stream 219 mit der Kennung des ersten Streams zu markieren. Dieses Markieren oder diese Assoziierung kann als zusammengesetzte Streamkennungen bezeichnet werden, da der gemeinsame Codec-Stream während der Ausweichsituation zwei Streamkennungen assoziiert ist. US-Patent Nummer 10,931,725 stellt weitere Informationen über die Verwendung von zusammengesetzten Streamkennungen für die Verwendung in AV-Konferenzen bereit.
  • Der in 3A und 3B gezeigte Ausweichansatz ermöglicht es einem Teilnehmersystem, das mindestens einen gemeinsamen Codec-Stream und einen besseren Codec-Stream überträgt, sofort umzuschalten, um nur den gemeinsamen Codec-Stream in einer Ausweichsituation (z. B. Netzwerkverschlechterung) zu übertragen, ohne dass eine Signalisierung oder Nachrichten über die Änderung erforderlich sind. Somit kann ein solches Teilnehmersystem bei Bedarf sehr schnell auf sich ändernde Bedingungen reagieren. Sobald sich die Bedingungen verbessern (z. B. sich die Netzwerkbandbreite verbessert), kann das Teilnehmersystem wieder auf die Übertragung sowohl des gemeinsamen Codec-Streams 219 als auch des ersten Streams 217 zurückgreifen; jedes Teilnehmersystem kann den Vorgang 201 nach einer Ausweichsituation durchführen, um zu bestimmen, ob es die Übertragung beider Streams wieder aufnehmen kann. Das Zurückkehren zu dem Übertragen beider Streams erfordert ein Beginnen des Erzeugens und Übertragens des ersten Streams (codiert mit dem besseren Codec) und ein Anhalten des Markierens des zweiten Streams mit der Kennung des ersten Streams (die der Kennung des ersten Streams assoziiert ist) durch das Teilnehmersystem.
  • Der in 4A und 4B gezeigte Ausweichansatz verwendet Nachrichten oder Signalisierung, um ein Ausweichen zu erzielen und verwendet keine zusammengesetzten Streamkennungen. In Vorgang 251 in 4A überwacht jedes Teilnehmersystem seinen lokalen Zustand; Vorgang 251 kann dem Vorgang 201 in 3A ähnlich sein. Wenn das Überwachen zeigt, dass ein Ausweichen erforderlich ist, führt das Teilnehmersystem (z. B. ein Teilnehmersystem 275) einen Vorgang 253 durch, indem es von dem Übertragen sowohl des besseren Codec-Streams (des ersten Streams) als auch des gemeinsamen Codec-Streams zu dem Übertragen nur des gemeinsamen Codec-Streams umschaltet. Das in 4A gezeigte Verfahren kann im Kontext der in 4B gezeigten AV-Konferenz arbeiten. Diese Umschaltung beinhaltet das Senden einer Nachricht (z. B. Stoppnachricht 283, in 4B gezeigt) an den Weiterleitungsserver (z. B. Weiterleitungsserver 277), der wiederum eine Nachricht an die Teilnehmersysteme (z. B. ein Teilnehmersystem 281) überträgt, die den ersten Stream 283 von dem Teilnehmersystem 275 empfangen haben), das die Stoppnachricht 283 gesendet hat, und diese Nachricht von dem Weiterleitungsserver schließt die Information ein, dass der erste Stream 283 von dem Teilnehmersystem 275 nicht weiter übertragen wird. Vor dem Vorgang 253 hatte das Teilnehmersystem bereits den gemeinsamen Codec-Stream 285 an das Teilnehmersystem 279 durch den Weiterleitungsserver 277 erstellt und gesendet, und das Teilnehmersystem hatte den besseren Codec-Stream 283 an das Teilnehmersystem 281 übertragen. Wenn die Ausweichbedingung auftritt, empfängt das Teilnehmersystem 281 eine Nachricht (z. B. Daten basierend auf der Stoppnachricht 283) und meldet sich dann bei dem gemeinsamen Codec-Stream an, indem es eine Anmeldungsnachricht (z. B. bei gemeinsam anmelden) an den Weiterleitungsserver 277 sendet. Diese Anmeldungsnachricht bewirkt, dass der Weiterleitungsserver 277 damit beginnt, den gemeinsamen Codec-Stream an das Teilnehmersystem 281 weiterzuleiten. In einer Ausführungsform kann das Teilnehmersystem 275 das Erstellen und Übertragen des besseren Codec-Streams 283 stoppen, sobald es die Stoppnachricht 283 an den Weiterleitungsserver 277 übertragen hat. Die Teilnehmer können weiterhin ihre lokalen Zustände überwachen und die Übertragung des besseren Codec-Streams wiederaufnehmen, wenn die Bedingungen diese Wiederaufnahme zulassen. In einer Ausführungsform kann die Wiederaufnahme ein Veröffentlichen der Verfügbarkeit eines neuen Streams (des besseren Codec-Streams) durch den Weiterleitungsserver beinhalten, der die veröffentlichte Verfügbarkeit an Teilnehmersysteme weiterleitet, die den besseren Codec-Stream verwenden können; andersherum können sich diese Teilnehmersysteme bei dem besseren Codec-Stream erneut anmelden.
  • Ein weiterer Gesichtspunkt dieser Offenbarung beinhaltet die Verwendung des Codecs der bevorzugten oder höchsten Qualität an jedem Teilnehmersystem, das eine solche Verwendung nutzen kann, während ein gemeinsamer Codec verwendet wird, der zur Verwendung an allen Teilnehmersystemen in einer AV-Konferenz verfügbar ist. Der gemeinsame Codec kann als der primäre Codec für manche Teilnehmer verwendet werden, welche die besseren Codecs nicht unterstützen (mit Variationen der Bitrate für Streams, die mit dem gemeinsamen Codec codiert werden, der zum Bewältigen von Netzwerkbandbreiten-Änderungen verwendet wird), und kann auch als Ausweichcodec für diejenigen Teilnehmersysteme verwendet werden, welche die besseren Codecs unterstützen können. Dieser Gesichtspunkt ist in 5A gezeigt, die ein Verfahren einer Ausführungsform dieses Gesichtspunkts zeigt, und in 5B, die ein Beispiel einer AV-Konferenzumgebung zeigt, die das in 5A gezeigte Verfahren verwenden kann. In Vorgang 301 in 5A kann jedes Teilnehmersystem seine Liste von Codec-Fähigkeiten (und optional anderen medienbezogenen Fähigkeiten) zur Verwendung in der AV-Konferenz mit allen anderen Teilnehmersystemen (oder mindestens einer Teilmenge aller Teilnehmersysteme) austauschen. Zum Beispiel kann jedes Teilnehmersystem seine Liste von Fähigkeiten durch eine oder mehrere Nachrichten veröffentlichen, die an einen Weiterleitungsserver gesendet werden, wie den Weiterleitungsserver 317, in 5B gezeigt. Das Ergebnis dieses Austauschs kann jeden Teilnehmer mit den verfügbaren Codecs an anderen Teilnehmern bereitstellen und es jedem Teilnehmer ermöglichen, einen Codec aus der Liste verfügbarer Codecs der anderen Teilnehmer auszuwählen. Dies ermöglicht Vorgang 303, in dem sich jeder Teilnehmer an einem Codec bevorzugter oder höchster Qualität, der bei jedem Teilnehmer verfügbar ist (für diejenigen Teilnehmer, die mehr als den gemeinsamen Codec unterstützen), anmelden kann, während es solchen Teilnehmersystemen ebenfalls gestattet ist, auszuweichen, um den gemeinsamen Codec in Ausweichsituationen zu verwenden. Die Ausweichsituationen können die oben beschriebenen Ausweichansätze verwenden. In dem in 5B gezeigten Beispiel weisen ein Teilnehmersystem 310 und ein Teilnehmersystem 312 jeweils denselben Satz von Codec-Fähigkeiten auf, der einen gemeinsamen Codec (Codec X) einschließt. Teilnehmersysteme 316 und 314 weisen jeweils den gleichen Satz von Codec-Fähigkeiten auf, der den gemeinsamen Codec einschließt. In diesem Beispiel können die Teilnehmersysteme 310 und 312 einen besseren Codec, wie die Codecs A oder B, auswählen, wenn sie sich nicht in einer Ausweichbedingung befinden (z. B. wenn die Netzwerkbandbreite zu niedrig ist), um Streams zwischen diesen Systemen 310 und 312 in der AV-Konferenz zu übertragen und zu empfangen, und diese Teilnehmersysteme 310 und 312 können mit dem gemeinsamen Codec codierte Streams an die Teilnehmer 316 und 314 übertragen und von ihnen empfangen. Die Teilnehmer 316 und 314 können die gemeinsamen Codec-Streams von allen anderen Teilnehmern übertragen und empfangen. Der gemeinsame Codec-Stream kann als Ausweich-Stream für die Teilnehmer 310 und 312 verwendet werden, wenn Ausweichbedingungen (z. B. reduzierte Netzwerkbandbreite oder Wärmezustand zu heiß oder Batteriefüllstand zu niedrig) vorliegen.
  • Die hierin beschriebenen Ausführungsformen können auch zusätzliche Verfahren verwenden, die von Serversystemen, wie Weiterleitungsservern, durchgeführt werden, um die unterschiedlichen Teilnehmersysteme aufeinander abzustimmen. Zum Beispiel kann ein Server in einer Ausführungsform Medien-Header und Steuerbefehle manipulieren, hinzufügen oder entfernen, um unterschiedliche Teilnehmersysteme mit unterschiedlichen Medienfähigkeiten aneinander anzupassen, sodass sie einer AV-Konferenz beitreten und diese halten können. Zum Beispiel kann ein Server Teilnehmersysteme unterstützen, die sich bei der Verlustwiederherstellung, Mediensynchronisation, in Medienattributen wie Ausrichtung von Bildern/Videos und in Medienattributen wie Audioleistungs (z. B. Lautstärke)-Pegel und Transport-Header und zusätzlicher Verschlüsselung unterscheiden, wenn nötig.
  • 6 zeigt ein Beispiel eines Datenverarbeitungssystems 800, das mit einer Ausführungsform verwendet werden kann. Zum Beispiel kann das System 800 implementiert sein, um ein System oder eine Vorrichtung bereitzustellen, die ein beliebiges der hierin beschriebenen Verfahren durchführen. Zum Beispiel kann das System 800 verwendet werden, um ein Teilnehmersystem oder einen Weiterleitungsserver zu implementieren. Es ist zu beachten, dass, obwohl 6 verschiedene Komponenten einer Vorrichtung veranschaulicht, es nicht beabsichtigt ist, dass sie irgendeine bestimmte Architektur oder Art des Verbindens der Komponenten wiedergibt, da solche Details für die Offenbarung nicht relevant sind. Es wird ebenso ersichtlich sein, dass Netzwerkcomputer und andere Datenverarbeitungssysteme oder andere Unterhaltungselektronikvorrichtungen, die weniger Komponenten oder vielleicht mehr Komponenten besitzen, bei Ausführungsformen der Offenbarung ebenfalls verwendet werden können.
  • Wie in 6 gezeigt, schließt die Vorrichtung 800, bei der es sich um eine Form von Datenverarbeitungssystem handelt, einen Bus 803 ein, der mit einem oder mehreren Mikroprozessoren 805, einem ROM (Nur-Lese-Speicher) 807 und einem flüchtigen RAM 809 und einem nichtflüchtigen Speicher 811 gekoppelt ist. Der oder die Mikroprozessoren 805 können die Anweisungen von den Speichern 807, 809, 811 abrufen und Anweisungen ausführen, um vorstehend beschriebene Vorgänge durchzuführen. Der oder die Mikroprozessoren 805 können einen oder mehrere Verarbeitungskerne enthalten. Der Bus 803 verbindet diese verschiedenen Komponenten miteinander und verbindet diese Komponenten 805, 807, 809 und 811 auch mit einer Anzeigesteuerung und Anzeigevorrichtung 813 und mit Peripherievorrichtungen wie Eingabe/Ausgabe(E/A)-Vorrichtungen 815, bei denen es sich um Touchscreens, Mäuse, Tastaturen, Modems, Netzwerkschnittstellen, Drucker und andere Vorrichtungen handeln kann, die im Stand der Technik allgemein bekannt sind. Üblicherweise sind die Eingabe/Ausgabe-Vorrichtungen 815 über Eingabe/Ausgabe-Steuerungen 810 mit dem System gekoppelt. Der flüchtige RAM (Speicher mit wahlfreiem Zugriff) 809 ist üblicherweise als dynamischer RAM (DRAM) implementiert, der kontinuierlich Energie benötigt, um die Daten in dem Speicher zu aktualisieren oder zu halten.
  • Bei dem nichtflüchtigen Speicher 811 handelt es sich üblicherweise um eine magnetische Festplatte oder ein magneto-optisches Laufwerk oder ein optisches Laufwerk oder einen DVD-RAM oder einen Flash-Speicher oder andere Typen von Speichersystemen, die Daten (z. B. große Datenmengen) auch dann beibehalten, wenn das System von der Energieversorgung getrennt ist. Üblicherweise wird es sich bei dem nichtflüchtigen Speicher 811 auch um einen Speicher mit wahlfreiem Zugriff handeln, obwohl dies nicht erforderlich ist. Obwohl 6 zeigt, dass es sich bei dem nichtflüchtigen Speicher 811 um eine lokale Vorrichtung handelt, die direkt mit dem Rest der Komponenten in dem Datenverarbeitungssystem gekoppelt ist, wird es ersichtlich sein, dass Ausführungsformen der Offenbarung einen nichtflüchtigen Speicher benutzen können, der von dem System entfernt angeordnet ist, wie eine Netzwerkspeicherungsvorrichtung, die durch eine Netzwerkschnittstelle wie ein Modem, eine Ethernet-Schnittstelle oder ein drahtloses Netzwerk mit dem Datenverarbeitungssystem gekoppelt ist. Der Bus 803 kann einen oder mehrere Busse einschließen, die miteinander über vielfältige Bridges, Steuerungen und/oder Adapter verbunden sind, wie in der Technik allgemein bekannt ist.
  • Abschnitte dessen, was vorstehend beschrieben wurde, können mit Schaltlogik, wie einer dedizierten Logikschaltung, oder mit einer Mikrosteuerung oder einer anderen Form von Verarbeitungskern, der Programmcodeanweisungen ausführt, implementiert werden. Somit können durch die vorstehende Erörterung gelehrte Prozesse mit Programmcode wie maschinenausführbaren Anweisungen durchgeführt werden, die eine Maschine, die diese Anweisungen ausführt, veranlassen, bestimmte Funktionen durchzuführen. In diesem Kontext kann es sich bei einer „Maschine“ um eine Maschine, die Zwischenform(oder „abstrakte“)-Anweisungen in prozessorspezifische Anweisungen umwandelt (z. B. eine abstrakte Ausführungsumgebung wie eine „virtuelle Maschine“ (z. B. eine virtuelle Java-Maschine), einen Übersetzer, eine Common Language Runtime, eine virtuelle Maschine einer übergeordneten Sprache usw.) und/oder eine elektronische Schaltlogik handeln, die auf einem Halbleiterchip (z. B. einer mit Transistoren implementierten „logischen Schaltlogik“) angeordnet sind, der gestaltet ist, Anweisungen auszuführen, wie ein universeller Prozessor und/oder ein zweckbestimmter Prozessor. Durch die vorstehende Erörterung gelehrte Prozesse können auch (als Alternative zu einer Maschine oder in Kombination mit einer Maschine) durch eine elektronische Schaltlogik durchgeführt werden, die gestaltet ist, die Prozesse (oder einen Abschnitt davon) ohne die Ausführung von Programmcode durchzuführen.
  • Die vorliegende Erfindung bezieht sich zudem auf eine Einrichtung zum Durchführen der hierin beschriebenen Vorgänge. Diese Einrichtung kann speziell für den erforderlichen Zweck konstruiert sein oder eine universelle Vorrichtung umfassen, die selektiv durch ein in der Vorrichtung gespeichertes Computerprogramm aktiviert oder rekonfiguriert wird. Solch ein Computerprogramm kann in einem nicht-transitorischen computerlesbaren Speicherungsmedium, wie, ohne auf diese beschränkt zu sein, irgendeinem Typ von Platte einschließlich Floppy-Disketten, optischen Platten, CD-ROMs und magneto-optische Platten, DRAM (flüchtig), Flash-Speicher, Nur-Lese-Speicher (ROMs), RAMs, EPROMS, EEPROMS, magnetischen oder optischen Karten oder jedem Typ von Medium gespeichert sein, das zum Speichern elektronischer Anweisungen geeignet ist und von denen jedes mit einem Vorrichtungsbus gekoppelt ist.
  • Ein maschinenlesbares Medium schließt einen beliebigen Mechanismus zum Speichern von Informationen in einer Form ein, die durch eine Maschine (z. B. einen Computer) lesbar ist. Zum Beispiel schließt ein nicht-transitorisches maschinenlesbares Medium Nur-Lese-Speicher („ROM“); Direktzugriffsspeicher („RAM“); Magnetplattenspeicherungsmedien; optische Speicherungsmedien; Flash-Speichervorrichtungen; usw. ein.
  • Ein Herstellungsartikel kann verwendet werden, um Programmcode zu speichern. Ein Herstellungsartikel, der Programmcode speichert, kann, ohne auf diese beschränkt zu sein, als ein oder mehrere nicht-transitorische Speicher (z.B. ein oder mehrere Flash-Speicher, Speicher mit wahlfreiem Zugriff (statisch, dynamisch oder andere)), optische Platten, CD-ROMs, DVD-ROMs, EPROMs, EEPROMs, magnetische oder optische Karten oder andere Typen maschinenlesbarer Medien ausgebildet werden, die zum Speichern elektronischer Anweisungen geeignet sind. Programmcode kann zudem von einem entfernt angeordneten Computer (z. B. einem Server) auf einen anfragenden Computer (z. B. einen Client) mittels Datensignalen heruntergeladen werden, die in einem Ausbreitungsmedium (z. B. über eine Kommunikationsverbindung (z. B. eine Netzwerkverbindung)) ausgebildet sein können und dann in dem nicht-transitorischen Speicher (z. B. DRAM oder Flash-Speicher oder beides) in dem Client-Computer gespeichert werden.
  • Die vorhergehenden detaillierten Beschreibungen werden in Form von Algorithmen und symbolischen Darstellungen von Vorgängen an Datenbits innerhalb eines Vorrichtungsspeichers dargelegt. Diese algorithmischen Beschreibungen und Darstellungen stellen Werkzeuge dar, die durch den Fachmann der Datenverarbeitungstechnik verwendet werden, um anderen Fachleuten die Substanz seiner Arbeit am effektivsten zu übermitteln. Ein Algorithmus wird hier und allgemein als eine selbstständige Folge von Vorgängen betrachtet, die zu einem gewünschten Ergebnis führen. Bei den Vorgängen handelt es sich um diejenigen, die physische Bearbeitungen physischer Quantitäten erfordern. Üblicherweise, aber nicht notwendigerweise, nehmen diese Quantitäten die Form elektronischer oder magnetischer Signale an, die fähig sind, gespeichert, übertragen, kombiniert, verglichen oder anderweitig bearbeitet zu werden. Es hat sich manchmal als bequem erwiesen, diese Signale prinzipiell aus Gründen allgemeiner Verwendung als Bits, Werte, Elemente, Symbole, Zeichen, Ausdrücke, Zahlen oder dergleichen zu bezeichnen.
  • Es sollte jedoch im Kopf behalten werden, dass all diese und ähnliche Ausdrücke den entsprechenden physischen Quantitäten zuzuordnen sind und lediglich bequeme, auf diese Quantitäten angewandte Kennzeichnungen darstellen. Sofern nicht speziell anders angegeben als anhand der vorstehenden Erörterung ersichtlich, ist zu ersehen, dass sich innerhalb der Beschreibung Erörterungen, welche Ausdrücke verwenden wie „empfangen“, „bestimmen“, „senden“, „beenden“, „warten“ oder dergleichen, auf das Handeln und die Prozesse einer Vorrichtung oder einer ähnlichen elektronischen Rechenvorrichtung beziehen, die als physische (elektronische) Quantitäten innerhalb der Register und Speicher der Vorrichtung dargestellte Daten in andere, gleichermaßen als physische Quantitäten innerhalb der Speicher oder Register der Vorrichtung oder einer anderen solche Informationsspeicherungs-, Übertragungs- oder Anzeigevorrichtungen dargestellte Daten bearbeitet und umwandelt.
  • Die hierin vorgelegten Prozesse und Anzeigen sind nicht inhärent auf irgendeine bestimmte Vorrichtung oder irgendeine bestimmte Einrichtung bezogen. Vielfältige universelle Systeme können mit Programmen gemäß den Lehren hierin verwendet werden, oder es kann sich als bequem erweisen, eine spezialisiertere Einrichtung zu konstruieren, um die beschriebenen Vorgänge durchzuführen. Die erforderliche Struktur für eine Vielfalt dieser Systeme wird anhand der nachstehenden Beschreibung offensichtlich. Zusätzlich wird die Offenbarung nicht unter Bezugnahme auf irgendeine bestimmte Programmiersprache beschrieben. Es wird ersichtlich sein, dass eine Vielfalt von Programmiersprachen verwendet werden kann, um die Lehren der Offenbarung zu implementieren, wie sie hierin beschrieben ist.
  • In der vorhergehenden Patentschrift wurden spezifische beispielhafte Ausführungsformen beschrieben. Es ist offensichtlich, dass verschiedene Modifikationen an diesen Ausführungsformen vorgenommen werden können, ohne von dem in den folgenden Ansprüchen dargelegten Geist und Schutzumfang der Erfindung abzuweichen. Die Patentschrift und Zeichnungen sind dementsprechend in einem veranschaulichenden Sinn anstatt einem einschränkenden Sinn anzusehen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 10931725 [0019, 0029]
    • US 63041549 [0029]

Claims (23)

  1. Nicht-transitorisches maschinenlesbares Medium, das ausführbare Programmanweisungen speichert, die, wenn sie von einem ersten Datenverarbeitungssystem ausgeführt werden, das erste Datenverarbeitungssystem dazu veranlassen, ein Verfahren in einer Umgebung durchzuführen, die das erste Datenverarbeitungssystem und ein zweites Datenverarbeitungssystem und ein drittes Datenverarbeitungssystem und einen Server einschließt, wobei das Verfahren umfasst: Übertragen, durch das erste Datenverarbeitungssystem an den Server, von Codec-Fähigkeiten des ersten Datenverarbeitungssystems, wobei die Codec-Fähigkeiten des ersten Datenverarbeitungssystems einen ersten Satz von Codecs in dem ersten Datenverarbeitungssystem angeben, die zur Verwendung in einer audiovisuellen (AV) Konferenz verfügbar sind; Empfangen, durch das erste Datenverarbeitungssystem, eines zweiten Satzes von Codec-Fähigkeiten des zweiten Datenverarbeitungssystems, wobei der zweite Satz von Codec-Fähigkeiten einen zweiten Satz von Codecs in dem zweiten Datenverarbeitungssystem angibt, die zur Verwendung in der AV-Konferenz verfügbar sind; Empfangen, an dem ersten Datenverarbeitungssystem, einer Anforderung von dem zweiten Datenverarbeitungssystem, um einen ersten Stream, der mit einem ersten Codec codiert ist, in der AV-Konferenz der erste Codec in dem ersten Satz von Codecs in dem ersten Datenverarbeitungssystem zu empfangen; Übertragen, durch das erste Datenverarbeitungssystem an den Server, des ersten Streams zur Lieferung an das zweite Datenverarbeitungssystem; Empfangen, durch das erste Datenverarbeitungssystem, einer Anforderung von dem dritten Datenverarbeitungssystem für einen zweiten Stream, der mit einem zweiten Codec codiert ist, in der AV-Konferenz, wobei sich der zweite Codec in dem ersten Satz von Codecs befindet und sich von dem ersten Codec unterscheidet; Erstellen, auf Nachfrage und als Reaktion auf die Anforderung von dem dritten Datenverarbeitungssystem, des zweiten Streams in der AV-Konferenz; und Übertragen des zweiten Streams an den Server zur Lieferung an das dritte Datenverarbeitungssystem, während das erste Datenverarbeitungssystem das Übertragen des ersten Streams an den Server zur Lieferung an das zweite Datenverarbeitungssystem fortsetzt.
  2. Nicht-transitorisches maschinenlesbares Medium nach Anspruch 1, wobei jeder Codec in dem ersten Satz von Codecs und in dem zweiten Satz von Codecs konfiguriert ist, um Videoinhalte in einer AV-Konferenz zur Übertragung an andere Teilnehmer in der AV-Konferenz zu komprimieren und konfiguriert ist, um den in der AV-Konferenz empfangenen Videoinhalt zu dekomprimieren.
  3. Nicht-transitorisches maschinenlesbares Medium nach Anspruch 1, wobei der zweite Codec ein Codec ist, der für die Verwendung in dem ersten, dem zweiten und dem dritten Datenverarbeitungssystem gemeinsam und verfügbar ist.
  4. Nicht-transitorisches maschinenlesbares Medium nach Anspruch 1, wobei das erste und das zweite Datenverarbeitungssystem eine oder mehrere Versionen eines ersten Betriebssystems während der AV-Konferenz ausführen und das dritte Datenverarbeitungssystem ein zweites Betriebssystem während der AV-Konferenz ausführt.
  5. Nicht-transitorisches maschinenlesbares Medium nach Anspruch 1, wobei das Verfahren ferner umfasst: Empfangen, an dem ersten Datenverarbeitungssystem, eines dritten Streams in der AV-Konferenz von dem zweiten Datenverarbeitungssystem, wobei der dritte Stream mit dem ersten Codec codiert ist; Decodieren des dritten Streams unter Verwendung des ersten Codecs; Empfangen, an dem ersten Datenverarbeitungssystem, eines vierten Streams in der AV-Konferenz von dem dritten Datenverarbeitungssystem, wobei der vierte Stream mit dem zweiten Codec codiert ist, Decodieren des vierten Streams unter Verwendung des zweiten Codecs an dem ersten Datenverarbeitungssystem; und Anzeigen von Video aus dem dritten Stream, Video aus dem vierten Stream und Video aus dem ersten Stream auf einer Anzeige des ersten Datenverarbeitungssystems.
  6. Nicht-transitorisches maschinenlesbares Medium nach Anspruch 3, wobei das Verfahren ferner umfasst: Überwachen, durch das erste Datenverarbeitungssystem, eines oder mehrerer von: Uplink-Bandbreite von dem ersten Datenverarbeitungssystem, Wärmedaten über den Wärmezustand des ersten Datenverarbeitungssystems oder Batteriezustand über eine Batterie in dem ersten Datenverarbeitungssystem; als Reaktion auf eine oder mehrere Bedingungen, die aus dem Überwachen bestimmt werden, Umschalten von dem Übertragen des ersten Streams an das zweite Datenverarbeitungssystem zu dem Übertragen des zweiten Streams an das zweite Datenverarbeitungssystem.
  7. Nicht-transitorisches maschinenlesbares Medium nach Anspruch 6, wobei das Umschalten umfasst: Asoziieren des zweiten Streams zu einer Streamkennung des ersten Streams, um zu bewirken, dass der Server den zweiten Stream an das zweite Datenverarbeitungssystem weiterleitet.
  8. Nicht-transitorisches maschinenlesbares Medium nach Anspruch 6, wobei das Verfahren ferner umfasst: Übertragen, durch das erste Datenverarbeitungssystem, einer Angabe an den Server zur Lieferung an das zweite Datenverarbeitungssystem, dass das erste Datenverarbeitungssystem das Übertragen des ersten Streams zur Lieferung an das zweite Datenverarbeitungssystem angehalten hat oder anhalten wird; Empfangen einer Anforderung, von dem zweiten Datenverarbeitungssystem, für den zweiten Stream; Übertragen, durch das erste Datenverarbeitungssystem, des zweiten Streams an den Server zur Lieferung an das zweite Datenverarbeitungssystem.
  9. Verfahren, das von einem Server in einer Umgebung durchgeführt wird, die den Server, ein erstes Datenverarbeitungssystem und ein zweites Datenverarbeitungssystem und ein drittes Datenverarbeitungssystem einschließt, wobei das Verfahren umfasst: Empfangen, durch durch den Server von dem ersten Datenverarbeitungssystem, von Codec-Fähigkeiten des ersten Datenverarbeitungssystems, wobei die Codec-Fähigkeiten des ersten Datenverarbeitungssystems einen ersten Satz von Codecs in dem ersten Datenverarbeitungssystem angeben, die zur Verwendung in einer audiovisuellen (AV) Konferenz verfügbar sind; Übertragen, durch den Server an das erste Datenverarbeitungssystem, eines zweiten Satzes von Codec-Fähigkeiten des zweiten Datenverarbeitungssystems, wobei der zweite Satz von Codec-Fähigkeiten einen zweiten Satz von Codecs in dem zweiten Datenverarbeitungssystem angibt, die zur Verwendung in der AV-Konferenz verfügbar sind; Übertragen, durch den Server an das erste Datenverarbeitungssystem, einer Anforderung von dem zweiten Datenverarbeitungssystem, um einen ersten Stream, der mit einem ersten Codec codiert ist, in der AV-Konferenz der erste Codec in dem ersten Satz von Codecs in dem ersten Datenverarbeitungssystem zu empfangen; Empfangen, durch den Server von dem ersten Datenverarbeitungssystem, des ersten Streams zur Lieferung an das zweite Datenverarbeitungssystem; Übertragen, durch den Server an das erste Datenverarbeitungssystem, einer Anforderung von dem dritten Datenverarbeitungssystem für einen zweiten Stream, der mit einem zweiten Codec codiert ist, in der AV-Konferenz, wobei sich der zweite Codec in dem ersten Satz von Codecs befindet und sich von dem ersten Codec unterscheidet; und Empfangen des zweiten Streams an dem Server zur Lieferung an das dritte Datenverarbeitungssystem, während der Server weiterhin den ersten Stream an das zweite Datenverarbeitungssystem überträgt.
  10. Verfahren nach Anspruch 9, wobei jeder Codec in dem ersten Satz von Codecs und in dem zweiten Satz von Codecs konfiguriert ist, um Videoinhalte in einer AV-Konferenz zur Übertragung an andere Teilnehmer in der AV-Konferenz zu komprimieren und konfiguriert ist, um die in der AV-Konferenz empfangenen Videoinhalte zu dekomprimieren, und wobei der Server ein Satz von einem oder mehreren Datenverarbeitungssystemen ist.
  11. Verfahren nach Anspruch 10, wobei der zweite Codec ein Codec ist, der für die Verwendung in dem ersten, dem zweiten und dem dritten Datenverarbeitungssystem gemeinsam und verfügbar ist.
  12. Verfahren nach Anspruch 11, wobei das Verfahren ferner umfasst: Umschalten von dem Übertragen des ersten Streams an das zweite Datenverarbeitungssystem zu dem Übertragen des zweiten Streams an das zweite Datenverarbeitungssystem.
  13. Verfahren nach Anspruch 12, wobei das Umschalten umfasst: Empfangen einer Streamkennung für den zweiten Stream, um zu bewirken, dass der Server den zweiten Stream an das zweite Datenverarbeitungssystem weiterleitet.
  14. Verfahren nach Anspruch 12, wobei das Verfahren ferner umfasst: Empfangen, durch den Server von dem ersten Datenverarbeitungssystem, einer Angabe zur Lieferung an das zweite Datenverarbeitungssystem, dass das erste Datenverarbeitungssystem das Übertragen des ersten Streams zur Lieferung an das zweite Datenverarbeitungssystem angehalten hat oder anhalten wird; Übertragen einer Anforderung, von dem zweiten Datenverarbeitungssystem, für den zweiten Stream; Empfangen, durch den Server von dem ersten Datenverarbeitungssystem, des zweiten Streams zur Lieferung an das zweite Datenverarbeitungssystem.
  15. Verfahren, das von einem ersten Datenverarbeitungssystem in einer Umgebung durchgeführt wird, die das erste Datenverarbeitungssystem und ein zweites Datenverarbeitungssystem und ein drittes Datenverarbeitungssystem und einen Server einschließt, wobei das Verfahren umfasst: Übertragen, durch das erste Datenverarbeitungssystem an den Server, von Codec-Fähigkeiten des ersten Datenverarbeitungssystems, wobei die Codec-Fähigkeiten des ersten Datenverarbeitungssystems einen ersten Satz von Codecs in dem ersten Datenverarbeitungssystem angeben, die zur Verwendung in einer audiovisuellen (AV) Konferenz verfügbar sind; Empfangen, durch das erste Datenverarbeitungssystem, eines zweiten Satzes von Codec-Fähigkeiten des zweiten Datenverarbeitungssystems, wobei der zweite Satz von Codec-Fähigkeiten einen zweiten Satz von Codecs in dem zweiten Datenverarbeitungssystem angibt, die zur Verwendung in der AV-Konferenz verfügbar sind; Empfangen, an dem ersten Datenverarbeitungssystem, einer Anforderung von dem zweiten Datenverarbeitungssystem, um einen ersten Stream, der mit einem ersten Codec codiert ist, in der AV-Konferenz der erste Codec in dem ersten Satz von Codecs in dem ersten Datenverarbeitungssystem zu empfangen; Übertragen, durch das erste Datenverarbeitungssystem an den Server, des ersten Streams zur Lieferung an das zweite Datenverarbeitungssystem; Empfangen, durch das erste Datenverarbeitungssystem, einer Anforderung von dem dritten Datenverarbeitungssystem für einen zweiten Stream, der mit einem zweiten Codec codiert ist, in der AV-Konferenz, wobei sich der zweite Codec in dem ersten Satz von Codecs befindet und sich von dem ersten Codec unterscheidet; Erstellen, auf Nachfrage und als Reaktion auf die Anforderung von dem dritten Datenverarbeitungssystem, des zweiten Streams in der AV-Konferenz; und Übertragen des zweiten Streams an den Server zur Lieferung an das dritte Datenverarbeitungssystem, während das erste Datenverarbeitungssystem das Übertragen des ersten Streams an den Server zur Lieferung an das zweite Datenverarbeitungssystem fortsetzt.
  16. Verfahren nach Anspruch 15, wobei jeder Codec in dem ersten Satz von Codecs und in dem zweiten Satz von Codecs konfiguriert ist, um Videoinhalte in einer AV-Konferenz zur Übertragung an andere Teilnehmer in der AV-Konferenz zu komprimieren und konfiguriert ist, um die in der AV-Konferenz empfangenen Videoinhalte zu dekomprimieren.
  17. Verfahren nach Anspruch 15, wobei der zweite Codec ein Codec ist, der für die Verwendung in dem ersten, dem zweiten und dem dritten Datenverarbeitungssystem gemeinsam und verfügbar ist.
  18. Verfahren nach Anspruch 15, wobei das erste und das zweite Datenverarbeitungssystem eine oder mehrere Versionen eines ersten Betriebssystems während der AV-Konferenz ausführen und das dritte Datenverarbeitungssystem ein zweites Betriebssystem während der AV-Konferenz ausführt.
  19. Verfahren nach Anspruch 15, wobei das Verfahren ferner umfasst: Empfangen, an dem ersten Datenverarbeitungssystem, eines dritten Streams in der AV-Konferenz von dem zweiten Datenverarbeitungssystem, wobei der dritte Stream mit dem ersten Codec codiert ist; Decodieren des dritten Streams unter Verwendung des ersten Codecs; Empfangen, an dem ersten Datenverarbeitungssystem, eines vierten Streams in der AV-Konferenz von dem dritten Datenverarbeitungssystem, wobei der vierte Stream mit dem zweiten Codec codiert ist, Decodieren des vierten Streams unter Verwendung des zweiten Codecs an dem ersten Datenverarbeitungssystem; und Anzeigen von Video aus dem dritten Stream, Video aus dem vierten Stream und Video aus dem ersten Stream auf einer Anzeige des ersten Datenverarbeitungssystems.
  20. Verfahren nach Anspruch 17, wobei das Verfahren ferner umfasst: Überwachen, durch das erste Datenverarbeitungssystem, eines oder mehrerer von: Uplink-Bandbreite von dem ersten Datenverarbeitungssystem, Wärmedaten über den Wärmezustand des ersten Datenverarbeitungssystems oder Batteriezustand über eine Batterie in dem ersten Datenverarbeitungssystem; als Reaktion auf eine oder mehrere Bedingungen, die aus dem Überwachen bestimmt werden, Umschalten von dem Übertragen des ersten Streams an das zweite Datenverarbeitungssystem zu dem Übertragen des zweiten Streams an das zweite Datenverarbeitungssystem.
  21. Verfahren nach Anspruch 20, wobei das Umschalten umfasst: Assoziieren des zweiten Streams zu einer Streamkennung des ersten Streams, um zu bewirken, dass der Server den zweiten Stream an das zweite Datenverarbeitungssystem weiterleitet.
  22. Verfahren nach Anspruch 20, wobei das Verfahren ferner umfasst: Übertragen, durch das erste Datenverarbeitungssystem, einer Angabe an den Server zur Lieferung an das zweite Datenverarbeitungssystem, dass das erste Datenverarbeitungssystem das Übertragen des ersten Streams zur Lieferung an das zweite Datenverarbeitungssystem angehalten hat oder anhalten wird; Empfangen einer Anforderung, von dem zweiten Datenverarbeitungssystem, für den zweiten Stream; Übertragen, durch das erste Datenverarbeitungssystem, des zweiten Streams an den Server zur Lieferung an das zweite Datenverarbeitungssystem.
  23. Nicht-transitorisches maschinenlesbares Medium, das ausführbare Programmanweisungen speichert, die, wenn sie von einem ersten Datenverarbeitungssystem ausgeführt werden, das erste Datenverarbeitungssystem dazu veranlassen, ein Verfahren in einer Umgebung durchzuführen, die das erste Datenverarbeitungssystem und ein zweites Datenverarbeitungssystem und einen Server einschließt, wobei das Verfahren umfasst: Übertragen, durch das erste Datenverarbeitungssystem an den Server, von Codec-Fähigkeiten des ersten Datenverarbeitungssystems, wobei die Codec-Fähigkeiten des ersten Datenverarbeitungssystems einen ersten Satz von Codecs in dem ersten Datenverarbeitungssystem angeben, die zur Verwendung in einer audiovisuellen (AV) Konferenz verfügbar sind; Empfangen, durch das erste Datenverarbeitungssystem, eines zweiten Satzes von Codec-Fähigkeiten des zweiten Datenverarbeitungssystems, wobei der zweite Satz von Codec-Fähigkeiten einen zweiten Satz von Codecs in dem zweiten Datenverarbeitungssystem angibt, die zur Verwendung in der AV-Konferenz verfügbar sind; Übertragen, durch das erste Datenverarbeitungssystem an den Server, einer Anforderung für einen ersten Stream, der durch einen ersten Codec an dem zweiten Datenverarbeitungssystem codiert ist, wobei die Anforderung auf Kriterien an dem ersten Datenverarbeitungssystem eines Codecs mit einer höchsten Qualität basiert, der dem ersten und dem zweiten Satz von Codecs gemeinsam ist.
DE102022205604.3A 2021-06-04 2022-06-01 Optimieren einer medienerfahrung bei einer konferenz mit diversen teilnehmern Pending DE102022205604A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163197214P 2021-06-04 2021-06-04
US63/197,214 2021-06-04
US17/661,947 US20220394212A1 (en) 2021-06-04 2022-05-04 Optimizing media experience in conferencing with diverse participants
US17/661,947 2022-05-04

Publications (1)

Publication Number Publication Date
DE102022205604A1 true DE102022205604A1 (de) 2022-12-08

Family

ID=84102225

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022205604.3A Pending DE102022205604A1 (de) 2021-06-04 2022-06-01 Optimieren einer medienerfahrung bei einer konferenz mit diversen teilnehmern

Country Status (3)

Country Link
US (1) US20220394212A1 (de)
CN (1) CN115442349A (de)
DE (1) DE102022205604A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10931725B2 (en) 2017-09-29 2021-02-23 Apple Inc. Multiway audio-video conferencing

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060215630A1 (en) * 2005-03-25 2006-09-28 Cherng-Daw Hwang Feature scalability in a multimedia communication system
US8947492B2 (en) * 2010-06-18 2015-02-03 Microsoft Corporation Combining multiple bit rate and scalable video coding
US8842159B2 (en) * 2012-02-13 2014-09-23 Microsoft Corporation Encoding processing for conferencing systems
US8970661B2 (en) * 2012-10-20 2015-03-03 Microsoft Technology Licensing, Llc Routing for video in conferencing
US20170006078A1 (en) * 2015-06-30 2017-01-05 Qualcomm Incorporated Methods and apparatus for codec negotiation in decentralized multimedia conferences

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10931725B2 (en) 2017-09-29 2021-02-23 Apple Inc. Multiway audio-video conferencing

Also Published As

Publication number Publication date
CN115442349A (zh) 2022-12-06
US20220394212A1 (en) 2022-12-08

Similar Documents

Publication Publication Date Title
TWI559777B (zh) 將會議系統即時調適成會議工作階段目前情況之系統及方法
US10893080B2 (en) Relaying multimedia conferencing utilizing software defined networking architecture
CN108289187B (zh) 网络直播接入视频会议方法及系统
DE102012013336B4 (de) Aushandeln einer kontinuierlichen multi-stream-präsenz
DE60132433T2 (de) Sofortige nachrichtenübermittlung mit zusätzlicher sprachkommunikation
DE102012214245B4 (de) Multistream-Datenübertragung
CN105338288A (zh) 一种多人网络视频会话方法及系统
DE102013110614B4 (de) Skalierbares Mehrteilnehmervideokonferenzsystem
EP2938047A1 (de) Verfahren, vorrichtung, computerprogramm, softwareprodukt und digitales speichermedium zur übermittlung und adaption von daten
TWI644565B (zh) 視訊影像處理方法及其相關系統
US10182204B1 (en) Generating images of video chat sessions
CN104158673A (zh) 会议模式选择方法及服务器
KR101085063B1 (ko) 분산 구조를 가지는 미디어 서버 시스템에서의 그룹통신 방법
DE102022205604A1 (de) Optimieren einer medienerfahrung bei einer konferenz mit diversen teilnehmern
CN115209189B (zh) 一种视频流传输方法、系统、服务器及存储介质
US20220391452A1 (en) Method for conducting an audio and/or video conference
DE60320099T2 (de) Vorrichtung und verfahren zum verteilen von gestreamten echtzeit-informationen zwischen clients
CN105191295B (zh) 用于在视频会议中管理媒体流的方法和设备
DE102017110431A1 (de) Verfahren zum Übertragen von Informationen
CN203984568U (zh) 一种可由点对点呼叫转三方会议的视频会议系统
EP3016344B1 (de) Intelligenter media-gateway switch für transparentes routen und verketten von medienströmen
JP2009044287A (ja) 映像配信装置,配信映像切替え方法,配信映像切替えプログラムおよび配信映像切替えプログラム記録媒体
DE112022001565T5 (de) System und Verfahren zur dynamischen Bitratenumschaltung von Medien-Streams in einer Medienübertragungsproduktion
CN117336279A (zh) 一种数据处理的方法及装置、电子设备、存储介质
CN117560358A (zh) 一种泛直播语音对讲方法、装置及系统

Legal Events

Date Code Title Description
R012 Request for examination validly filed