-
GEBIET DER ERFINDUNG
-
Die Erfindung betrifft das Ersetzen von Werbeströmen in Medienströmen.
-
BESCHREIBUNG DES STANDS DER TECHNIK
-
Zum Transportieren von Video- und Audiodaten über Netzwerke werden Protokolle wie das Real-Time Transport Protocol (RTP) verwendet. Eine getrennte Sitzung wird zum Befördern eines jeden Inhaltsstroms verwendet, beispielsweise eines Video- oder Audiostroms. RTP spezifiziert ein Standard-Paketformat, das zum Befördern von Video- und Audiodaten verwendet wird, etwa Videodaten gemäß der Moving Pictures Expert Group (MPEG), die MPEG-2 und MPEG-4 Videoframes enthalten. In vielen Fällen sind zahlreiche Frames in einem einzigen RTP-Paket enthalten. Die MPEG-Frames selbst können Referenzframes sein oder Frames, die bezogen auf einen Referenzframe codiert sind.
-
Herkömmliche Verfahren und Mechanismen zum Bereitstellen von Werbeströmen in Medienströmen unterliegen Einschränkungen. In vielen Fällen lassen sich Videoströme nicht auf wirksame und effektive Weise modifizieren. Daher wünscht man, Verfahren und Mechanismen bereitzustellen, um Werbeströme wie beispielsweise Videoströme und Audioströme zu liefern.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Man versteht die Offenbarung anhand der folgenden Beschreibung zusammen mit den beiliegenden Zeichnungen, die besondere Ausführungsformen erläutern, am besten.
-
Es zeigt:
-
1 ein beispielhaftes System zum Gebrauch mit Ausführungsformen der Erfindung;
-
2 ein Beispiel für ein Paket gemäß dem Real-Time Transport Protocol (RTP);
-
3 ein Beispiel für einen RTP-Strom;
-
4 ein Beispiel für die Veränderung eines RTP-Stroms, die das Entfernen und Einfügen von Paketen umfasst;
-
5 ein Beispiel einer ad-Ersetzung in einem RTP-Strom;
-
6 ein Verarbeitungsflussdiagramm einer Vorgehensweise für die Profilerstellung und ad-Ersetzung; und
-
7 ein Beispiel eines Systems zum Verarbeiten von Medienströmen.
-
BESCHREIBUNG BEISPIELHAFTER AUSFÜHRUNGSFORMEN
-
Es wird nun ausführlich Bezug auf einige besondere Beispiele der Erfindung genommen, von denen die Erfinder glauben, dass sie die besten Weisen zum Umsetzen der Erfindung enthalten. Beispiele dieser besonderen Ausführungsformen sind in den beiliegenden Zeichnungen erläutert. Obwohl die Erfindung in Verbindung mit diesen besonderen Ausführungsformen beschrieben wird, ist natürlich nicht beabsichtigt, die Erfindung auf die beschriebenen Ausführungsformen einzuschränken. Es ist im Gegenteil beabsichtigt, Alternativen, Abwandlungen und gleichwertige Formen abzudecken, die im Bereich der Erfindung enthalten sein können, der durch die beigefügten Ansprüche definiert ist.
-
Die Vorgehensweisen der Erfindung werden beispielsweise im Zusammenhang mit dem Real-Time Transport Protocol (RTP) und dem Real-Time Streaming Protocol (RTSP) beschrieben. Die Vorgehensweisen der Erfindung sind jedoch auch auf Varianten von RTP und RTSP anwendbar. In der folgenden Beschreibung werden zahlreiche besondere Einzelheiten angegeben, damit man die Erfindung gut verstehen kann. Besondere Beispielausführungsformen der Erfindung können ohne einige oder alle diese besonderen Einzelheiten implementiert werden. In anderen Fällen wurden bekannte Verarbeitungsoperationen nicht in Einzelheiten beschrieben, um die Erfindung nicht unnötig schwerer verständlich zu machen.
-
Verschiedene Vorgehensweisen und Mechanismen der Erfindung sind manchmal zum besseren Verständnis als Einzelfall beschrieben. Man beachte jedoch, dass manche Ausführungsformen zahlreiche Iterationen einer Vorgehensweise oder zahlreiche Anwendungsfälle eines Mechanismus enthalten, solange nichts anderes angegeben wird. In einem System wird beispielsweise ein Prozessor in verschiedenen Zusammenhängen verwendet. Natürlich kann man in einem System mehrere Prozessoren verwenden, ohne den Bereich der Erfindung zu verlassen, solange nichts anderes angegeben wird. Zudem beschreiben die Vorgehensweisen und Mechanismen der Erfindung gelegentlich eine Verbindung zwischen zwei Einheiten. Man beachte, dass eine Verbindung zwischen zwei Einheiten nicht notwendig eine direkte ungehinderte Verbindung bedeutet, da sich diverse andere Einheiten zwischen den zwei Einheiten befinden können. Beispielsweise kann ein Prozessor mit einem Speicher verbunden sein; selbstverständlich können sich zwischen dem Prozessor und dem Speicher verschiedene Bridges und Controller befinden. Folglich bezeichnet eine Verbindung nicht notwendig eine direkte ungehinderte Verbindung, solange nichts anderes angegeben wird.
-
Überblick
-
Es werden Mechanismen zum Erzeugen und Modifizieren von Echtzeit-Medienströmen bereitgestellt. Eine Vorrichtung baut eine Sitzung auf, um einen Medienstrom von einem Inhalteserver zu erhalten. Der Inhalteserver liefert den Medienstrom an die Vorrichtung. Der Inhalteserver gewinnt auch einen Einfügestrom für die Aufnahme in den Medienstrom. Aus dem Medienstrom werden Pakete entfernt, um die Aufnahme des Einfügestroms zu ermöglichen. Zeitstempelinformation und Folgennummerinformation werden gehalten und modifiziert, um ein Liefern des veränderten Medienstroms ohne Veränderung einer Vorrichtungsanwendung zu ermöglichen.
-
Beispielausführungsformen
-
Zum Liefern von Medienströmen an Vorrichtungen werden unterschiedliche Mechanismen verwendet. In besonderen Beispielen setzt ein Client eine Sitzung auf, beispielsweise eine Sitzung mit Hilfe des Real-Time Streaming Protocols (RTSP). Ein Servercomputer empfängt eine Verbindung für einen Medienstrom, setzt eine Sitzung auf und liefert einen Medienstrom an eine Clientvorrichtung. Der Medienstrom enthält Pakete, in die Frames eingeschlossen sind, beispielsweise Frames gemäß der Moving Pictures Expert Group (MPEG). Die MPEG-Frames selbst können Schlüsselframes oder Differenzframes sein. Die besondere Verkapselungstechnik, die der Server verwendet, hängt von der Art des Inhalts, dem Format dieses Inhalts, dem Format der Nutzlast und den Anwendungs- und Übertragungsprotokollen ab, die zum Senden der Daten verwendet werden. Nach dem Empfang des Medienstroms durch die Clientvorrichtung entpackt die Clientvorrichtung die Pakete, um die MPEG-Frames zu erhalten, und sie decodiert die MPEG-Frames, um die tatsächlichen Mediendaten zu erhalten.
-
In vielen Fällen bezieht ein Servercomputer Mediendaten aus verschiedenen Quellen, beispielsweise von Medienbibliotheken, Kabelanbietern, Satellitenanbietern, und verarbeitet die Mediendaten zu MPEG-Frames, beispielsweise MPEG-2- oder MPEG-4-Frames. In bestimmten Fällen ist das Codieren von Video und Audio in Frames im MPEG-Format eine Aufgabe, die viele Ressourcen erfordert. Folglich codieren Servercomputer häufig nur eine begrenzte Anzahl von Strömen für einen bestimmten Kanal. In besonderen Beispielen kann ein Servercomputer sechs Medienströme mit schwankenden Bitraten für einen bestimmten Kanal zur Verteilung an eine Anzahl unterschiedliche Vorrichtungen codieren. Es können jedoch tausende unterschiedlicher Benutzer einen bestimmten Kanal sehen. In manchen Fällen ist es erwünscht, den Anwendern ein stärker auf sie zugeschnittenes und individualisiertes Seherlebnis zu bieten.
-
Manche herkömmliche Systeme erlauben es einem Benutzer mit einem bestimmten Client, einen Medienstrom zum Ansehen oder Anhören auszuwählen. Anstatt den geforderten Medienstrom zu liefern kann ein Inhalteserver einen Werbestrom zum Benutzer senden, bevor er den geforderten Medienstrom überträgt. Der Umfang des Werbestroms ist begrenzt, da er nur am Beginn des Medienstroms eingefügt werden kann. Das erste Merkmal des Werbestroms erfordert einen Client, der eine Anwendung aufweist, die das bestimmte Merkmal unterstützt. Von der Client-Anwendung wird auch gefordert, dass sie einen Puffervorgang erneut startet oder sogar eine Sitzung neu startet, bevor sie den geforderten Medienstrom abspielt. Es wird in Betracht gezogen, dass ein Werbestrom auch am Ende eines Medienstroms geliefert wird. Es gelten jedoch die gleichen Einschränkungen, da die Client-Anwendung das besondere eingestellte Merkmal unterstützen muss, und es muss ein Puffervorgang erneut gestartet werden oder sogar eine Sitzung neu gestartet werden, um den Werbestrom abzuspielen.
-
Ein weiterer Mechanismus zum Verändern von Medienströmen erfordert das Modifizieren des Mediums selbst. Beispielsweise kann ein MPEG-Medienstrom decodiert werden, um einzelne Frames zu erhalten. Die einzelnen Datenframes können nun durch Ersetzungsframes ersetzt werden. Hierzu ist jedoch das Entpacken von RTP-Paketen erforderlich sowie das Decodieren der MPEG-Frames, wobei es sich um eine Prozedur handelt, die viele Ressourcen verbraucht. Nach dem Modifizieren der Videodaten werden die Videodaten erneut als MPEG-Frames codiert und neu in RTP-Paketen verpackt. Das Ausführen dieser Operationen für Medien wie Videoclips beansprucht viele Ressourcen. Das Ausführen dieser Operationen für Echtzeitvideo ist nicht praktikabel oder nur in sehr begrenztem Umfang machbar.
-
Folglich erlauben die Vorgehensweisen und Mechanismen der Erfindung das Abwandeln von Medienströmen auf wirksame und effektive Weise.
-
Gemäß diversen Ausführungsformen wird ein Echtzeitstrom so modifiziert, dass voreingestellte Werbeinhalte durch gezielte Werbeinhalte ersetzt werden. In bestimmten Beispielen erhält ein Inhalteserver einen Echtzeitstrom, der voreingestellte Werbeinhalte enthält, von einem Inhalteanbieter. Ein Inhalteserver erhält auch Profilinformation über einen bestimmten Benutzer. Die Profilinformation kann Kaufpräferenzen, Alter, Ort, Sehpräferenzen usw. umfassen. Der Inhalteserver nutzt die Profilinformation dazu, in intelligenter Weise gezielt Werbung für den bestimmten Benutzer auszuwählen. Der Inhalteserver kann auch Information darüber halten, welche Werbung der bestimmte Benutzer bereits gesehen hat.
-
Gemäß verschiedener Ausführungsformen erkennt der Inhalteserver den Beginn einer Werbung und ersetzt die Werbung durch eine gezielte Werbung. In bestimmten Beispielen wird die Werbung durch eine kompatible Werbung ersetzt, die ähnliche Bitraten und Zeitbeschränkungen aufweist. Es wird auch Folgeninformation gehalten und/oder verändert, damit ein nahtloser Betrieb der Clientvorrichtung möglich ist. Die Clientanwendung braucht keine Sitzung neu zu starten oder einen Strom neu zu Puffern.
-
1 zeigt in skizzenhafter Darstellung ein Beispiel eines Systems, in dem die Vorgehensweisen und Mechanismen der Erfindung verwendbar sind. Entsprechend zu diversen Ausführungsformen sind Inhalteserver 119, 121, 123 und 125 dafür konfiguriert, einer mobilen Vorrichtung 101 Medieninhalte zu liefern, und zwar mit Protokollen wie RTP und RTCP. Obwohl eine mobile Vorrichtung 101 dargestellt ist, kann man natürlich auch andere Vorrichtungen verwenden, beispielsweise Vorschaltgeräte und Computersysteme. In bestimmten Beispielen können die Inhalteserver 119, 121, 123 und 125 selbst Sitzungen mit mobilen Vorrichtungen aufsetzen und Video- und Audioinhalte an mobile Vorrichtungen übertragen. Natürlich kann man in vielen Fällen einen eigenen Controller, beispielsweise den Controller 105 oder Controller 107, dazu verwenden, die Sitzungsverwaltung mit einem Protokoll wie RTSP vorzunehmen. Man weiß, dass die Inhalteserver den Löwenanteil der Verarbeitungsleistung und Ressourcen erfordern, die zum Liefern von Medieninhalten an mobile Vorrichtungen verwendet werden. Die Sitzungsverwaltung selbst kann wesentlich weniger Transaktionen umfassen. Folglich kann ein Controller eine wesentlich größere Anzahl an mobilen Vorrichtungen bedienen als ein Inhalteserver. In manchen Beispielen kann ein Inhalteserver gleichzeitig mit Tausenden von mobilen Vorrichtungen Wechselwirken, wogegen ein Controller, der die Sitzungsverwaltung vornimmt, Millionen mobiler Vorrichtungen gleichzeitig verwalten kann.
-
Durch das Trennen der Inhalteübertragung nach außen und der Sitzungsverwaltungsfunktionen kann ein Controller einen Inhalteserver wählen, der sich räumlich in der Nähe der mobilen Vorrichtung 101 befindet. Die Anpassung ist auch einfacher, da man Inhalteserver und Controller einfach nach Bedarf zusammenfügen kann, ohne die Systemoperationen zu unterbrechen. Ein Lastausgleicher 103 kann die Wirksamkeit während der Sitzungsverwaltung mit RTSP 133 weiter steigern, indem er einen Controller mit geringer Verzögerung und hohem Durchsatz wählt.
-
Gemäß verschiedener Ausführungsformen haben die Inhalteserver 119, 121, 123 und 125 Zugriff auf einen Kampagnenserver 143. Der Kampagnenserver 143 liefert Profilinformation für verschiedene mobile Vorrichtungen 101. In einigen Beispielen ist der Kampagnenserver 143 selbst ein Inhalteserver oder ein Controller. Der Kampagnenserver 143 kann von äußeren Quellen Informationen über Vorrichtungen wie die mobile Vorrichtung 101 empfangen. Die Information kann Profilinformation sein, die verschiedenen Benutzern der mobilen Vorrichtungen zugeordnet sind und Interessen und Hintergrund enthalten. Der Kampagnenserver 143 kann auch die Aktivität von diversen Vorrichtungen überwachen, um Informationen über die Vorrichtungen zu sammeln. Die Inhalteserver 119, 121, 123 und 125 können vom Kampagnenserver 143 Informationen über die diversen Vorrichtungen erhalten. In besonderen Beispielen nutzt ein Inhalteserver 125 den Kampagnenserver 143 für die Feststellung, welche Art von Medienclips ein Benutzer einer mobilen Vorrichtung 101 gerne ansieht.
-
Gemäß verschiedener Ausführungsformen empfangen die Inhalteserver 119, 121, 123 und 125 auch Medienströme von Inhalteanbietern, beispielsweise Satellitenanbietern oder Kabelanbietern, und senden die Ströme mit Hilfe von RTP 131 an Vorrichtungen. In besonderen Beispielen greifen die Inhalteserver 119, 121, 123 und 125 auf eine Datenbank 141 zu, um gewünschte Inhalte zu erlangen, die man zum Ergänzen der Ströme von Satelliten- und Kabelanbietern verwenden kann. In einem Beispiel verlangt eine mobile Vorrichtung 101 einen bestimmten Strom. Ein Controller 107 baut eine Sitzung mit der mobilen Vorrichtung 101 auf, und der Inhalteserver 125 beginnt mit dem Übertragen des Inhalts an die mobile Vorrichtung 101 mit Hilfe von RTP 131. In besonderen Beispielen erhält der Inhalteserver 125 Profilinformationen von dem Kampagnenserver 143.
-
In manchen Beispielen kann der Inhalteserver 125 auch aus anderen Quellen Profilinformation erhalten, beispielsweise von der mobilen Vorrichtung 101 selbst. Mit Hilfe der Profilinformation kann der Inhalteserver einen Clip aus einer Datenbank 141 auswählen, damit er einem Benutzer geliefert wird. In manchen Fällen wird der Clip in einen Echtzeitstrom eingefügt, ohne dass die Leistung der Anwendung der mobilen Vorrichtung beeinträchtig wird. In anderen Fällen wird der Echtzeitstrom selbst durch einen anderen Echtzeitstrom ersetzt. Der Inhalteserver nimmt Verarbeitungen vor, damit der Übergang zwischen Strömen und Clips aus Sicht der Anwendung auf einer mobilen Vorrichtung nahtlos erfolgt. In anderen Beispielen kann Werbung in einer Datenbank 141 intelligent aus der Datenbank 141 ausgewählt werden, und zwar mit Hilfe der Profilinformation von einem Kampagnenserver 143, und dazu verwendet werden, voreingestellte Werbung in einem Echtzeitstrom nahtlos zu ersetzen. Die Inhalteserver 119, 121, 123 und 125 besitzen die Fähigkeit, RTP-Pakete so zu manipulieren, dass das Einfügen und Entfernen von Medieninhalten möglich ist.
-
2 zeigt ein Beispiel für ein RTP-Paket. Ein RTP-Paket 201 enthält einen Kopfeintrag 211. In verschiedenen Ausführungsformen enthält der Kopfeintrag 211 Informationen wie etwa die Versionsnummer, den Umfang der Auffüllung, der Protokollerweiterungen, des Anwendungsniveaus, des Nutzlastformats usw. Das RTP-Paket 201 enthält auch eine Folgennummer 213. Clientanwendungen, die RTP-Pakete empfangen, erwarten, dass die Folgennummern für empfangene Pakete eindeutig sind. Haben unterschiedliche Pakete die gleiche Folgennummer, so können Verarbeitungsfehler auftreten. RTP-Pakete weisen auch einen Zeitstempel 215 auf, der Schwankungs- und Synchronisierberechnungen erlaubt. Die Felder 217 und 219 kennzeichnen die Synchronisierquelle und die beitragende Quelle. Im Feld 221 sind Erweiterungen vorhanden.
-
In verschiedenen Ausführungsformen enthalten die Daten 231 tatsächliche Mediendaten, etwa MPEG-Frames. In einigen Beispielen enthält ein einzelnes RTP-Paket 201 einen einzigen MPEG-Frame. In vielen Fällen sind mehrere RTP-Pakete erforderlich, um einen einzigen MPEG-Frame zu halten. In den Fällen, in denen mehrere RTP-Pakete für einen einzigen MPEG-Frame erforderlich sind, wechseln die Folgennummern mit den RTP-Paketen, wogegen der Zeitstempel 215 für alle unterschiedlichen RTP-Pakete gleich bleibt. Unterschiedliche MPEG-Frames enthalten I-Frames, P-Frames und B-Frames. I-Frames sind Intraframes, die vollständig aus sich selbst heraus codiert sind. P-Frames sind vorhergesagte Frames, die Information von einem vorhergehenden I-Frame oder P-Frame benötigen. B-Frames sind bidirektional vorhergesagte Frames, die Information von umgebenden I-Frames und P-Frames benötigen.
-
Da verschiedene MPEG-Frames eine unterschiedliche Anzahl von RTP-Paketen für die Übertragung benötigen, können zwei verschiedene Ströme mit der gleichen Zeitdauer eine unterschiedliche Anzahl von RTP-Paketen für die Übertragung benötigen. Das einfache Ersetzen eines Clips durch einen anderen Clip funktioniert so nicht, da die Clips eine unterschiedliche Anzahl von RTP-Paketen aufweisen können und unterschiedliche Auswirkungen auf die Folgennummern von nachfolgenden Paketen haben.
-
3 zeigt ein Beispiel für einen RTP-Paketstrom. Ein RTP-Paketstrom 301 enthält einzelne Pakete, die unterschiedliche Felder und Nutzlastdaten enthalten. In verschiedenen Ausführungsformen umfassen die Felder einen Zeitstempel 303, eine Folge 305, eine Markierung 307 usw. Die Pakete enthalten auch Nutzlastdaten 309, die MPEG-Frames enthalten, beispielsweise I-, P- und B-Frames. Die Zeitstempel für unterschiedliche Pakete können gleich sein. In bestimmten Beispielen haben einige Pakete, die Teile des gleichen I-Frames befördern, den gleichen Zeitstempel. Die Folgennummern unterscheiden sich jedoch für jedes Paket. Markierungsbits 307 kann man für unterschiedliche Zwecke verwenden, beispielsweise zum Signalisieren des Anfangspunkts einer Werbung.
-
Gemäß verschiedener Ausführungsformen befördern Pakete mit den Folgennummern 4303, 4304 und 4305 Teile des gleichen I-Frames und besitzen den gleichen Zeitstempel mit dem Wert 6. Pakete mit den Folgennummern 4306, 4307, 4308 und 4309 befördern P-, B-, P- und P-Frames und weisen jeweils die Zeitstempel 7, 8, 9 und 10 auf. Pakete mit den Folgennummern 4310 und 4311 befördern unterschiedliche Teile des gleichen I-Frames und haben beide den gleichen Zeitstempel mit dem Wert 11. Pakete mit den Folgennummern 4312, 4313, 4314, 4315 und 4316 befördern P-, P-, B-, P- und B-Frames und besitzen die Zeitstempel 12; 13, 14, 15 und 16. Man beachte, dass die in 3 dargestellten Zeitstempel nur repräsentativen Zwecken dienen. Die tatsächlichen Zeitstempel kann man mit Hilfe verschiedener Mechanismen berechnen.
-
Für zahlreiche Audiocodierungen wird der Zeitstempel um das Paketierungsintervall multipliziert mit der Abtastrate inkrementiert. Für Audiopakete mit 20 ms Audio, das mit 8000 Hz abgetastet ist, erhöht sich beispielsweise der Zeitstempel für jeden Audioblock um 160. Die tatsächliche Abtastrate kann sich auch ein wenig von dieser nominalen Rate unterscheiden. Für viele Videocodierungen hängt der erzeugte Zeitstempel davon ab, ob die Anwendung die Framenummer feststellen kann. Kann die Anwendung die Framenummer feststellen, so wird der Zeitstempel von der nominalen Framerate bestimmt. Für ein Video mit 30 Frames pro Sekunde würden sich also die Zeitstempel für jeden Frame um 3000 erhöhen. Wird ein Frame auf mehreren RTP-Paketen übertragen, so tragen diese Pakete alle den gleichen Zeitstempel. Kann die Framenummer nicht ermittelt werden oder werden die Frames aperiodisch abgetastet, wie dies in der Regel für Software-Codecs zutrifft, so kann man den Zeitstempel aus der Systemuhr berechnen.
-
Während der Zeitstempel von einem Empfänger dazu verwendet wird, die eingehenden Mediendaten in die korrekte zeitliche Reihenfolge zu bringen und die Verzögerung für die Wiedergabe zu kompensieren, dienen die Folgennummer dazu, Verluste zu erkennen. Die Folgennummern erhöhen sich für jedes übertragene RTP-Paket um eins. Die Zeitstempel erhöhen sich um die Zeitspanne, die von einem Paket ”abgedeckt” wird. Bei Videoformaten, bei denen ein Videoframe über mehrere RTP-Pakete verteilt ist, können einige Pakete den gleichen Zeitstempel besitzen. Beispielsweise haben Pakete mit den Folgennummern 4317 und 4318 den gleichen Zeitstempel 17 und befördern Teile des gleichen I-Frames.
-
4 zeigt ein Beispiel für die Veränderung eines RTP-Paketstroms. Ein RTP-Paketstrom 401 enthält einzelne Pakete, die verschiedene Felder und Nutzlastdaten haben. In verschiedenen Ausführungsformen enthalten die Felder einen Zeitstempel 403, eine Folge 405, eine Markierung 407 usw. Die Pakete enthalten auch Nutzlastdaten 409, die MPEG-Frames enthalten, beispielsweise I-, P- und B-Frames. Die Zeitstempel für unterschiedliche Pakete können gleich sein. In bestimmten Beispielen haben einige Pakete, die Teile des gleichen I-Frames befördern, den gleichen Zeitstempel. Die Folgennummern unterscheiden sich jedoch für jedes Paket. Markierungsbits 407 kann man für unterschiedliche Zwecke verwenden, beispielsweise zum Signalisieren des Anfangspunkts einer Werbung.
-
Gemäß verschiedener Ausführungsformen befördern Pakete mit den Folgennummern 4303, 4304 und 4305 Teile des gleichen I-Frames und besitzen den gleichen Zeitstempel mit dem Wert 6. Pakete mit den Folgennummern 4306, 4307, 4308 und 4309 befördern P-, B-, P- und P-Frames und weisen jeweils die Zeitstempel 7, 8, 9 und 10 auf. In verschiedenen Ausführungsformen entfernt ein Inhalteserver mehrere Pakete aus dem RTP-Paketstrom 401 einschließlich der Pakete mit den Folgennummern von 4310 bis 4316. Die Pakete mit den Folgennummern 4310 und 4311 befördern unterschiedliche Teile des gleichen I-Frames und haben beide den gleichen Zeitstempel mit dem Wert 11.
-
Pakete mit den Folgennummern 4312, 4313, 4314, 4315 und 4316 befördern P-, P-, B-, P- und B-Frames und besitzen die Zeitstempel 12, 13, 14, 15 und 16. Der aufgetrennte Strom endet nun bei einem Paket mit der Folgennummer 4309, das einen P-Frame befördert. Im Paket mit der Folgennummer 4307 ist ein B-Frame enthalten. Man beachte, dass B-Frames manchmal von Informationen abhängen, die in einem nachfolgenden I-Frame enthalten sind, der entfernt wurde. Obgleich das Auftreten einiger B-Frames, denen die Referenzframes fehlen, nicht zu extremen Unterbrechungen führt, ist es manchmal wahrnehmbar. Daher erkennt die Vorgehensweise der Erfindung, dass in manchen Ausführungsformen die letzten Pakete, die in einem Strom vor der Auftrennung verbleiben, ein I-Frame oder ein P-Frame sein sollten.
-
Gemäß verschiedener Ausführungsformen kann, da ein Teil des RTP-Stroms entfernt worden ist, eine RTP-Folge 411 eingefügt werden. In bestimmten Beispielen beginnt die einzufügende RTP-Folge 411 mit einem I-Frame, der nachfolgenden P- und B-Frames als Bezug dient. Ist kein I-Frame als Bezug vorhanden, so kann eine eingefügte RTP-Folge mit einem Teilbild oder einem unvollständigen Bild beginnen. Die einzufügenden Pakete werden so modifiziert, dass sie Folgennummern aufweisen, die bei der letzten Folgennummer des aufgetrennten Paketstroms 401 ansetzen. Die RTP-Einfügungsfolge 411 hat Folgennummern 4310–4317, die Paketen zugeordnet sind, die jeweils I-, I-, I-, B-, P-, P-, B- und B-Frames befördern, wobei der in drei Paketen beförderte I-Frame den gleichen Zeitstempel mit dem Wert 11 hat, und die B-, P-, P-, B- und B-Frames jeweils Zeitstempel von 12–16 aufweisen.
-
Pakete mit den Folgennummern 4317 und 4318 haben beispielsweise den gleichen Zeitstempel 17 und befördern Teile des gleichen I-Frames. In manchen Fällen ist die Anzahl der Pakete in der entfernten RTP-Folge 421 exakt gleich der Anzahl der Pakete in der einzufügenden RTP-Folge 411. In vielen Fällen unterscheidet sich jedoch die Anzahl der entfernten Pakete von der Anzahl der eingefügten Pakete. Beispielsweise können manche Frames mehr als ein Paket für die Übertragung benötigen. Obwohl man die Zeitstempel so konfigurieren kann, dass sie gleich sind, so dass ein fünfsekündiger Clip durch einen anderen fünfsekündigen Clip ersetzt werden kann, können die Anzahl der Pakete und folglich die Folgennummern verschoben werden. In verschiedenen Ausführungsformen wird das Paket mit der Folgennummer 4309 hier als das Endpunktpaket des Datenstroms betrachtet. Das Paket mit der Folgennummer 4318 wird hier als das Neustartpunkt-Paket des Datenstroms betrachtet. Die Pakete mit den Folgennummern 4310 und 4316 in der entfernten Folge werden hier als Anfangspaket der entfernten Folge bzw. als Endpaket der entfernten Folge betrachtet. Die Pakete mit den Folgennummern 4310 und 4316 in der eingefügten Folge werden hier als Anfangspaket der Einfügefolge bzw. als Endpaket der Einfügefolge betrachtet.
-
Folglich hält der Inhalteserver eine fortlaufende Folgennummer für einen RTP-Datenstrom und modifizierte nachfolgende Pakete nach dem Entfernen und Einfügen von Strömen. Beispielsweise werden Pakete mit dem Zeitstempel 17 so modifiziert, dass sie die Folgennummern 4318 und 4319 anstelle von 4317 und 4318 aufweisen. Der Inhalteserver fährt nun damit fort, die nachfolgenden Zeitstempel in dem RTP-Datenstrom zu aktualisieren. In verschiedenen Ausführungsformen wird diese Operation ausschließlich in einem Inhalteserver vorgenommen, da der Inhalteserver Informationen über einzelne mobile Vorrichtungen besitzt und auch Information über die Folgennummern eines gesamten Inhaltestroms wissen kann. Ein Inhalteanbieter kennt vielleicht keine Information über einzelne mobile Vorrichtungen, wogegen eine Netzwerkvorrichtung oder ein Netzwerkswitch möglicherweise nicht alle Datenpakete der Reihe nach empfängt. Einige Pakete können verworfen worden sein, und andere Pakete können auf unterschiedlichen Wegen übertragen worden sein.
-
5 zeigt ein Beispiel für eine Werbestrom-Ersetzung. Ein RTP-Paketstrom 501 enthält einzelne Pakete, die verschiedene Felder und Nutzlastdaten haben. In verschiedenen Ausführungsformen enthalten die Felder einen Zeitstempel 503, eine Folge 505, eine Markierung 507 usw. Die Pakete enthalten auch Nutzlastdaten 509, die MPEG-Frames enthalten, beispielsweise I-, P- und B-Frames. Die Zeitstempel für unterschiedliche Pakete können gleich sein. In bestimmten Beispielen haben einige Pakete, die Teile des gleichen I-Frames befördern, den gleichen Zeitstempel. Die Folgennummern unterscheiden sich jedoch für jedes Paket. Markierungsbits 507 kann man für unterschiedliche Zwecke verwenden, beispielsweise zum Signalisieren des Anfangspunkts einer Werbung. In manchen Beispielen geben die Markierungsbits 507 den Beginn und das Ende einer Werbung an. In anderen bestimmten Beispielen bezeichnen die Markierungsbits 507 Werbungspakete.
-
Gemäß verschiedener Ausführungsformen befördern Pakete mit den Folgennummern 4303, 4304 und 4305 Teile des gleichen I-Frames und besitzen den gleichen Zeitstempel mit dem Wert 6. Pakete mit den Folgennummern 4306, 4307, 4308 und 4309 befördern P-, B-, P- und P-Frames und weisen jeweils die Zeitstempel 7, 8, 9 und 10 auf. In verschiedenen Ausführungsformen entfernt ein Inhalteserver mehrere Pakete aus einem RTP-Paketstrom 501 durch Bezug auf die Markierungsflags 507. Pakete mit gesetzten Markierungsflags 507 enthalten Pakete mit Folgennummern von 4310 bis 4316. Die Pakete mit den Folgennummern 4310 und 4311 befördern unterschiedliche Teile des gleichen I-Frames und haben beide den gleichen Zeitstempel mit dem Wert 11.
-
Pakete mit den Folgennummern 4312, 4313, 4314, 4315 und 4316 befördern P-, P-, B-, P- und B-Frames und besitzen die Zeitstempel 12, 13, 14, 15 und 16. Der unterbrochene Strom endet nun bei einem Paket mit der Folgennummer 4309, das einen P-Frame befördert. Im Paket mit der Folgennummer 4307 ist ein B-Frame enthalten. Man beachte, dass B-Frames manchmal von Informationen abhängen die in einem nachfolgenden I-Frame enthalten sind, der entfernt wurde. Obgleich das Auftreten einiger B-Frames, denen die Referenzframes fehlen, nicht zu extremen Unterbrechungen führt, ist es manchmal wahrnehmbar. Daher erkennt die Vorgehensweise der Erfindung, dass in manchen Ausführungsformen die letzten Pakete, die in einem Strom vor der Auftrennung verbleiben, ein I-Frame oder ein P-Frame sein sollten.
-
Gemäß verschiedener Ausführungsformen kann, da ein voreingestellter Werbestrom 521 entfernt worden ist, ein Ersatz-Werbestrom 511 eingefügt werden. In bestimmten Beispielen ist der Ersatz-Werbestrom 511 auf einen bestimmten Benutzer zugeschnitten und für diesen intelligent gewählt. In bestimmten Beispielen beginnt der Ersatz-Werbestrom 511 mit einem I-Frame, der nachfolgenden P- und B-Frames als Bezug dient. Ist kein I-Frame als Bezug vorhanden, so kann eine eingefügte RTP-Folge mit einem Teilbild oder einem unvollständigen Bild beginnen. Die einzufügenden Pakete werden so modifiziert, dass sie Folgennummern aufweisen, die bei der letzten Folgennummer des aufgetrennten Paketstroms 501 ansetzen. Der Werbestrom 511 hat Folgennummern 4310–4317, die Paketen zugeordnet sind, die jeweils I-, I-, I-, B-, P-, P-, Bund B-Frames befördern, wobei der in drei Paketen beförderte I-Frame den gleichen Zeitstempel mit dem Wert 11 hat, und die B-, P-, P-, B- und B-Frames jeweils Zeitstempel von 12–16 aufweisen.
-
Pakete mit den Folgennummern 4317 und 4318 haben beispielsweise den gleichen Zeitstempel 17 und befördern Teile des gleichen I-Frames. In manchen Fällen ist die Anzahl der Pakete in dem entfernten voreingestellten Werbestrom 521 exakt gleich der Anzahl der Pakete in dem einzufügenden Ersatz-Werbestrom 511. In vielen Fällen unterscheidet sich jedoch die Anzahl der entfernten Pakete von der Anzahl der eingefügten Pakete. Beispielsweise können manche Frames mehr als ein Paket für die Übertragung benötigen. Obwohl man die Zeitstempel so konfigurieren kann, dass sie gleich sind, so dass ein fünfsekündiger Clip durch einen anderen fünfsekündigen Clip ersetzt werden kann, können die Anzahl der Pakete und folglich die Folgennummern verschoben werden. In verschiedenen Ausführungsformen wird das Paket mit der Folgennummer 4309 hier als das Endpunktpaket des Datenstroms betrachtet. Das Paket mit der Folgennummer 4318 wird hier als das Neustartpunkt-Paket des Datenstroms betrachtet. Die Pakete mit den Folgennummern 4310 und 4316 in der entfernten Folge werden hier als Anfangspaket der entfernten Folge bzw. als Endpaket der entfernten Folge betrachtet. Die Pakete mit den Folgennummern 4310 und 4316 in der eingefügten Folge werden hier als Anfangspaket der Einfügefolge bzw. als Endpaket der Einfügefolge betrachtet.
-
Folglich hält der Inhalteserver eine fortlaufende Folgennummer für einen RTP-Datenstrom und modifizierte nachfolgende Pakete nach dem Entfernen und Einfügen von Strömen. Beispielsweise werden Pakete mit dem Zeitstempel 17 so modifiziert, dass sie die Folgennummern 4318 und 4319 anstelle von 4317 und 4318 aufweisen. Der Inhalteserver fährt nun damit fort, die nachfolgenden Zeitstempel in dem RTP-Datenstrom zu aktualisieren. In verschiedenen Ausführungsformen wird diese Operation ausschließlich in einem Inhalteserver vorgenommen, da der Inhalteserver Informationen über einzelne mobile Vorrichtungen besitzt und auch Information über die Folgennummern eines gesamten Inhaltestroms wissen kann. Ein Inhalteanbieter kennt vielleicht keine Information über einzelne mobile Vorrichtungen, wogegen eine Netzwerkvorrichtung oder ein Netzwerkswitch möglicherweise nicht alle Datenpakete der Reihe nach empfängt. Einige Pakete können verworfen worden sein, und andere Pakete können auf unterschiedlichen Wegen übertragen worden sein.
-
6 zeigt ein Verarbeitungsflussdiagramm für ein Beispiel einer Modifikation eines RTP-Datenstroms. Bei 601 fordert eine Vorrichtung, beispielsweise eine mobile Vorrichtung, einen Inhaltestrom an. In diversen Ausführungsformen wird die Inhalteanforderung an einen Lastausgleicher weitergeleitet, der die Anforderung an einen ausgewählten Controller richtet. Bei 603 verwendet der Controller ein Protokoll wie RTSP zum Herstellen einer Sitzung mit der Vorrichtung. Bei 605 überträgt der Inhalteserver gestützt auf die aufgebaute Sitzung die Medienströme zu der Vorrichtung, und zwar mit Hilfe von Protokollen wie RTP und RTCP.
-
Bei 609 erhält der Inhalteserver die Benutzer-Profilinformation für die Vorrichtung. In diversen Ausführungsformen ist die Profilinformation einem bestimmten Benutzer zugeordnet. In anderen besonderen Ausführungsformen ist die Profilinformation einer bestimmten Vorrichtung zugeordnet. Die Profilinformation kann Alter, Geschlecht, Einkommensniveau, Bildungsstand, Interessen, Beruf, Nutzungsmerkmale, Sehgewohnheiten usw. umfassen. Die Profilinformation wird dazu verwendet, mehrere Werbeströme 615 in einer Datenbank zu erkennen, die sich für den Benutzer und/oder die Vorrichtung eignen könnten. In manchen Beispielen werden die Werbungen bei 619 zyklisch oder zufällig gewonnen und für das Einfügen in den Medienstrom bereitgestellt.
-
Bei 627 wird abhängig von einer Werbungsmarkierung ein bestimmter Werbestrom an einem Punkt in das Medium eingefügt. In besonderen Ausführungsformen ist die Werbungsmarkierung ein Flag, das in einem Feld eines RTP-Kopfeintrags gesetzt ist. Bei 629 werden gestützt auf die Werbungsmarkierung und Zeitstempel Pakete aus dem Medienstrom entfernt. Bei 631 werden die Zeit und Folgennummern für Pakete in dem einzufügenden Werbestrom festgesetzt. In manchen Beispielen werden die Ersatz-Werbungspakete dynamisch eingefügt, wenn die voreingestellten Werbungspakete entfernt werden. Bei verschiedenen Ausführungsformen sind die Frames in dem Einfügungs-Werbestrom so konfiguriert, dass sie mit einem I-Frame beginnen. In besonderen Beispielen wird ein Werbestrom mit der gleichen Bitrate wie der entfernte Abschnitt für die Aufnahme in den übertragenen Medienstrom gewählt. Obwohl die Einfügung die gleiche Gesamtanzahl an Bits verwenden und die gleiche Bitrate haben kann wie der aus dem Medienstrom entfernte Abschnitt, kann eine unterschiedliche Anzahl an Paketen zum Befördern der Framedaten verwendet werden. Folglich verwaltet der Inhalteserver bei 633 die Folgennummern und muss diese für nachfolgende Pakete verändern, und zwar auch nachdem der Einfügestrom dem Medienstrom zugefügt wurde.
-
Mit den Vorgehensweisen und Mechanismen der Erfindung kann man verschiedene Vorrichtungen verwenden. In verschiedenen Ausführungsformen enthält ein Inhalteserver einen Prozessor, einen Speicher und eine Streaming-Schnittstelle. Besonders konfigurierte Vorrichtungen können ebenfalls enthalten sein, damit eine sehr rasche Veränderung von Folgennummern möglich ist.
-
7 zeigt ein Beispiel eines Inhalteservers, der eine Echtzeit-Stromveränderung vornehmen kann. In bestimmten Ausführungsformen enthält ein System 700, das sich zum Implementieren besonderer Ausführungsformen der Erfindung eignet, einen Prozessor 701, einen Speicher 703, eine Schnittstelle 711 und einen Bus 715 (z. B. einen PCI-Bus oder ein Verbindungsnetz) und arbeitet als Streamingserver. Arbeitet der Prozessor 701 gesteuert durch eine geeignete Software oder Firmware, so ist er verantwortlich für das Modifizieren und Übertragen von Echtzeit-Mediendaten an einen Client. Man kann anstelle des Prozessors 701 oder zusätzlich zu dem Prozessor 701 auch verschiedene besonders konfigurierte Vorrichtungen einsetzen. Die Schnittstelle 711 ist in der Regel dafür konfiguriert, Datenpakete oder Datensegmente über ein Netzwerk zu empfangen und zu senden.
-
Bestimmte Beispiele von Schnittstellen umfassen Ethernet-Schnittstellen, Frame-Relay-Schnittstellen, Kabelschnittstellen, DSL-Schnittstellen, Token-Ring-Schnittstellen usw. Zusätzlich kann man sehr schnelle Schnittstellen bereitstellen, beispielsweise Fast-Ethernet-Schnittstellen, Gigabit-Ethernet-Schnittstellen, ATM-Schnittstellen, HSSI-Schnittstellen, POS-Schnittstellen, FDDI-Schnittstellen usw. Generell können diese Schnittstellen Ports enthalten, die sich für die Kommunikation mit den passenden Medien eignen. In manchen Fällen können sie auch einen unabhängigen Prozessor und, unter gewissen Umständen, flüchtigen RAM-Speicher enthalten. Die unabhängigen Prozessoren können solche kommunikationsintensive Aufgaben wie Paket-Switching, Mediensteuerung und -verwaltung usw. kontrollieren.
-
In verschiedenen Ausführungsformen ist das System 700 ein Inhalteserver, der auch einen Transceiver, Streaming-Puffer und Programmführungsinformationen enthält. Der Inhalteserver kann mit einer Teilnehmerverwaltung verbunden sein, der Protokollierung und Berichtserstellung, und er kann Überwachungsfähigkeiten haben. In besonderen Ausführungsformen ist eine Funktionalität enthalten, die den Betrieb mit mobilen Vorrichtungen erlaubt, beispielsweise zellularen Telefonen, die in einem bestimmten zellularen Netz arbeiten, und die eine Teilnehmerverwaltung bietet. In verschiedenen Ausführungsformen prüft ein Authentifizierungsmodul die Identität von Vorrichtungen einschließlich mobiler Vorrichtungen. Ein Protokollierungs- und Berichtserstellungsmodul verfolgt die Anforderungen von mobilen Vorrichtungen und die zugehörigen Reaktionen. Ein Überwachungssystem erlaubt es einem Verwalter, Nutzungsmuster und die Systemverfügbarkeit einzusehen. In verschiedenen Ausführungsformen handhabt der Inhalteserver 791 Anforderungen und Reaktionen für auf Medieninhalte bezogene Transaktionen, und ein eigener Streaming-Server liefert die eigentlichen Medienströme.
-
Obwohl ein ganz bestimmter Inhalteserver 791 beschrieben wurde, ist klar, dass verschiedene alternative Anordnungen möglich sind. Beispielsweise können einige Module wie das Berichts- und Protokollierungsmodul 753 und die Überwachung 751 nicht auf jedem Server erforderlich sein. Wahlweise können die Module auf einer anderen Vorrichtung implementiert sein, die mit dem Server verbunden ist. In einem anderen Beispiel kann der Server 791 keine Schnittstelle zu einer abstrakten Kaufmaschine enthalten, sondern er kann in der Tat die abstrakte Kaufmaschine selbst enthalten. Verschiedene Konfigurationen sind möglich.
-
In der obigen Beschreibung ist die Erfindung unter Bezug auf besondere Ausführungsformen erläutert. Einem Fachmann ist geläufig, dass man verschiedene Abwandlungen und Änderungen vornehmen kann, ohne den Bereich der Erfindung zu verlassen, der in den folgenden Ansprüchen angegeben ist. Daher sind die Beschreibung und die Abbildungen als Erläuterungen zu betrachten und nicht in einem einschränkenden Sinn. Es ist beabsichtigt, dass alle derartigen Abwandlungen im Bereich der Erfindung enthalten sind.
-
ZUSAMMENFASSUNG
-
Mechanismen zum Ersetzen von voreingestellten Werbeströmen in einem Medienstrom durch Ersetzungs-Werbeströme werden bereitgestellt. Benutzerprofilinformation wird für einen bestimmten Benutzer und/oder eine Vorrichtung ermittelt. Ein voreingestellter Werbestrom wird gekennzeichnet und durch Werbeströme ersetzt, die mit Hilfe der Benutzerprofilinformation ausgewählt werden. Zeitstempelinformation und Folgennummerinformation werden beibehalten, damit eine ununterbrochene Lieferung des modifizierten Medienstroms möglich ist, während die Medienströme auf die bestimmten Benutzer zugeschnitten werden.