DE112013000995T5 - Skalierbare Wasserzeicheneinfügung für fragmentierte Medienstrom-Bereitstellung - Google Patents

Skalierbare Wasserzeicheneinfügung für fragmentierte Medienstrom-Bereitstellung Download PDF

Info

Publication number
DE112013000995T5
DE112013000995T5 DE112013000995.1T DE112013000995T DE112013000995T5 DE 112013000995 T5 DE112013000995 T5 DE 112013000995T5 DE 112013000995 T DE112013000995 T DE 112013000995T DE 112013000995 T5 DE112013000995 T5 DE 112013000995T5
Authority
DE
Germany
Prior art keywords
fragment
watermark
fragments
client
variant
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE112013000995.1T
Other languages
English (en)
Inventor
Fritz Barnes
Kent Karlsson
Cedric Fernandes
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MobiTv Inc
Original Assignee
MobiTv Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by MobiTv Inc filed Critical MobiTv Inc
Publication of DE112013000995T5 publication Critical patent/DE112013000995T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8358Generation of protective data, e.g. certificates involving watermark
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • G06T1/0085Time domain based watermarking, e.g. watermarks spread over several images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/106Enforcing content protection by specific content processing
    • G06F21/1063Personalisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • H04L2209/608Watermarking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/467Embedding additional information in the video signal during the compression process characterised by the embedded information being invisible, e.g. watermarking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

Ein Medienstrom wird in multiple Fragmente abgegrenzt. Es werden unterschiedliche Wasserzeichenvarianten einzelner Fragmente erzeugt. Bestimmte Sequenzen von Wasserzeichenvarianten werden für bestimmte Clients ausgewählt und in einer Benutzerzugriffsdatenbank gespeichert. Das Analysieren der Medienströme gestattet die Bestimmung der Sequenzen von Wasserzeichenvarianten und die Identifikation bestimmter Clients, welche die Medienströme empfangen sollen. Die Fragmente können weiterhin effizient zwischengespeichert werden und es müssen keine einmaligen Wasserzeichen für jeden einzelnen Client erzeugt werden.

Description

  • VERWANDTE ANMELDUNGSDATEN
  • Diese Anmeldung beansprucht Priorität gegenüber US-Patentanmeldung Nr. 13/399,377 mit dem Titel „SCALABLE WATERMARK INSERTION FOR FRAGMENTED MEDIA STREAM DELIVERY”, eingereicht am 17. Februar 2012 (Anwaltsaktenzeichen Nr. MOBIP089US), deren gesamte Offenbarung für sämtliche Zwecke durch Verweis hierin eingeschlossen ist.
  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung betrifft die skalierbare Wasserzeicheneinfügung für eine fragmentierte Medienstrom-Bereitstellung.
  • BESCHREIBUNG VERWANDTER TECHNIK
  • Medienströme beinhalten üblicherweise das Codieren oder erneute Codieren vor der Übertragung an Clients. In vielen Fällen werden Medienströme in ein Format, wie z. B. MPEG-4 Teil 10 oder MPEG-4 Teil 12, codiert. Die Codierungsserver können die Kapazität aufweisen, gleichzeitig Echtzeit-Live-Codierung an zahlreichen Medienströmen durchzuführen.
  • Digitale Wasserzeichen stellen einen Mechanismus zum Erkennen dessen zur Verfügung, dass ein Medienstrom aus einer bestimmten Quelle stammt. Digitale Wasserzeichen können gelegentlich auch verwendet werden, um einen bestimmten Inhaltskonsumenten zu identifizieren. Zum Identifizieren eines bestimmten Inhaltskonsumenten kann ein bestimmtes digitales Wasserzeichen, welches dem Inhaltskonsumenten entspricht, erzeugt und in einen Medienstrom eingebettet werden, der an einen Konsumenten bereitgestellt wird. Das Identifizieren des bestimmten Wasserzeichens gestattet die Identifizierung des bestimmten Konsumenten. Dies kann beim Identifizieren von Inhaltskonsumenten von Nutzen sein, welche den Medienstrom unbefugt verbreiten.
  • Jedoch sind die Mechanismen zum Erzeugen von Wasserzeichen für Medieninhalte begrenzt. Dementsprechend sehen die Techniken der vorliegenden Erfindung Mechanismen zur skalierbaren Wasserzeicheneinfügung für die fragmentierte Medienstrom-Bereitstellung vor.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die Offenbarung ist durch Verweis auf die folgende Beschreibung im Zusammenhang mit den beigefügten Zeichnungen, welche bestimmte Ausführungsformen veranschaulichen, am besten zu verstehen.
  • 1 veranschaulicht ein Beispiel eines verteilten Codierungssystems.
  • 2 veranschaulicht ein Beispiel eines Mechanismus zum Implementieren verteilter Codierungsredundanz mit Live-Stream-Variantenüberwachung.
  • 3 veranschaulicht eine Technik zum Anfordern eines Medienstromes.
  • 4 veranschaulicht eine Technik zur verbesserten Fragmentverarbeitung.
  • 5 veranschaulicht ein Beispiel eines Systems.
  • BESCHREIBUNG VON BEISPIELAUSFÜHRUNGSFORMEN
  • Nun wird im Einzelnen Bezug auf einige spezifische Beispiele der Erfindung genommen, einschließlich der besten Modi, die durch die Erfinder zum Ausführen der Erfindung in Betracht gezogen werden. Beispiele dieser spezifischen Ausführungsformen sind in den beigefügten Zeichnungen veranschaulicht. Während die Erfindung im Zusammenhang mit diesen spezifischen Ausführungsformen beschrieben wird, wird verstanden werden, dass nicht beabsichtigt ist, die Erfindung auf die beschriebenen Ausführungsformen zu beschränken. Ganz im Gegenteil ist beabsichtigt, Alternativen, Modifikationen und Äquivalente mit abzudecken, wie sie im Geist und Umfang der Erfindung, wie durch die beigefügten Ansprüche definiert, enthalten sein können.
  • Zum Beispiel werden die Techniken der vorliegenden Erfindung im Kontext von Fragmentservern beschrieben. Jedoch sei darauf hingewiesen, dass die Techniken der vorliegenden Erfindung auch für Fragmentserver-Variationen und Medienstrom-Server gelten können. In der folgenden Beschreibung sind zahlreiche spezifische Einzelheiten dargelegt, um ein tiefgreifendes Verständnis der vorliegenden Erfindung bereitzustellen. Bestimmte Beispielausführungsformen der vorliegenden Erfindung können ohne einige oder alle dieser spezifischen Einzelheiten implementiert werden. In anderen Fällen wurden gut bekannte Prozessoperationen nicht im Einzelnen beschrieben, um die vorliegende Erfindung nicht unnötig unklar zu machen.
  • Verschiedene Techniken und Mechanismen der vorliegenden Erfindung werden gelegentlich der Klarheit halber in der Singularform beschrieben. Jedoch sei darauf hingewiesen, dass einige Ausführungsformen, soweit nicht anders angegeben, multiple Iterationen einer Technik oder multiple Instanziierungen eines Mechanismus enthalten. Zum Beispiel verwendet ein System einen Prozessor in einer Vielzahl von Kontexten. Jedoch wird verstanden werden, dass ein System, soweit nicht anders angegeben, multiple Prozessoren verwenden kann, während es innerhalb des Umfangs der vorliegenden Erfindung bleibt. Ferner beschreiben die Techniken und Mechanismen der vorliegenden Erfindung gelegentlich eine Verbindung zwischen zwei Einheiten. Es sei darauf hingewiesen, dass eine Verbindung zwischen zwei Einheiten nicht notwendigerweise eine direkte, ungehinderte Verbindung bedeutet, da sich eine Vielzahl anderer Einheiten zwischen den beiden Einheiten befinden kann. Zum Beispiel kann ein Prozessor mit einem Speicher verbunden sein; es wird jedoch verstanden werden, dass sich eine Vielzahl von Brücken und Controllern zwischen dem Prozessor und dem Speicher befinden kann. Demensprechend bedeutet eine Verbindung, soweit nicht anders angegeben, nicht notwendigerweise eine direkte, ungehinderte Verbindung.
  • Überblick
  • Ein Medienstrom wird in multiple Fragmente abgegrenzt. Es werden unterschiedliche Wasserzeichenvarianten einzelner Fragmente erzeugt. Bestimmte Sequenzen von Wasserzeichenvarianten werden für bestimmte Clients ausgewählt und in einer Benutzerzugriffsdatenbank gespeichert. Das Analysieren von Medienströmen gestattet eine Bestimmung der Sequenzen von Wasserzeichenvarianten und Identifikation bestimmter Clients, welche die Medienströme empfangen sollen. Fragmente können auch weiterhin effizient zwischengespeichert werden und es müssen nicht für jeden einzelnen Client einmalige Wasserzeichen erzeugt werden.
  • Beispielausführungsformen
  • Um eine effektive Bereitstellung von Medienströmen zu gestatten, werden Medienströme üblicherweise vor der Bereitstellung fragmentiert. Das Vorsehen von Wasserzeichen, die bestimmte Benutzer oder Inhaltskonsumenten in einer derartigen Architektur identifizieren können, ist in mehrerlei Hinsicht problematisch. Zum Beispiel müssen einmalige Wasserzeichen erzeugt und mit jedem unterschiedlichen Benutzer in einem System assoziiert und in zahlreiche Fragmente eingeschlossen werden. Dies kann zu einer potentiell beschwerlichen Erzeugung robuster Wasserzeichenfragmente führen. Ferner verhindert, da jedes Fragment einmalig wird, das Vorsehen einmaliger Wasserzeichen in jedem dieser Fragmente das Zwischenspeichern und führt zu einer ineffizienten Ausnutzung von Netzwerk- und Serverressourcen.
  • Dementsprechend wird in Betracht gezogen, dass nicht alle Fragmente eingebettete Wasserzeichen aufweisen müssen. Gemäß verschiedener Ausführungsformen können Wasserzeichen in nur jedes n-te Fragment eingeschlossen werden. Die meisten Fragmente können noch immer als zwischenspeicherbar markiert werden. Inhaltskonsumenten müssten nur einmal jedes n-te Fragment einen Inhaltsserver anpingen, oder wenn ein Fragment ansonsten nicht im Cache zur Verfügung steht. Dies kann Netzwerk- und Serverineffizienzen signifikant verringern. Jedoch macht das Vorsehen eines Wasserzeichens in nur jedem n-ten Fragment das Wasserzeichenmarkierungssystem weniger robust. Um das Wasserzeichenmarkierungssystem robuster zu machen, müsste der Wert von n verringert werden, sodass mehr Fragmente wasserzeichenmarkiert werden. Jedoch verringert dies die Effizienz des Systems. Alternativ dazu kann, wenn ein Inhaltsserver zusätzliche Last handhaben kann und die Netzwerkbedingungen dies zulassen, der Wert von n erhöht werden, sodass weniger Fragmente wasserzeichenmarkiert werden.
  • In bestimmten Ausführungsformen ist ein bestimmter Prozentsatz eines Medienstromes wasserzeichenmarkiert und ein bestimmter Prozentsatz der Inhaltskonsumenten erhält wasserzeichenmarkierte Varianten des Medienstromes. Gemäß verschiedener Ausführungsformen kann ein Medienstrom, der in einem zwischenspeicherbaren Format bereitgestellt wird, noch immer wasserzeichenmarkiert werden. Jedoch kann er keine verfolgbaren Informationen enthalten, die den Client, für den der Inhalt bereitgestellt wurde, identifizieren würden, aber er kann den Cache anzeigen, der die Daten empfangen hat. Dies kann hilfreich bei der Bestimmung dessen sein, dass ein Inhaltsbruch an einem bestimmten Ort stattgefunden hat. Zugriffsprotokolle können den Satz möglicher Brüche weiter auf einen bestimmten Satz von Benutzern eingrenzen.
  • In vielen Fällen muss noch eine signifikante Zahl von Anfragen an einen Inhaltsserver gestellt werden. Ferner müsste eine Benutzerzugriffsdatenbank noch immer eine Reihe unterschiedlicher einmaliger Wasserzeichen enthalten, die der Zahl unterschiedlicher einmaliger Benutzer entspricht. Dies kann ineffizient sein, wenn Wasserzeichen erheblichen Speicherplatz erfordern. Die Techniken der vorliegenden Erfindung ziehen ferner das Vorsehen von Wasserzeichenvarianten für verschiedene Fragmente in Betracht. Zum Beispiel würde ein erstes Fragment x unterschiedliche Wasserzeichenvarianten aufweisen, wie z. B. Wasserzeichenvariante 1 Fragment 1 (V1F1), Wasserzeichenvariante 2 Fragment 1 (V2F1), Wasserzeichenvariante 3 Fragment 1 (V3F1), Wasserzeichenvariante 4 Fragment 1 (V4F1), Wasserzeichenvariante 5 Fragment 1 (V5F1) usw. Ein zweites Fragment würde x unterschiedliche Wasserzeichenvarianten aufweisen, wie z. B. Wasserzeichenvariante 1 Fragment 2 (V1F2), Wasserzeichenvariante 2 Fragment 2 (V2F2), Wasserzeichenvariante 3 Fragment 2 (V3F2), Wasserzeichenvariante 4 Fragment 2 (V4F2), Wasserzeichenvariante 5 Fragment 2 (V5F2) usw. Fragment 3 und 4 weisen möglicherweise überhaupt keine Wasserzeichen auf.
  • In bestimmten Ausführungsformen kann jedes zweite Fragment Wasserzeichenvarianten aufweisen. Eine Benutzeranfrage für die Indexdatei oder ein Fortsetzungsbefehl werden umgeleitet, und diese Umleitung wird dann zufällig über die x Varianten verteilt. Die ausgewählten Varianten werden in einer Benutzerzugriffsdatenbank gespeichert, um Sequenzen von Varianten mit bestimmten Benutzern zu assoziieren. Zum Beispiel kann Benutzer A mit V1F1 und V3F2 versehen werden, Benutzer B kann mit V3F1 und V4F2 versehen werden, und Benutzer C kann mit V4F1 und V1F2 versehen werden. Wenn ein Medienstrom unbefugt verbreitet wird, würde das Extrahieren von Wasserzeichen des verbreiteten Medienstromes und das Bestimmen der Sequenz von Wasserzeichenvarianten es einem Systemadministrator gestatten, die Benutzerzugriffsdatenbank zu referenzieren und zu bestimmen, an wen der Medienstrom übertragen wurde. Zum Beispiel kann die Wasserzeichenvariantensequenz als V1F1 und V3F2 bestimmt werden, was Benutzer A entspricht.
  • Die Benutzerzugriffsdatenbank kann eine Benutzeridentifikationsdatenbank sein, die separat gespeichert wird, oder sie kann ein Benutzerzugriffsprotokoll sein, das verfolgt, welche Varianten an welche Benutzer verteilt wurden. Die Verwendung unterschiedlicher Sequenzen von Wasserzeichenvarianten gestattet Skalierbarkeit und Effizienz, da Fragmente zwischengespeichert werden können, da es eine begrenzte Zahl von Varianten gibt. Zum Beispiel könnten nur einige Varianten von einem Dutzend Fragmenten ausreichende einmalige Sequenzen zum Identifizieren von Millionen von Benutzern bereitstellen. Gemäß verschiedener Ausführungsformen wird die Zahl einmaliger Sequenzen durch Potenzierung der Zahl der Varianten mit der Zahl der Fragmente bestimmt. Zum Beispiel würden 4 Varianten von 12 Fragmenten 4 hoch 12 oder mehr als 16 Millionen einmalige Sequenzen ergeben.
  • Die Tatsache, dass es nur eine begrenzte Anzahl von Varianten einer begrenzten Anzahl von Fragmenten gibt, gestattet eine effiziente Zwischenspeicherung und einen geringen Aufwand. Gemäß verschiedener Ausführungsformen müssen Wasserzeichenvarianten-Sequenzen noch nicht einmal einmalig sein, damit sie von Nutzen sind, da sie beim Identifizieren einer verringerten Zahl von potentiellen unbefugten Inhaltsverbreitern helfen können.
  • Gemäß verschiedener Ausführungsformen können digitale Wasserzeichen in Fragmente, wie z. B. MPEG-4-Fragmente, eingebettet werden. MPEG-4 ist ein erweiterbares Containerformat, das keine feststehende Struktur zum Beschreiben von Medienarten aufweist. Stattdessen weist MPEG-4 eine Objekthierarchie auf, die das Definieren maßgeschneiderter Strukturen für jedes Format gestattet. Die Formatbeschreibung wird in dem Musterbeschreibungs-(,stsd')Kästchen für jeden Strom gespeichert. Das Musterbeschreibungskästchen kann Informationen enthalten, die möglicherweise nicht bekannt sind, bis alle Daten codiert wurden. Zum Beispiel kann das Musterbeschreibungskästchen eine durchschnittliche Bitrate enthalten, die vor dem Codieren nicht bekannt ist.
  • Gemäß verschiedener Ausführungsformen werden MPEG-4-Dateien fragmentiert, sodass ein Live-Stream in einer verteilten Architektur auf dynamisch skalierbarer Hardware intelligent codiert, aufgezeichnet und nahezu live wiedergegeben werden kann. MPEG-4-Dateien können erzeugt werden, ohne warten zu müssen, bis der gesamte Inhalt geschrieben wurde, um die Filmkopfzeilen vorzubereiten. Zur Gestattung der MPEG-4-Fragmentierung ohne bandexterne Signalgebung ist eine Kästchenstruktur vorgesehen, die Synchronisierungsinformationen, Dateiendinformationen und Kapitelinformationen enthält. Gemäß verschiedener Ausführungsformen werden Synchronisierungsinformationen verwendet, um Audio und Video zu synchronisieren, wenn die Wiedergabe ein Starten in der Mitte eines Stromes zur Folge hat. Dateiendinformationen signalisieren, wenn das/die aktuelle Programm oder Datei vorüber ist. Diese können Informationen zum Fortsetzen des Streamings des/der nächsten Programmes oder Datei enthalten. Kapitelinformationen können für Video-on-Demand-Inhalte verwendet werden, der in Kapitel unterteilt ist, möglicherweise getrennt durch Werbeblöcke.
  • 1 veranschaulicht ein Beispiel eines Systems zur Wasserzeichenmarkierung. Gemäß verschiedener Ausführungsformen wird ein Medienstrom von einer Inhaltsanbieterquelle, wie z. B. ein Satellit, empfangen. In bestimmten Ausführungsformen wird der Medienstrom in einem MPEG-2-Format bereitgestellt. Der Medienstrom wird mit Hilfe eines GOP-Abgrenzers 101 in Bildgruppen (GOP – Groups of Pictures) abgegrenzt. Die GOP ist eine Bildgruppe in codierten Medien und beinhaltet üblicherweise Schlüssel- und Vorhersage-Frames. Ein Schlüssel-Frame kann ein I-Frame oder intra-codierter Frame sein, der ein feststehendes Bild darstellt, das unabhängig von anderen Bildern ist. Gemäß verschiedener Ausführungsformen beginnt jede GOP mit einem I-Frame. Vorhersage-Frames, wie z. B. P-Frames oder prädiktiv-codierte Frames und B-Frames oder bidirektional prädiktiv-codierte Frames enthalten unterschiedliche Informationen, die Unterscheidungen von einem Referenz-Frame, wie z. B. ein Schlüssel-Frame oder ein anderer Vorhersage-Frame, angeben.
  • Nachdem der Medienstrom in GOPs abgegrenzt wurde, wird ein Arbeitsdispatcher 103 benachrichtigt, dass eine GOP zur Verfügung steht. Gemäß verschiedener Ausführungsformen bestimmt der Arbeitsdispatcher 103, ob er derjenige ist, der zum Arbeiten daran zugeordnet wurde, sowie was mit der GOP geschehen soll. Gemäß verschiedener Ausführungsformen kann der Arbeitsdispatcher bestimmen, dass die GOP in 8 unterschiedliche Varianten codiert werden soll. Ferner können für jede der 8 unterschiedlichen Varianten 4 unterschiedliche Wasserzeichenvarianten erzeugt werden. In bestimmten Ausführungsformen erzeugt der Arbeitsdispatcher 103 eine Beschreibung dessen, was getan werden muss, weist dem Auftrag eine Gewichtung oder ein Prioritätslevel zu und sendet den Auftrag an Auftragswarteschlangen 105. Gemäß verschiedener Ausführungsformen sind Auftragswarteschlangen First-in-First-Out(FIFO)-Warteschlangen, welche die meiste Zeit leer sind. Codierer/Fragmentierer 107 fordern Aufträge an und erhalten sie aus den Auftragswarteschlangen 105. Gemäß verschiedener Ausführungsformen können Aufträge auf der Grundlage der Gewichtung in einer Auftragswarteschlange geordnet werden. In bestimmten Ausführungsformen können Codierer/Fragmentierer 107 Aufträge mit höherer Priorität als erstes aus den Auftragswarteschlangen wählen.
  • In bestimmten Ausführungsformen werden Aufträge mit unterschiedlicher Priorität in Auftragswarteschlangen mit unterschiedlicher Priorität platziert. Es können multiple Aufträge aus den Auftragswarteschlangen mit höherer Priorität entnommen werden, bevor ein einzelner Auftrag aus den Auftragswarteschlangen mit niedriger Priorität entnommen wird. Gemäß verschiedener Ausführungsformen werden Aufträge mit der höchsten Priorität vor Aufträgen mit niedrigerer Priorität verarbeitet. In bestimmten Ausführungsformen wird Warteschlangen ein Prozentsatz von Servicewerten zugewiesen. Eine Warteschlange mit hoher Priorität kann 40% der Zeit, eine Warteschlange mit mittlerer Priorität 30% der Zeit und die übrigen Warteschlangen 20% und 10% der Zeit durch Codierer/Fragmentierer bedient werden. Gemäß verschiedener Ausführungsformen können sich hunderte oder tausende Codierer/Fragmentierer in einem System befinden. In bestimmten Ausführungsformen führt das gleiche Gerät sowohl Codierung als auch Fragmentierung durch, es sei jedoch darauf hingewiesen, dass getrennte Geräte zum Durchführen dieser Operationen verwendet werden können. Gemäß verschiedener Ausführungsformen können zusätzliche Codierer/Fragmentierer dynamisch online geschaltet werden, wenn die Ressourcenausnutzung eine bestimmte Schwelle erreicht. Alternativ dazu können Codierer/Fragmentierer offline geschaltet werden, wenn die Ressourcenausnutzung unter ein bestimmtes Level fällt. Gemäß verschiedener Ausführungsformen ist der Codierer/Fragmentierer 107 eine virtuelle Maschine, die sich auf einem oder mehreren physischen Servern befinden kann, der/die spezialisierte Codierungshardware aufweisen kann/können oder nicht. In bestimmten Ausführungsformen bestimmt ein Cloud-Service, wie viele dieser virtuellen Maschinen auf der Grundlage etablierter Schwellen zu verwenden sind.
  • Gemäß verschiedener Ausführungsformen ist ein einmaliger Identifikator für jede GOP vorgesehen und es wird ein Protokoll von jedem Schritt gespeichert. Nachdem der Codierer/Fragmentierer 107 die Verarbeitung eines Auftrages abgeschlossen hat und ein codiertes Fragment ausgibt, wird das codierte Fragment im verteilten und redundanten Speicher 109 gespeichert. In einem Beispiel ist der verteilte und redundante Speicher 109 ein virtualisiertes Scale-Out-Netzwerk-Speichersystem. Der verteilte und redundante Speicher 109 gestattet es einem System, zahlreiche Fragmente auf jeder Zahl virtualisierter Speichergeräte zu speichern.
  • Gemäß verschiedener Ausführungsformen kann der Fragmentserver 111 auf Fragmente auf dem verteilten und redundanten Speicher 109 zugreifen. Gemäß verschiedener Ausführungsformen können Codierer/Fragmentierer zum Einbetten von Wasserzeichenvarianten in bestimmte Fragmente verwendet werden. In anderen Beispielen können andere Einheiten, wie z. B. der Fragmentserver, Wasserzeichenvarianten in bestimmte Fragmente einbetten. Der Fragmentserver 111 versieht die Zwischenspeicherschicht mit Fragmenten für Clients. Die Designphilosophie hinter der Client/Server-API minimiert zeitaufwändige Abfragen und verringert die Komplexität soweit wie möglich, wenn es um die Bereitstellung der Mediendaten an ein Clientgerät geht. Der Fragmentserver 111 stellt Live-Streams und/oder DVR-Konfigurationen bereit.
  • In bestimmten Ausführungsformen wird eine Benutzerzugriffsdatenbank 115 zum Speichern von Informationen darüber, welche Wasserzeichenvarianten an bestimmte Benutzer bereitgestellt wurden, verwendet. Gemäß verschiedener Ausführungsformen kann einem Benutzer Wasserzeichenversion 1 für ein erstes Fragment, Wasserzeichenversion 3 für ein drittes Fragment, Wasserzeichenversion 4 für ein fünftes Fragment, Wasserzeichenversion 3 für ein siebentes Fragment usw. bereitgestellt werden. Die Benutzerzugriffsdatenbank 115 kann die Sequenz 1, 3, 4, 3 speichern, welche dem bestimmten Benutzeridentifikator entspricht. Das Extrahieren von Wasserzeicheninformationen aus einem Stück Medieninhalt würde es einem Administrator gestatten, den beabsichtigten Empfänger zu identifizieren.
  • 2 veranschaulicht ein Beispiel eines verteilten, skalierbaren Codierungssystems, das zum Bereitstellen unterschiedlicher Wasserzeichenvarianten verwendet werden kann. Gemäß verschiedener Ausführungsformen wird ein Medienstrom von einer Inhaltsanbieterquelle, wie z. B. ein Satellit, empfangen. In bestimmten Ausführungsformen wird der Medienstrom in einem MPEG-2-Format bereitgestellt. Der Medienstrom wird mit Hilfe eines GOP-Abgrenzers 201 in Bildgruppen (GOPs) abgegrenzt. Die GOP ist eine Gruppe von Bildern in codierten Medien und beinhaltet üblicherweise Schlüssel- und Vorhersage-Frames. Ein Schlüssel-Frame kann ein I-Frame oder intra-codierter Frame sein, der ein feststehendes Bild darstellt, das von anderen Bildern unabhängig ist. Gemäß verschiedener Ausführungsformen beginnt jede GOP mit einem I-Frame. Vorhersage-Frames, wie z. B. P-Frames oder prädiktiv-codierte Frames und B-Frames oder bidirektional prädiktiv-codierte Frames, enthalten unterschiedliche Informationen, welche Unterscheidungen von einem Referenz-Frame, wie z. B. ein Schlüssel-Frame oder ein anderer Vorhersage-Frame, angeben. Gemäß verschiedener Ausführungsformen sind gleichzeitig multiple GOP-Abgrenzer 201 aktiv. Wenn ein GOP-Abgrenzer ausfällt, stehen andere GOP-Abgrenzer zur Verfügung und alle GOP-Abgrenzer können Benachrichtigungen versenden.
  • Nachdem der Medienstrom in GOPs abgegrenzt wurde, wird ein elastischer Lastausgleicher 211 zum Verteilen der Arbeit auf die Arbeitsdispatcher 221 und 225 verwendet. Gemäß verschiedener Ausführungsformen überwacht ein Live-Stream-Variantencodierungsmanager 213 den Live-Stream-Variantenverbrauch. Wenn bestimmte Varianten nicht verbraucht werden, werden Aufträge zum Erzeugen dieser Varianten nicht mehr durchgeführt. Wenn bestimmte noch nicht verfügbare Varianten angefordert werden, können Aufträge zum Erstellen dieser Varianten durch den Arbeitsdispatcher 225 auf Anfrage des Live-Stream-Variantencodierungsmanagers 213 erzeugt werden. Wenn ein Arbeitsdispatcher genau dann ausfällt, wenn er eine Benachrichtigung erhält, erfolgt eine weitere Benachrichtigung an einen unterschiedlichen Arbeitsdispatcher. Zwei Benachrichtigungen für die gleiche GOP landen auf zwei unterschiedlichen Maschinen. Bei jedem Arbeitsdispatcher 221 und 225 kann es auch einen Proxy geben. Gemäß verschiedener Ausführungsformen befindet sich der GOP-Abgrenzer 201 auf einem unterschiedlichen Datenzentrum als die Arbeitsdispatcher 221 und 225. Die Verwendung von Proxys bei den Arbeitsdispatchern 221 und 225 gestattet einen Einzeltransfer einer Medienstrom-GOP zwischen Datenzentren.
  • Gemäß verschiedener Ausführungsformen bestimmen die Arbeitsdispatcher 221 und 225 Eigenschaften eines bestimmten Auftrages und was mit der GOP geschehen soll. Gemäß verschiedener Ausführungsformen können die Arbeitsdispatcher 221 und 225 bestimmen, dass die GOP in 8 unterschiedliche Varianten codiert werden soll. In bestimmten Ausführungsformen erstellen die Arbeitsdispatcher 221 und 225 Beschreibungen dessen, was getan werden muss, und senden Aufträge an die Auftragswarteschlangen 223. Gemäß verschiedener Ausführungsformen enthalten die Auftragswarteschlangen 223 eine aktive Auftragswarteschlange und eine Standby-Auftragswarteschlange. Gemäß verschiedener Ausführungsformen sind Auftragswarteschlangen First-in-First-out(FIFO)-Warteschlangen, welche die meiste Zeit leer sind. Jedem Auftrag in der Warteschlange kann eine Zeitüberschreitung zugewiesen werden. Die Codierer/Fragmentierer 231, 233 und 235 fordern Aufträge an und erhalten sie aus den Auftragswarteschlangen 223. In bestimmten Ausführungsformen sind die Codierer/Fragmentierer 231, 233 und 235 identisch und können dynamisch aktiviert oder deaktiviert werden. Gemäß verschiedener Ausführungsformen befinden sich hunderte oder tausende Codierer/Fragmentierer in einem System.
  • In bestimmten Ausführungsformen führt das gleiche Gerät sowohl Codierung als auch Fragmentierung durch, jedoch sei darauf hingewiesen, dass zum Durchführen dieser Operationen auch separate Geräte verwendet werden können. Gemäß verschiedener Ausführungsformen können zusätzliche Codierer/Fragmentierer dynamisch online geschaltet werden, wenn die Ressourcenausnutzung eine bestimmte Schwelle erreicht. Alternativ dazu können Codierer/Fragmentierer offline geschaltet werden, wenn die Ressourcenausnutzung unter ein bestimmtes Level fällt. Gemäß verschiedener Ausführungsformen ist der Codierer/Fragmentierer 231, 233 und 235 eine virtuelle Maschine, die sich auf einem oder mehreren physischen Servern befinden kann, welche/r möglicherweise spezialisierte Codierungshardware aufweist/aufweisen oder nicht. In bestimmten Ausführungsformen bestimmt ein Cloud-Dienst, wie viele dieser virtuellen Maschinen auf der Grundlage etablierter Schwellen zu verwenden sind.
  • Gemäß verschiedener Ausführungsformen sind die Codierer/Fragmentierer 231, 233 und 235 zustandslos. Gemäß verschiedener Ausführungsformen ist für jede GOP ein einmaliger Identifikator vorgesehen und es wird ein Protokoll von jedem Schritt gespeichert. Wenn ein bestimmter Codierer/Fragmentierer an irgendeiner Stelle im Prozess ausfällt, kann ein anderer Codierer/Fragmentierer die Codierungs- und Fragmentierungsoperationen durchführen. Nachdem die Codierer/Fragmentierer 231, 233 und 235 die Aufträge abgeschlossen und codierte Fragmente erzeugt haben, werden die codierten Fragmente in einem verteilten und redundanten Speicher 241 gespeichert. In einem Beispiel ist der verteilte und redundante Speicher 241 ein virtualisiertes Scale-Out-Netzwerk-Speichersystem. Der verteilte und redundante Speicher 241 beinhaltet die Knoten 243 und 245, welche es einem System gestatten, zahlreiche Fragmente auf jeder Zahl virtualisierter Speichergeräte zu speichern.
  • Gemäß verschiedener Ausführungsformen können die Fragmentserver 251, 253 und 255 auf Fragmente im verteilten und redundanten Speicher 241 zugreifen. Die Fragmentserver 251, 253 und 255 stellen eine Zwischenspeicherschicht mit Fragmenten für Clients bereit. Die Designphilosophie hinter der Client/Server-API minimiert zeitaufwändige Abfragen und verringert die Komplexität soweit wie möglich, wenn es um die Bereitstellung der Mediendaten an ein Clientgerät geht. Die Fragmentserver 251, 253 und 255 liefern Live-Streams und/oder DVR-Konfigurationen. Gemäß verschiedener Ausführungsformen arbeiten auch die Fragmentserver zustandslos. In bestimmten Ausführungsformen arbeiten die Fragmentserver unter Verwendung von HTTP-GET-Requests. Gemäß verschiedener Ausführungsformen gestattet jeder Prozess die Fortsetzung eines Stromes, ohne einen zentralen Steuerungspunkt aufzuweisen. Ein elastischer Lastausgleicher 261 verteilt die Fragmentanfragen aus einer Cloud-Front 271, die an die Geräte 281, 283 und 285 bereitgestellt werden. Gemäß verschiedener Ausführungsformen überwachen und analysieren die Geräte 281, 283 und 285 Medienströme, um zu bestimmen, welche Fragmente zwischengespeichert werden sollen. In einigen Beispielen führen die Geräte 281, 283 und 285 eine Zwischenspeicherung von jedem Fragment durch, für das bestimmt wurde, dass es zu einem zuvor angeforderten Fragment redundant ist. Fragmente können mit Hilfe von Identifikatoren, Signaturen usw. verglichen werden.
  • Gemäß verschiedener Ausführungsformen verwendet ein Clientgerät eine Medienkomponente, die fragmentierte MPEG-4-Dateien anfordert, Trickfunktionen gestattet und die Bandbreitenanpassung managt. In bestimmten Ausführungsformen sind Bandbreitenanpassungsinformationen, Wiedergabelisteninformationen und Mediendaten in einer Kästchenstruktur enthalten, die durch die Codierer/Fragmentierer 231, 233 und 235 erzeugt wird. In bestimmten Ausführungsformen führt ein/e Gerät/Anwendung 281, 283 und/oder 285 einen Transportsteuerungsprotokoll-3-Wege-Handshake mit den Fragmentservern 251, 253 und/oder 255 durch, um eine Verbindung zum Empfangen eines Medienstromes zu initiieren. Gemäß verschiedener Ausführungsformen können, anstatt dass das/die Gerät/Anwendung 281, 283 oder 285 die Bandbreitenanpassungsinformationen, Wiedergabelisteninformationen und Mediendaten in separaten Transaktionen von den Fragmentservern 251, 253 und/oder 255 anfordert, die Bandbreitenanpassungsinformationen, Wiedergabelisteninformationen und Mediendaten in eine Kästchenstruktur eingebettet sein, die mit den Medienstromfragmenten durch den Fragmentserver bereitgestellt wird. In einigen Beispielen kann die Kästchenstruktur mit dem ersten Fragment bereitgestellt werden.
  • In bestimmten Ausführungsformen wird eine Benutzerzugriffsdatenbank 295 verwendet, um Informationen darüber zu speichern, welche Wasserzeichenvarianten an bestimmte Benutzer bereitgestellt wurden. Gemäß verschiedener Ausführungsformen können einem Benutzer Wasserzeichenversion 1 für ein erstes Fragment, Wasserzeichenversion 3 für ein drittes Fragment, Wasserzeichenversion 4 für ein fünftes Fragment, Wasserzeichenversion 3 für ein siebentes Fragment usw. bereitgestellt werden. Die Benutzerzugriffsdatenbank 295 kann die Sequenz 1, 3, 4, 3 speichern, welche dem bestimmten Benutzeridentifikator entspricht. Das Extrahieren von Wasserzeicheninformationen aus einem Stück Medieninhalt würde einem Administrator das Identifizieren des beabsichtigten Empfängers gestatten.
  • 3 veranschaulicht ein Beispiel einer Technik zum Erzeugen von Fragmenten mit unterschiedlichen Wasserzeichenvarianten. Bei 301 wird ein Live-Medienstrom empfangen. Gemäß verschiedener Ausführungsformen ist der Medienstrom ein Live-MPEG-2-Medienstrom empfangen von einem Satellitenempfänger. In bestimmten Ausführungsformen bezieht sich ein Live-Medienstrom auf ein Medienprogramm, das zu einer bestimmten Zeit empfangen wird und das für die Verbreitung zu dieser bestimmten Zeit designiert ist. Zum Beispiel kann ein Programm derart konfiguriert sein, dass es um 20:00 Uhr PST läuft, und der Live-Medienstrom wird am Satellitenempfänger um 20:00 Uhr PST empfangen. Bei 303 wird der Medienstrom in GOPs abgegrenzt. In bestimmten Ausführungsformen werden Schlüssel-Frames identifiziert und verwendet, um Bildgruppen zu beginnen. Die GOPs können an dieser Stelle wahlweise vor der Übertragung bei 305 verschlüsselt werden.
  • Gemäß verschiedener Ausführungsformen kann ein Arbeitsdispatcher verwendet werden, um zu bestimmen, dass eine GOP zur Verfügung steht. Gemäß verschiedener Ausführungsformen befinden sich ein GOP-Abgrenzer und der Arbeitsdispatcher in unterschiedlichen Datenzentren und ein einzelner GOP-Transfer anstelle redundanter GOP-Transfers ist wünschenswert. Bei 307 werden multiple Wasserzeichenvarianten für multiple Fragmente erzeugt. In bestimmten Ausführungsformen werden multiple Wasserzeichenvarianten für einen Untersatz der Frames in einem Medienstrom erzeugt. Zum Beispiel können für jedes ungerade nummerierte Fragment in einem Medienstrom fünf Wasserzeichenvarianten bereitgestellt werden. In einem weiteren Beispiel werden variierende Zahlen von Wasserzeichenvarianten für ausgewählte Fragmente bereitgestellt. Die Fragmente können in ein Format, wie z. B. H.264, codiert werden. Codierte Fragmente werden bei 309 im verteilten Speicher gespeichert. Ein Benutzer kann dann auf einem bestimmten Qualitätslevel durch einen Fragmentserver kontinuierlich auf die codierten Fragmente zugreifen, wobei der Fragmentserver die Internetprotokoll(IP)-Verteilung der Medienstromfragmente in Echtzeit oder nahezu Echtzeit gestattet. Gemäß verschiedener Ausführungsformen können auch Fragmente mit verschiedenen Wasserzeichenvarianten in Zwischenspeichersystemen gespeichert werden.
  • 4 veranschaulicht ein Beispiel einer Technik zur Wasserzeichenvariantenübertragung. Gemäß verschiedener Ausführungsformen wird bei 401 eine Anfrage für ein Medienstromfragment empfangen. Gemäß verschiedener Ausführungsformen wird die Anfrage bei 403 zu einem ausgewählten Wasserzeichenvariantenfragment umgeleitet. In bestimmten Ausführungsformen kann das ausgewählte Wasserzeichenvariantenfragment zufällig bestimmt und/oder vorbestimmt werden. In einigen Beispielen wird eine Verteilungsfunktion verwendet, um die Zuordnung verschiedener Wasserzeichenvarianten derart auszugleichen, dass es wahrscheinlicher ist, dass einzelne Inhaltskonsumenten einmalige Sequenzen empfangen.
  • Gemäß verschiedener Ausführungsformen wird das Wasserzeichenvariantenfragment aus dem Cache, falls verfügbar, oder aus einem Fragmentserver 405 bereitgestellt. Der Benutzer und die Variantensequenz, die an den Benutzer gesendet wird, werden bei 407 verfolgt. Gemäß verschiedener Ausführungsformen wird die Variantensequenz bei 409 in einer Benutzerzugriffsdatenbank gespeichert. Der Benutzer wird bei 411 in einer Benutzerzugriffsdatenbank mit einer Variantensequenz in Zusammenhang gebracht. Gemäß verschiedener Ausführungsformen verwendet der Fragmentserver eine REST-API, die Cache-freundlich ist, sodass die meisten Anfragen, die an den Fragmentserver gestellt werden, zwischengespeichert werden können. Der Fragmentserver verwendet Cache-Steuerkopfzeilen und ETag-Kopfzeilen zum Bereitstellen der ordnungsgemäßen Hinweise auf Caches. Diese API stellt auch die Fähigkeit zur Verfügung, zu verstehen, wo ein bestimmter Benutzer die Wiedergabe gestoppt hat, und die Wiedergabe ab dieser Stelle zu starten (unter Bereitstellung der Fähigkeit zur Unterbrechung an einem Gerät und Fortsetzen an einem anderen).
  • Gemäß verschiedener Ausführungsformen enthält der Client eine Anwendungslogikkomponente und eine Medienwiedergabekomponente. Die Anwendungslogikkomponente stellt die Benutzerschnittstelle (UI – user interface) für den Benutzer dar und kommuniziert auch mit dem Frontend-Server, um für den Benutzer verfügbare Sendungen zu erhalten und zu authentifizieren. Als Teil dieses Prozesses sendet der Server URLs an Medienbestände zurück, die an die Medienwiedergabekomponente weitergegeben werden.
  • In bestimmten Ausführungsformen ist der Client auf die Tatsache angewiesen, dass jedes Fragment in einer fragmentierten MPEG-4-Datei eine Sequenznummer aufweist. Unter Verwendung dieses Wissens und einer gut definierten URL-Struktur zum Kommunizieren mit dem Server fordert der Client Fragmente einzeln an, als ob er separate Dateien von dem Server lesen würde, indem er einfach URLs für Dateien im Zusammenhang mit ansteigenden Sequenznummern anfordert. In einigen Ausführungsformen kann der Client Dateien anfordern, welche Strömen mit höherer oder niedriger Bitrate entsprechen, in Abhängigkeit vom Gerät und von den Netzwerkressourcen.
  • Da jedes Fragment die Informationen enthält, die benötigt werden, um die URL für die nächste Datei zu erstellen, werden keine speziellen Wiedergabelistendateien benötigt, und sämtliche Aktionen (Starten, Kanalwechsel, Suchen) können mit einer einzelnen HTTP-Anfrage durchgeführt werden. Nachdem jedes Fragment heruntergeladen wurde, bewertet der Client unter anderem die Größe des Fragmentes und die benötigte Zeit für dessen Download, um zu bestimmen, ob ein Herunterschalten notwendig ist oder ob genügend Bandbreite zur Verfügung steht, um eine höhere Bitrate anzufordern.
  • Weil jede Anfrage an den Server wie eine Anfrage an eine separate Datei aussieht, kann die Antwort auf Anfragen in jedem HTTP-Proxy zwischengespeichert oder über jeden HTTP-basierten CDN verbreitet werden.
  • 5 veranschaulicht ein Beispiel eines Computersystems. Gemäß bestimmter Ausführungsformen beinhaltet ein System 500, das zum Implementieren bestimmter Ausführungsformen der vorliegenden Erfindung geeignet ist, einen Prozessor 501, einen Speicher 503, eine Schnittstelle 511 und einen Bus 515 (z. B. ein PCI-Bus oder eine andere Verbindungsstruktur), und es funktioniert als ein Streaming-Server. Wenn er von einer geeigneten Software oder Firmware gesteuert wird, ist der Prozessor 501 verantwortlich für das Modifizieren und Übertragen von Live-Mediendaten an einen Client. Verschiedene speziell konfigurierte Geräte können auch anstelle eines Prozessors 501 oder zusätzlich zum Prozessor 501 verwendet werden. Die Schnittstelle 511 ist üblicherweise zum Senden und Empfangen von Datenpaketen oder Datenfragmenten über ein Netzwerk konfiguriert.
  • Zu bestimmten Beispielen von unterstützen Schnittstellen zählen Ethernet-Schnittstellen, Frame-Relais-Schnittstellen, Kabelschnittstellen, DSL-Schnittstellen, Token-Ring-Schnittstellen und dergleichen. Außerdem können verschiedene Ultrahochgeschwindigkeitsschnittstellen bereitgestellt sein, wie z. B. Fast-Ethernet-Schnittstellen, Gigabit-Ethernet-Schnittstellen, ATM-Schnittstellen, HSSI-Schnittstellen, POS-Schnittstellen, FDDI-Schnittstellen und dergleichen. Im Allgemeinen können diese Schnittstellen Anschlüsse beinhalten, die für die Kommunikation mit den entsprechenden Medien geeignet sind. In einigen Fällen kann dazu auch ein unabhängiger Prozessor und in einigen Fällen auch flüchtiger RAM gehören. Die unabhängigen Prozessoren können derartige kommunikationsintensive Aufgaben als Paketvermittlung, Mediensteuerung und -management steuern.
  • Gemäß verschiedener Ausführungsformen ist das System 500 ein Fragmentserver, der auch einen Sendeempfänger, Streaming-Puffer und eine Programmführungsdatenbank beinhaltet. Der Fragmentserver kann auch mit Teilnehmermanagement-, Protokollierungs- und Berichterstellungs- und Überwachungsfähigkeiten im Zusammenhang stehen. In bestimmten Ausführungsformen beinhaltet der Fragmentserver Funktionalität, um den Betrieb mit mobilen Geräten zu gestatten, wie z. B. Mobiltelefone, die in einem bestimmten Mobilnetz funktionieren und Teilnehmermanagement bereitstellen. Gemäß verschiedener Ausführungsformen verifiziert ein Authentifizierungsmodul die Identität von Geräten, einschließlich mobiler Geräte. Ein Protokollierungs- und Berichterstellungsmodul verfolgt Anfragen mobiler Geräte und die entsprechenden Antworten. Ein Überwachungssystem gestattet einem Administrator die Ansicht von Nutzungsmustern und Systemverfügbarkeit. Gemäß verschiedener Ausführungsformen handhabt der Fragmentserver Anfragen und Antworten für Medieninhalt-bezogene Transaktionen, während ein separater Streaming-Server tatsächliche Medienströme bereitstellt.
  • Obwohl ein bestimmter Fragmentserver beschrieben ist, sollte erkannt werden, dass eine Vielzahl alternativer Konfigurationen möglich ist. Zum Beispiel werden möglicherweise einige Module, wie ein Bericht- und Protokollierungsmodul und eine Monitor, nicht auf jedem Server benötigt. Alternativ dazu können die Module auf einem anderen Gerät, das mit dem Server verbunden ist, implementiert sein. In einem weiteren Beispiel beinhaltet der Server möglicherweise keine Schnittstelle zu einer abstrakten Einkaufsmaschine und kann tatsächlich die abstrakte Einkaufsmaschine selbst beinhalten. Es ist eine Vielzahl von Konfigurationen möglich.
  • In der vorstehenden Spezifikation wurde die Erfindung unter Verweis auf spezifische Ausführungsformen beschrieben. Jedoch wird ein Durchschnittsfachmann auf dem Gebiet erkennen, dass verschiedene Modifikationen und Veränderungen vorgenommen werden können, ohne sich vom Umfang der Erfindung zu entfernen, wie in den Ansprüchen unten dargelegt. Dementsprechend sind die Spezifikation und die Figuren vielmehr in einem veranschaulichenden als in einem einschränkenden Sinn zu sehen, und sämtliche derartigen Modifikationen sollen im Umfang der Erfindung enthalten sein.

Claims (20)

  1. Verfahren, welches Folgendes umfasst: Empfangen eines Medienstromes; Fragmentieren des Medienstromes in mehrere Fragmente, einschließlich eines ersten Fragmentes und eines zweiten Fragmentes; Erzeugen mehrerer Wasserzeichenvarianten der mehreren Fragmente, einschließlich einer ersten Wasserzeichenvariante erstes Fragment (V1F1) und einer zweiten Wasserzeichenvariante erstes Fragment (V2F1) und einer ersten Wasserzeichenvariante zweites Fragment (V1F2) und einer zweiten Wasserzeichenvariante zweites Fragment (V2F2); und Senden einer ersten Sequenz von Fragmenten an einen ersten Client und einer zweiten Sequenz von Fragmenten an einen zweiten Client, wobei die erste Sequenz von Fragmenten die erste Wasserzeichenvariante erstes Fragment (V1F1) und die zweite Wasserzeichenvariante zweites Fragment (V2F2) beinhaltet und die zweite Sequenz von Fragmenten die zweite Wasserzeichenvariante erstes Fragment (V2F1) und die erste Wasserzeichenvariante zweites Fragment (V1F2) beinhaltet, wobei eine bestimmte Sequenz V1F1 und V2F2 geeignet ist, den ersten Client zu identifizieren und eine bestimmte Sequenz V2F1 und V1F2 geeignet ist, den zweiten Client zu identifizieren.
  2. Verfahren nach Anspruch 1, wobei eine Übereinstimmung zwischen der bestimmten Sequenz V1F1 und V2F2 und dem ersten Client und eine Übereinstimmung zwischen der bestimmten Sequenz V2F1 und V1F2 und dem zweiten Client in einer Benutzerzugriffsdatenbank gespeichert wird.
  3. Verfahren nach Anspruch 1, wobei eine bestimmte Sequenz V1F1 und V1F2 an einen dritten Client gesendet wird und zum Identifizieren eines dritten Client geeignet ist.
  4. Verfahren nach Anspruch 1, wobei eine bestimmte Sequenz V2F1 und V2F2 an einen vierten Client gesendet wird und zum Identifizieren eines vierten Client geeignet ist.
  5. Verfahren nach Anspruch 1, wobei eine dritte Wasserzeichenvariante erstes Fragment (V3F1) erzeugt wird.
  6. Verfahren nach Anspruch 1, wobei die mehreren Fragmente ein drittes Fragment beinhalten.
  7. Verfahren nach Anspruch 6, wobei das dritte Fragment keine unterschiedlichen Wasserzeichenvarianten aufweist.
  8. Verfahren nach Anspruch 1, wobei der Medienstrom an einem Fragmentserver empfangen wird.
  9. Verfahren nach Anspruch 1, wobei eine bestimmte Sequenz von Wasserzeichenvarianten-Fragmenten als ein Benutzeridentifikator dient.
  10. Verfahren nach Anspruch 1, wobei die bestimmte Sequenz von Wasserzeichenvarianten-Fragmenten zufällig erzeugt und in der Benutzerzugriffsdatenbank im Zusammenhang mit einem Fragmentserver gespeichert wird.
  11. Verfahren nach Anspruch 1, wobei der Client ein Clientgerät ist.
  12. Verfahren nach Anspruch 1, wobei der Client ein Benutzer ist.
  13. System, welches Folgendes umfasst: eine Eingabeschnittstelle, die zum Empfangen eines Medienstromes geeignet ist; einen Prozessor, der zum Fragmentieren des Medienstromes in mehrere Fragmente, einschließlich eines ersten Fragmentes und eines zweiten Fragmentes, und Erzeugen mehrerer Wasserzeichenvarianten der mehreren Fragmente, einschließlich einer ersten Wasserzeichenvariante erstes Fragment (V1F1) und einer zweiten Wasserzeichenvariante erstes Fragment (V2F1) und einer ersten Wasserzeichenvariante zweites Fragment (V1F2) und einer zweiten Wasserzeichenvariante zweites Fragment (V2F2), geeignet ist; und eine Ausgabeschnittstelle, die zum Senden einer ersten Sequenz von Fragmenten an einen ersten Client und einer zweiten Sequenz von Fragmenten an einen zweiten Client geeignet ist, wobei die erste Sequenz von Fragmenten die erste Wasserzeichenvariante erstes Fragment (V1F1) und die zweite Wasserzeichenvariante zweites Fragment (V2F2) beinhaltet und die zweite Sequenz von Fragmenten die zweite Wasserzeichenvariante erstes Fragment (V2F1) und die erste Wasserzeichenvariante zweites Fragment (V1F2) beinhaltet, wobei eine bestimmte Sequenz V1F1 und V2F2 zum Identifizieren des ersten Client geeignet ist und eine bestimmte Sequenz V2F1 und V1F2 zum Identifizieren des zweiten Client geeignet ist.
  14. System nach Anspruch 13, wobei eine Übereinstimmung zwischen der bestimmten Sequenz V1F1 und V2F2 und dem ersten Client und eine Übereinstimmung zwischen der bestimmten Sequenz V2F1 und V1F2 und dem zweiten Client in einer Benutzerzugriffsdatenbank gespeichert wird.
  15. System nach Anspruch 13, wobei eine bestimmte Sequenz V1F1 und V1F2 an einen dritten Client gesendet wird und zum Identifizieren eines dritten Client geeignet ist.
  16. System nach Anspruch 13, wobei eine bestimmte Sequenz V2F1 und V2F2 an einen vierten Client gesendet wird und zum Identifizieren eines vierten Client geeignet ist.
  17. System nach Anspruch 13, wobei eine dritte Wasserzeichenvariante erstes Fragment (V3F1) erzeugt wird.
  18. System nach Anspruch 13, wobei die mehreren Fragmente ein drittes Fragment beinhalten.
  19. System nach Anspruch 18, wobei das dritte Fragment keine unterschiedlichen Wasserzeichenvarianten aufweist.
  20. Computerlesbares Speichermedium, welches Folgendes umfasst: Computercode zum Empfangen eines Medienstromes; Computercode zum Fragmentieren des Medienstromes in mehrere Fragmente, einschließlich eines ersten Fragmentes und eines zweiten Fragmentes; Computercode zum Erzeugen mehrerer Wasserzeichenvarianten der mehreren Fragmente, einschließlich einer ersten Wasserzeichenvariante erstes Fragment (V1F1) und einer zweiten Wasserzeichenvariante erstes Fragment (V2F1) und einer ersten Wasserzeichenvariante zweites Fragment (V1F2) und einer zweiten Wasserzeichenvariante zweites Fragment (V2F2); und Computercode zum Senden einer ersten Sequenz von Fragmenten an einen ersten Client und einer zweiten Sequenz von Fragmenten an einen zweiten Client, wobei die erste Sequenz von Fragmenten die erste Wasserzeichenvariante erstes Fragment (V1F1) und die zweite Wasserzeichenvariante zweites Fragment (V2F2) beinhaltet und die zweite Sequenz von Fragmenten die zweite Wasserzeichenvariante erstes Fragment (V2F1) und die erste Wasserzeichenvariante zweites Fragment (V1F2) beinhaltet, wobei eine bestimmte Sequenz V1F1 und V2F2 zum Identifizieren des ersten Client geeignet ist und eine bestimmte Sequenz V2F1 und V1F2 zum Identifizieren des zweiten Client geeignet ist.
DE112013000995.1T 2012-02-17 2013-02-06 Skalierbare Wasserzeicheneinfügung für fragmentierte Medienstrom-Bereitstellung Withdrawn DE112013000995T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/399,377 US9330429B2 (en) 2012-02-17 2012-02-17 Scalable watermark insertion for fragmented media stream delivery
US13/399,377 2012-02-17
PCT/US2013/024840 WO2013122791A1 (en) 2012-02-17 2013-02-06 Scalable watermark insertion for fragmented media stream delivery

Publications (1)

Publication Number Publication Date
DE112013000995T5 true DE112013000995T5 (de) 2014-12-04

Family

ID=48983266

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013000995.1T Withdrawn DE112013000995T5 (de) 2012-02-17 2013-02-06 Skalierbare Wasserzeicheneinfügung für fragmentierte Medienstrom-Bereitstellung

Country Status (4)

Country Link
US (1) US9330429B2 (de)
DE (1) DE112013000995T5 (de)
GB (1) GB2514306A (de)
WO (1) WO2013122791A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9330429B2 (en) 2012-02-17 2016-05-03 Mobitv, Inc. Scalable watermark insertion for fragmented media stream delivery

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9749136B2 (en) * 2012-02-24 2017-08-29 Comcast Cable Communications, Llc Method for watermarking content
US9219929B2 (en) * 2012-02-27 2015-12-22 Fritz Barnes Enhanced startup and channel change for fragmented media stream delivery
AP2015008555A0 (en) * 2012-11-26 2015-06-30 Irdeto Bv Obtaining a version of an item of content
KR101801590B1 (ko) 2013-12-03 2017-11-27 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법 및 방송 신호 수신 방법
US9516359B2 (en) * 2015-04-07 2016-12-06 Divx, Llc Session based watermarking of media content using encrypted content streams
WO2018154381A1 (en) * 2017-02-24 2018-08-30 Telefonaktiebolaget Lm Ericsson (Publ) System and method for watermarking of media segments using sample variants for normalized encryption (svne)
US10839053B2 (en) 2018-01-12 2020-11-17 Cisco Technology, Inc. Secure watermark for an adaptive bitrate client

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1134977A1 (de) * 2000-03-06 2001-09-19 Irdeto Access B.V. Verfahren und System zur Herstellung von Kopien von verschlüsseltem Inhalt mit einzigartigen Wasserzeichen, und System zur Entschlüsselung von verschlüsseltem Inhalt
US6760464B2 (en) * 2000-10-11 2004-07-06 Digimarc Corporation Halftone watermarking and related applications
AU2001294168A1 (en) 2000-10-03 2002-04-15 Vidius Inc. Secure distribution of digital content
US7398395B2 (en) 2001-09-20 2008-07-08 Koninklijke Philips Electronics N.V. Using multiple watermarks to protect content material
US7392392B2 (en) * 2001-12-13 2008-06-24 Digimarc Corporation Forensic digital watermarking with variable orientation and protocols
US7188248B2 (en) * 2002-07-09 2007-03-06 Kaleidescope, Inc. Recovering from de-synchronization attacks against watermarking and fingerprinting
US20050025463A1 (en) * 2003-06-20 2005-02-03 Bloom Jeffrey Adam Method and apparatus for creating multiple unique copies of content
NZ544824A (en) * 2003-06-23 2007-10-26 Sony Pictures Entertainment Fingerprinting of data
GB2419249B (en) * 2004-10-15 2007-09-26 Zootech Ltd Watermarking in an audiovisual product
JP4701748B2 (ja) * 2005-02-25 2011-06-15 ソニー株式会社 情報処理装置、情報記録媒体製造装置、情報記録媒体、および方法、並びにコンピュータ・プログラム
CN100461864C (zh) 2005-06-25 2009-02-11 华为技术有限公司 基于数字水印的多媒体视频通信客观质量评价方法
AU2007236534B2 (en) * 2006-02-13 2012-09-06 Vividas Technologies Pty Ltd Method, system and software product for streaming content
DE602006017001D1 (de) * 2006-06-29 2010-10-28 Thomson Licensing System und verfahren für objektorientierte fingerabdrücke digitaler videos
US20090019525A1 (en) * 2007-07-13 2009-01-15 Dachuan Yu Domain-specific language abstractions for secure server-side scripting
WO2010025779A1 (en) * 2008-09-08 2010-03-11 Telefonaktiebolaget L M Ericsson (Publ) Provision of marked data content to user devices of a communications network
EP2204979A1 (de) 2008-12-30 2010-07-07 Irdeto Access B.V. Fingerabdruckerzeugung eines Datenobjekts mit mehrfachen Wasserzeichen
US9237387B2 (en) * 2009-10-06 2016-01-12 Microsoft Technology Licensing, Llc Low latency cacheable media streaming
US8392748B2 (en) * 2009-10-06 2013-03-05 Microsoft Corporation Reliable media streaming
EP3333741B1 (de) * 2010-02-17 2019-07-31 Verimatrix, Inc. Systeme und verfahren zum schutz von mit einer wiedergabeliste abgespielten inhalten
US9596522B2 (en) * 2010-06-04 2017-03-14 Mobitv, Inc. Fragmented file structure for live media stream delivery
US8848969B2 (en) 2011-06-06 2014-09-30 Time Warner Cable Enterprises Llc Methods and apparatus for watermarking and distributing watermarked content
US9330429B2 (en) 2012-02-17 2016-05-03 Mobitv, Inc. Scalable watermark insertion for fragmented media stream delivery

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9330429B2 (en) 2012-02-17 2016-05-03 Mobitv, Inc. Scalable watermark insertion for fragmented media stream delivery

Also Published As

Publication number Publication date
GB201415929D0 (en) 2014-10-22
US9330429B2 (en) 2016-05-03
WO2013122791A1 (en) 2013-08-22
GB2514306A (en) 2014-11-19
US20130219182A1 (en) 2013-08-22

Similar Documents

Publication Publication Date Title
DE112013000995T5 (de) Skalierbare Wasserzeicheneinfügung für fragmentierte Medienstrom-Bereitstellung
EP3011752B1 (de) Konzept zur bestimmung der qualität eines mediadatenstroms mit variierender qualität-zu-bitrate
US11743519B2 (en) Fragment server directed device fragment caching
DE112012001770T5 (de) Auf Echtzeitverarbeitungsfähigkeit basierende Qualitätsanpassung
DE112012002159T5 (de) Kontextsensitive Client-Pufferschwellenwerte
DE112009000898T5 (de) Dynamische Ersetzung von Werbeströmen
US9386331B2 (en) Optimizing video clarity
DE112006004258B4 (de) Serielle und parallele Verarbeitung von Daten unter Verwendung von Informationen über die Daten und Informationen über ein Streaming-Netz
CN107615756B (zh) 一种用于实现快速平滑视点切换的视频服务器、方法及视频系统
US9197900B2 (en) Localized redundancy for fragment processing
DE112011101911T5 (de) Fragmentierte Dateistruktur für die Ausgabe von Live-Medien-Streams
DE112013001136T5 (de) Effiziente Abgrenzung und Verteilung von Media-Segmenten
US9838455B2 (en) Fast encoding of live streaming media content
US20140086445A1 (en) Watermarking of digital video
CA2936176A1 (en) Streaming multiple encodings encoded using different encoding parameters
US20190045230A1 (en) Distributed scalable encoder resources for live streams
US10148990B2 (en) Video streaming resource optimization
US20130064286A1 (en) Weighted encoder fragment scheduling
DE112011101004T5 (de) Medienkonvergenzplattform
DE112012004994T5 (de) Verbesserte Bildergruppen-(GOP)-Ausrichtung in Medienstromvarianten
Song et al. Design and evaluation of remote video surveillance system on private cloud
US20240155019A1 (en) Synchronizing independent media and data streams using media stream synchronization points
US9219929B2 (en) Enhanced startup and channel change for fragmented media stream delivery
US11356722B2 (en) System for distributing an audiovisual content
Karn et al. User-perceived quality aware adaptive streaming of 3D multi-view video plus depth over the internet

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: HASELTINE LAKE KEMPNER LLP, DE

Representative=s name: HASELTINE LAKE LLP, DE

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