DE102018208487A1 - PLAYLIST ERROR DAYS FOR PROVIDING AND RENDERING STRAIGHT MEDIA - Google Patents

PLAYLIST ERROR DAYS FOR PROVIDING AND RENDERING STRAIGHT MEDIA Download PDF

Info

Publication number
DE102018208487A1
DE102018208487A1 DE102018208487.4A DE102018208487A DE102018208487A1 DE 102018208487 A1 DE102018208487 A1 DE 102018208487A1 DE 102018208487 A DE102018208487 A DE 102018208487A DE 102018208487 A1 DE102018208487 A1 DE 102018208487A1
Authority
DE
Germany
Prior art keywords
segment
error
encoded media
playlist
media
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102018208487.4A
Other languages
German (de)
Inventor
Jordan B. SCHNEIDER
Peng Zhou
Roger N. Pantos
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of DE102018208487A1 publication Critical patent/DE102018208487A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2353Processing of additional data, e.g. scrambling of additional data or processing content descriptors specifically adapted to content descriptors, e.g. coding, compressing or processing of metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26258Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/4425Monitoring of client processing errors or hardware failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • H04N21/4825End-user interface for program selection using a list of items to be played back in a given order, e.g. playlists
    • 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/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Abstract

Die vorliegende Offenbarung beschreibt Techniken zum Bereitstellen und Rendern von gestreamten Medien unter Verwendung von Fehler-Tags in einer entsprechenden Medienwiedergabeliste. Die Wiedergabeliste kann eine Organisation des Medienelements darstellen, indem sie Informationen von codierten Mediensegmenten bereitstellt, die das Medienelement bilden. Wenn Segmente von codierten Medien für ein Medienelement empfangen werden, kann eine Ermittlung vorgenommen werden, ob die codierten Mediensegmente Fehler enthalten. Wenn ein codiertes Mediensegment gefunden wird, das keinen Fehler enthält, kann ein Wiedergabelisteneintrag, der das codierte Mediensegment darstellt, zu der Wiedergabeliste hinzugefügt werden. Wenn ein codiertes Mediensegment einen Fehler enthält, kann ein Wiedergabelisteneintrag hinzugefügt werden, um dieses codierte Mediensegment darzustellen. Dieser Wiedergabelisteneintrag kann den Segmentfehler angeben. Die Wiedergabeliste kann für Zugriff durch eine Wiedergabevorrichtung bzw. Wiedergabevorrichtungen gespeichert werden.

Figure DE102018208487A1_0000
The present disclosure describes techniques for providing and rendering streamed media using error tags in a corresponding media playlist. The playlist may represent an organization of the media element by providing information from encoded media segments that make up the media element. When segments of encoded media are received for a media item, a determination can be made as to whether the encoded media segments contain errors. If an encoded media segment is found that does not contain an error, a playlist entry representing the encoded media segment may be added to the playlist. If an encoded media segment contains an error, a playlist entry may be added to represent that encoded media segment. This playlist entry can indicate the segment error. The playlist may be stored for access by a playback device.
Figure DE102018208487A1_0000

Description

HINTERGRUNDBACKGROUND

Die vorliegende Offenbarung betrifft Techniken zur Verwaltung des Zugriffs auf Medien, die durch ein Computernetzwerk gestreamt werden.The present disclosure relates to techniques for managing access to media streamed through a computer network.

Videoinhalte, Audioinhalte oder beide zusammen werden regelmäßig verschiedenen Betrachtungsvorrichtungen, wie Smartphones und Tabletcomputern, als gestreamte Medien bereitgestellt. Diese Medieninhalte durchlaufen in der Regel mehrere Verarbeitungs- und Übertragungsschritte, bevor sie schließlich der Betrachtungsvorrichtung bereitgestellt werden. Beispielsweise können Medieninhalte als Rohdaten aus Medienquellen beginnen. Die Rohdaten aus Medienquellen können dann an einen Codierer übertragen werden, an dem die Medienquelldaten als eine Folge von Segmenten codiert werden. Die codierten Segmente können danach an einen Verteilungsserver gesendet werden, der die codierten Segmente speichert und entsprechende Wiedergabelisten erzeugt. Die Wiedergabelisten können einer Betrachtungsvorrichtung bereitgestellt werden, um der Betrachtungsvorrichtung zu ermöglichen, die codierten Segmente herunterzuladen und sequenziell zu rendern.Video content, audio content, or both together are regularly provided to various viewing devices, such as smartphones and tablet computers, as streamed media. These media contents typically undergo several processing and transfer steps before finally being provided to the viewing device. For example, media content may begin as raw data from media sources. The raw data from media sources can then be transferred to an encoder where the media source data is encoded as a sequence of segments. The encoded segments may then be sent to a distribution server which stores the encoded segments and generates corresponding playlists. The playlists may be provided to a viewer to enable the viewer to download and sequentially render the encoded segments.

Jedoch können verschiedene Fehler oder Defekte in den Medieninhalten auftreten, wenn diese die vorstehend beschriebenen Vorgänge und Übertragungen durchlaufen. Beispielsweise kann ein Medien-Feed der Medienquelldaten an den Codierer unterbrochen werden. In anderen Fällen kann ein Fehler beim Codiervorgang vorliegen, der zu einem beschädigten Segment führt. Solche Fehler können das Betrachtungserlebnis des Medieninhalts beeinträchtigen. Dies kann insbesondere der Fall sein, wenn ein Audiostrom und ein Videostrom synchron zueinander präsentiert werden. Fehler in einem der Ströme können eine Desynchronisation mit dem anderen Strom hervorrufen.However, various errors or defects may occur in the media contents as they undergo the operations and transmissions described above. For example, a media feed of the media source data to the encoder may be interrupted. In other cases there may be an error in the coding process leading to a damaged segment. Such errors can affect the viewing experience of the media content. This may in particular be the case when an audio stream and a video stream are presented synchronously with each other. Errors in one of the streams can cause desynchronization with the other stream.

Entsprechend erkennen die Erfinder eine Notwendigkeit auf dem Fachgebiet für verbesserte Medienstreaming-Techniken, die sich an Fehler in einem Medienstrom anpassen.Accordingly, the inventors recognize a need in the art for improved media streaming techniques that adapt to errors in a media stream.

Figurenlistelist of figures

Die vorstehenden Ausführungen und andere Gesichtspunkte verschiedener Ausführungsformen der vorliegenden Offenbarung werden durch Betrachtung der folgenden ausführlichen Beschreibung davon in Verbindung mit den beiliegenden Zeichnungsfiguren ersichtlich, in denen ähnliche Bezugsziffern zur Kennzeichnung funktional ähnlicher Elemente verwendet werden.

  • 1 ist eine Darstellung eines Beispielsystems gemäß einer Ausführungsform der vorliegenden Offenbarung.
  • 2 ist Flussdiagramm eines Beispielverfahrens gemäß einer Ausführungsform der vorliegenden Offenbarung.
  • 3 ist eine Darstellung eines Beispielsystems gemäß einer Ausführungsform der vorliegenden Offenbarung.
  • 4 ist eine Darstellung eines Beispielrechensystems gemäß einer Ausführungsform der vorliegenden Offenbarung.
The foregoing and other aspects of various embodiments of the present disclosure will become apparent upon consideration of the following detailed description thereof, taken in conjunction with the accompanying drawing figures in which like reference numerals are used to identify functionally similar elements.
  • 1 FIG. 4 is an illustration of an example system according to an embodiment of the present disclosure. FIG.
  • 2 FIG. 10 is a flow chart of an example method according to an embodiment of the present disclosure. FIG.
  • 3 FIG. 4 is an illustration of an example system according to an embodiment of the present disclosure. FIG.
  • 4 FIG. 10 is an illustration of a sample computing system according to an embodiment of the present disclosure. FIG.

DETAILLIERTE BESCHREIBUNGDETAILED DESCRIPTION

Ausführungsformen der vorliegenden Offenbarung stellen Techniken zum Bereitstellen und Rendern von Medienelementen unter Verwendung von Fehler-Tags in einer Wiedergabelistendatei bereit. Die Wiedergabeliste kann eine Organisation des Medienelements darstellen, indem sie Informationen von codierten Mediensegmenten bereitstellt, die das Medienelement bilden. Wenn Segmente von codierten Medien für ein Medienelement empfangen werden, kann eine Ermittlung vorgenommen werden, ob die codierten Mediensegmente Fehler enthalten. Wenn ein codiertes Mediensegment gefunden wird, das keinen Fehler enthält, kann ein Wiedergabelisteneintrag, der das codierte Mediensegment darstellt, zu der Wiedergabeliste hinzugefügt werden. Wenn ein codiertes Mediensegment einen Fehler enthält, kann ein Wiedergabelisteneintrag, der dieses codierte Mediensegment darstellt, zu der Wiedergabeliste hinzugefügt werden. Dieser Wiedergabelisteneintrag kann den Segmentfehler angeben. Die Wiedergabeliste kann für Zugriff durch eine Wiedergabevorrichtung bzw. Wiedergabevorrichtungen an einem Verteilungsserver gespeichert werden.Embodiments of the present disclosure provide techniques for providing and rendering media elements using error tags in a playlist file. The playlist may represent an organization of the media element by providing information from encoded media segments that make up the media element. When segments of encoded media are received for a media item, a determination can be made as to whether the encoded media segments contain errors. If an encoded media segment is found that does not contain an error, a playlist entry representing the encoded media segment may be added to the playlist. If a coded media segment contains an error, a playlist entry representing that coded media segment may be added to the playlist. This playlist entry can indicate the segment error. The playlist may be stored on a distribution server for access by a playback device.

1 ist ein vereinfachtes Funktionsblockdiagramm von einem beispielhaften Streaming-System 100 gemäß einer Ausführungsform der vorliegenden Offenbarung. Das System 100 kann einen Codierserver 120, einen Verteilungsserver 130 und eine Terminalvorrichtung 110 einschließen, die in Kommunikation durch ein Netzwerk 140 bereitgestellt werden. Der Codierserver 120 kann ein Eingangsmedienelement zur Bereitstellung an eine Terminalvorrichtung 110 codieren. Der Verteilungsserver 130 kann die Verteilung des codierten Medienelements an die Terminalvorrichtung bzw. Terminalvorrichtungen 110 verwalten. Die Terminalvorrichtung 110 kann Elemente des Medienelements herunterladen und rendern. 1 FIG. 10 is a simplified functional block diagram of an example streaming system. FIG 100 according to an embodiment of the present disclosure. The system 100 can be a coding server 120 , a distribution server 130 and a terminal device 110 Include in communication through a network 140 to be provided. The encoding server 120 may be an input media element for provision to a terminal device 110 encode. The distribution server 130 the distribution of the coded media element to the terminal device or terminal devices 110 manage. The terminal device 110 can download and render elements of the asset.

Der Codierserver 120 kann Medienquelldaten über einen Medien-Feed 160 empfangen. Die Medienquelldaten können Videoquelldaten und/oder Audioquelldaten einschließen. Der Codierserver 120 kann einen oder mehrere Codierer 122 nutzen, um die Medienquelldaten zu codieren und dem Verteilungsserver 130 einen oder mehrere codierte Medienströme 162 bereitzustellen. In der Regel wird die Mediencodierung nach einem vorher festgelegten Codierprotokoll durchgeführt und erzielt im Vergleich zu den Quellmediendaten eine Bandbreitenkompression. Beispielsweise kann Video nach einem ITU-T-Standard wie H.265 (gemeinhin „HEVC“), H.264 („AVC“) oder ein anderes standardisiertes Codierprotokoll codiert werden. Codierte Videodaten können von dem Codierserver 120 als eine Vielzahl von separaten Einheiten, sogenannten „Segmenten“, paketiert zur Übertragung an Terminalvorrichtungen 110 ausgegeben werden.The encoding server 120 can media source data via a media feed 160 receive. The media source data may include video source data and / or audio source data. The encoding server 120 can be one or more encoders 122 to encode the media source data and the distribution server 130 one or more encoded media streams 162 provide. Typically, the media encoding is performed according to a predetermined encoding protocol and achieves bandwidth compression as compared to the source media data. For example, video may be encoded according to an ITU-T standard such as H.265 (commonly "HEVC"), H.264 ("AVC"), or another standardized encoding protocol. Encoded video data may be from the encoding server 120 as a plurality of separate units, so-called "segments", packaged for transmission to terminal devices 110 be issued.

Der Verteilungsserver 130 kann die Bereitstellung der durch den Codierserver 120 codierten Medienelemente verwalten. Der Verteilungsserver 130 kann codierte Mediensegmente jedes Medienelements in einem lokalen Festspeicher 132 speichern. Der Verteilungsserver 130 kann auch Wiedergabelistendateien 134 (auch als Manifestdateien bekannt) erzeugen, die Informationen über jedes Medienelement enthalten, die durch eine Terminalvorrichtung 110 heruntergeladen werden können.The distribution server 130 may be providing the through the encoding server 120 Manage encoded media elements. The distribution server 130 can encode media segments of each media element in a local hard drive 132 to save. The distribution server 130 can also playlists files 134 (also known as manifest files) that contain information about each media item that is passed through a terminal device 110 can be downloaded.

In vielen Fällen wird ein einzelnes Medienelement (etwa ein Videoprogramm) durch einen Verteilungsserver 130 in mehreren Darstellungen, sogenannten „Strömen“, gespeichert. In dem Beispiel von 1 wird ein einzelnes, durch die Ströme STR1 bis STRK gebildetes Medienelement gezeigt. Einige der Ströme können Varianten von gemeinsamen Medieninhalten darstellen. Beispielsweise kann ein einzelnes Medienelement mehrere Ströme mit unterschiedlichen Darstellungen von Videoinhalten des Elements aufweisen; die Ströme können zum Beispiel je nach Bitrate, Videocodierformat/-standard oder Auflösung variieren. Darüber hinaus kann ein einzelnes Medienelement mehrere Audioströme aufweisen, die zum Beispiel je nach Bitrate, Audiocodierformat/-standard oder Sprache variieren. Jeder Strom kann eine jeweilige Vielzahl von Segmenten, d. h. Segment 1 bis Segment n, umfassen. Obwohl 1 jeden Strom mit einer identischen Anzahl n von Segmenten veranschaulicht, weisen in der Praxis verschiedene Ströme möglicherweise (und tatsächlich) eine unterschiedliche Anzahl von Segmenten auf.In many cases, a single piece of media (such as a video program) will go through a distribution server 130 stored in several representations, so-called "streams". In the example of 1 a single media element formed by streams STR1 through STRK is shown. Some of the streams may represent variants of shared media content. For example, a single media element may have multiple streams with different representations of video content of the element; the streams may vary, for example, depending on the bit rate, video encoding format / standard or resolution. In addition, a single media element may have multiple audio streams that vary, for example, depending on the bitrate, audio encoding format / standard, or language. Each stream may have a respective plurality of segments, ie segment 1 to segment n. Even though 1 illustrates each stream with an identical number n of segments, in practice different streams may (and indeed do) have a different number of segments.

Der Verteilungsserver 130 kann ferner eine Wiedergabelistendatei 134 für jedes durch den Verteilungsserver 130 gespeicherte Medienelement speichern. Die Wiedergabelistendatei 134 kann Daten enthalten, die ein Medienelement und die Segmente, die Teil des Medienelements sind, beschreiben. Die Wiedergabelistendatei 134 kann einen jeweiligen Segmentidentifikator und eine URL (d. h. einen Netzwerkspeicherort) umfassen, an der Zugriff auf und Herunterladen des Segments möglich sind. Zur Veranschaulichung kann eine Beispiel-Wiedergabelistendatei 134 Segmentdateneinträge 135.1 bis 135.n einschließen, welche die jeweiligen Segmente von einem der Ströme STR1 bis STRK beschreiben. Obwohl in 1 nicht veranschaulicht, kann die Wiedergabelistendatei 134 Einträge für alle Segmente aller Ströme, die das Medienelement bilden, aufweisen.The distribution server 130 may also include a playlist file 134 for each through the distribution server 130 Save saved media item. The playlist file 134 may contain data describing a media item and the segments that are part of the media item. The playlist file 134 may include a respective segment identifier and a URL (ie, a network location) at which access to and download of the segment is possible. By way of illustration, an example playlist file may be provided 134 Segment data entries 135.1 to 135.n which describe the respective segments of one of the streams STR1 to STRK. Although in 1 not illustrated, the playlist file may be 134 Entries for all segments of all streams that make up the media element.

In einer Ausführungsform kann die Wiedergabelistendatei 134 ferner ein Fehler-Tag zum Identifizieren eines Segments, das einen Fehler aufweisen kann, einschließen. Beispielhafte Fehler-Tags 136.2 und 136.n für jeweilige Segmentdateneinträge 135.2 und 135.n sind in 1 gezeigt; die Wiedergabelistendatei 134 kann in gleicher Weise entsprechende Fehler-Tags für andere Segmente, die Fehler aufweisen, einschließen. Die Daten des Fehler-Tags können, falls zutreffend, einen Defekt bei einem Segment angeben. In einer Ausführungsform müssen Fehler-Tags nicht für Segmente bereitgestellt werden, die keine Fehler aufweisen. In einer anderen Ausführungsform können Fehler-Tags jedoch für jedes Segment in einer Wiedergabelistendatei 134 bereitgestellt werden und sie können Daten enthalten, die einen Fehlerzustand des jeweiligen Segments (z. B. „Fehler“ oder „kein Fehler“) angeben. Wie hierin weiter erörtert wird, kann die Terminalvorrichtung 110 Render- und Wiedergabeoperationen wenigstens teilweise basierend auf dem Fehler-Tag in der Wiedergabelistendatei 134 für ein beliebiges gegebenes codiertes Segment durchführen.In one embodiment, the playlist file may be 134 and an error tag for identifying a segment that may have an error. Example error tags 136.2 and 136.n for respective segment data entries 135.2 and 135.n are in 1 shown; the playlist file 134 may similarly include corresponding error tags for other segments having errors. The data of the error tag, if applicable, may indicate a defect in a segment. In one embodiment, error tags do not have to be provided for segments that have no errors. However, in another embodiment, error tags may be for each segment in a playlist file 134 and may contain data indicating an error condition of the respective segment (eg, "error" or "no error"). As will be further discussed herein, the terminal device 110 Rendering and rendering operations based at least in part on the error tag in the playlist file 134 for any given coded segment.

Fehler-Tags können als Reaktion auf eine Vielfalt von Betriebsumständen gesetzt werden. Beispielsweise kann eine Unterbrechung in dem Medien-Feed 160, der die Medienquelldaten an den Codierserver 120 bereitstellt, auftreten. Somit ist der Codierserver 120 möglicherweise nicht in der Lage, ein codiertes Segment bzw. codierte Segmente bereitzustellen, das bzw. die den fehlenden Medienquelldaten entspricht bzw. entsprechen. Ferner kann ein Segmentfehler auftreten, wenn ein Fehler oder eine andere Störung bei einem oder mehreren der Codierer 122 auf dem Codierserver 120 vorliegt. Beispielsweise kann ein Codierer 122 abstürzen oder anderweitig nicht verfügbar werden. In diesem Fall können die Segmente, denen dieser Codierer 122 zum Codieren zugewiesen ist, in ähnlicher Weise in dem codierten Medienstrom 162, der dem Verteilungsserver 130 bereitgestellt wird, fehlen. Als noch ein anderes Beispiel können Medienquelldaten aus dem Medien-Feed 160 durch den Codierserver 120 codiert werden, jedoch kann ein Fehler beim Codiervorgang das resultierende Segment zum Rendern und zur Wiedergabe durch die Terminalvorrichtung 110 unbrauchbar machen.Error tags can be set in response to a variety of operating conditions. For example, there may be a break in the media feed 160 that sends the media source data to the encoding server 120 provides, occur. Thus, the coding server 120 may not be able to provide a coded segment or segments that match the missing media source data. Furthermore, a segment error may occur if an error or other failure occurs in one or more of the encoders 122 on the coding server 120 is present. For example, an encoder 122 crash or otherwise become unavailable. In this case, the segments to which this encoder 122 for coding, similarly in the encoded media stream 162 that is the distribution server 130 is provided missing. As yet another example, media source data may be from the media feed 160 through the coding server 120 however, an error in the encoding process may render the resulting segment for rendering and reproduction by the terminal device 110 to make something useless.

Herunterladen und Rendern von Medienelementen können als eine clientgesteuerte Operation durchgeführt werden. Beispielsweise beginnt eine Terminalvorrichtung 110 Medienrendering durch Anfordern einer Wiedergabelistendatei 134 für ein gewünschtes Medienelement, das durch den Verteilungsserver 130 bereitgestellt wird. Die Terminalvorrichtung 110 kann auswählen, welche der Ströme STR1 bis STRK die Terminalvorrichtung 110 rendern wird. Während einer einzelnen Wiedergabesitzung ist es möglich, dass die Terminalvorrichtung 110 ihre Auswahl der zu rendernden Ströme ändert. Beispielsweise können Betriebsbedingungen an der Terminalvorrichtung 110, wie Verlust von Netzwerkbandbreite oder Ressourcenkonflikte, dazu führen, dass die Terminalvorrichtung 110 Videoströme mit geringerer Bandbreite oder geringerer Komplexität als ursprünglich ausgewählt auswählt. In einem anderen Anwendungsfall kann ein Bediener die zu verwendende Audiodarstellung ändern (Ein- und Ausschalten von Audiokommentarspuren) oder kann andere Ströme (z. B. Untertitel) aktivieren/deaktivieren. Die Terminalvorrichtung 110 kann unter Verwendung von durch die Wiedergabelistendatei 134 identifizierten Netzwerkadressen Anforderungen für Segmente von ausgewählten Strömen ausgeben und kann diese rendern, wenn die Segmente empfangen werden.Downloading and rendering media items may be as a client-driven Operation be performed. For example, a terminal device starts 110 Media rendering by requesting a playlist file 134 for a desired media item that is sent by the distribution server 130 provided. The terminal device 110 can select which of the streams STR1 to STRK the terminal device 110 will render. During a single playback session, it is possible for the terminal device 110 their selection of streams to be rendered changes. For example, operating conditions at the terminal device 110 Such as loss of network bandwidth or resource conflicts, cause the terminal device 110 Select lower bandwidth or lower complexity video streams than originally selected. In another application, an operator may change the audio presentation to be used (turn on or off audio commentary tracks) or may enable / disable other streams (eg, subtitles). The terminal device 110 can be made by using the playlist file 134 Network addresses identified may issue requests for segments of selected streams and may render them when the segments are received.

Im Falle von Fehler-Tags 136 kann eine Terminalvorrichtung 110 ihre Entscheidungen darüber, welche Segmente anzufordern sind, nach Prüfung solcher Tags treffen. Wenn beispielsweise ein Fehler für ein codiertes Segment von Video in einem Strom angegeben wird, kann eine Terminalvorrichtung 110 festlegen, ob ein Wechsel zu einem Entsprechungssegment eines anderen Stroms erfolgen soll. Die Festlegung der Terminalvorrichtung 110 kann in Verbindung mit anderen Betriebsbedingungen, wie Netzwerkbandbreite, verfügbaren Ressourcen und dergleichen, erfolgen. Es kann vorkommen, dass eine Terminalvorrichtung 110 festlegt, dass es angemessen ist, zu einem anderen Strom zu wechseln, in welchem Fall die Terminalvorrichtung das fehlerhafte Segment durch Anfordern, Empfangen und Rendern von Segmenten eines anderen Stroms, der keinen Fehler aufweist, „umgehen“ kann. In einem anderen Fall kann die Terminalvorrichtung 110 festlegen, dass sie nicht zu einem anderen Strom wechseln kann, in welchem Fall die Terminalvorrichtung 110 entweder die Segmente anfordern kann, die Fehler aufweisen, oder eine andere Aktivität ausführen kann (zum Beispiel Durchführen einer Fehlerverdeckung).In case of error tags 136 can be a terminal device 110 make their decisions about which segments to request after checking such tags. For example, if an error is indicated for a coded segment of video in a stream, a terminal device may 110 determine whether to switch to a corresponding segment of another stream. The definition of the terminal device 110 may be in conjunction with other operating conditions, such as network bandwidth, available resources, and the like. It may happen that a terminal device 110 determines that it is appropriate to switch to another stream, in which case the terminal device can "bypass" the faulty segment by requesting, receiving, and rendering segments of another stream having no error. In another case, the terminal device 110 specify that it can not switch to another power, in which case the terminal device 110 Either request the segments that have errors or perform another activity (for example, perform error concealment).

Die Medienströme (z. B. der Strom STR1 und der Strom STR2), die der Terminalvorrichtung 110 bereitgestellt werden, können verwandte Inhalte umfassen, und das Rendern und/oder die Wiedergabe der Medienströme kann an der Terminalvorrichtung 110 synchronisiert werden. Beispielsweise kann der eine Medienstrom einen Videomedienstrom umfassen und der andere Medienstrom kann einen Audiomedienstrom mit Audioinhalt umfassen, der mit dem Videoinhalt des Videomedienstroms synchronisiert sein sollte, wie es gewöhnlich bei vielen Fernsehprogrammen, Filmen, Sportveranstaltungspräsentationen und dergleichen der Fall ist. Die Verknüpfung zwischen einem Videomedienstrom und einem Audiomedienstrom muss nicht auf einer Eins-zu-eins-Basis erfolgen. Vielmehr kann ein Satz von Videomedienströmen mit einem Satz von Audiomedienströmen verknüpft sein. Beispielsweise kann ein Film in einer beliebigen aus einer Vielfalt von Bitraten oder Auflösungen präsentiert werden, während eine verknüpfte Audiospur auf Englisch, Spanisch oder Französisch sein kann.The media streams (eg, stream STR1 and stream STR2), that of the terminal device 110 may include related content, and the rendering and / or playback of the media streams may be at the terminal device 110 be synchronized. For example, one media stream may include one video media stream and the other media stream may include an audio media stream with audio content that should be synchronized with the video content of the video media stream, as is commonly the case with many television programs, movies, sports event presentations, and the like. The link between a video media stream and an audio media stream need not be on a one-to-one basis. Rather, a set of video media streams may be associated with a set of audio media streams. For example, a movie may be presented in any of a variety of bit rates or resolutions, while a linked audio track may be in English, Spanish or French.

Die Terminalvorrichtung 110 kann Medienwiedergabevorrichtungen 112 darstellen, die Medienpakete von dem Verteilungsserver 130 herunterladen, die codierten Medienressourcen decodieren und sie für Wiedergabe rendern. Beispielsweise kann die Terminalvorrichtung 110 in Form einer mobilen Vorrichtung, wie eines Smartphones, eines Tabletcomputers oder eines Laptops, realisiert sein. Als weiteres Beispiel kann die Terminalvorrichtung 110 ein Desktopcomputer sein. Als noch ein anderes Beispiel kann die Terminalvorrichtung 110 eine Set-Top-Kabelbox, eine digitale Medienwiedergabevorrichtung, eine Spielekonsole oder dergleichen sein.The terminal device 110 can media playback devices 112 represent the media packages from the distribution server 130 download, decode the encoded media resources and render them for replay. For example, the terminal device 110 in the form of a mobile device such as a smartphone, a tablet computer or a laptop. As another example, the terminal device 110 to be a desktop computer. As yet another example, the terminal device 110 a set-top cable box, a digital media player, a game console or the like.

Das Netzwerk 140, über das die verschiedenen hierin beschriebenen Komponenten kommunizieren, kann ein drahtgebundenes Kommunikationsnetzwerk, ein drahtloses Kommunikationsnetzwerk oder eine Kombination davon umfassen. Beispiele für ein drahtloses Netzwerk können ein WLAN-Netzwerk oder ein Mobilfunknetzwerk einschließen. Beispiele für ein drahtgebundenes Netzwerk können ein Koaxialkabelnetzwerk, ein faseroptisches Netzwerk oder ein Ethernet-Netzwerk einschließen. Die besondere Form und die besonderen Attribute des Netzwerks 140 sind unwesentlich für die vorliegende Offenbarung, sofern nicht anders angegeben.The network 140 , via which the various components described herein may communicate, may comprise a wired communication network, a wireless communication network, or a combination thereof. Examples of a wireless network may include a Wi-Fi network or a cellular network. Examples of a wired network may include a coaxial cable network, a fiber optic network, or an Ethernet network. The special shape and the special attributes of the network 140 are not material to the present disclosure unless otherwise stated.

2 veranschaulicht ein Verfahren 200 gemäß einer Ausführungsform der vorliegenden Offenbarung. Das Verfahren 200 kann ermitteln, ob ein oder mehrere Fehler in dem codierten Medienstrom vorhanden sind (Feld 206). Wenn ein oder mehrere Fehler in dem codierten Medienstrom vorhanden sind, kann das Verfahren 200 eine Wiedergabeliste mit Daten erzeugen oder modifizieren, die den bzw. die Fehler in Bezug auf ein Segment bzw. Segmente in dem codierten Medienstrom angeben, (Feld 208). Die Wiedergabeliste mit Daten, die den bzw. die Fehler angeben, kann zur Verwendung beim Rendern und bei der Wiedergabe des codierten Medienstroms an eine Terminalvorrichtung übertragen werden (Feld 210) (vorbehaltlich einer Modifikation bzw. Modifikationen, die aufgrund des Fehlers bzw. der Fehler in dem codierten Medienstrom erforderlich sind). Falls keine Fehler in dem codierten Medienstrom vorhanden sind, kann das Verfahren 200 eine Wiedergabeliste auf normale Weise (d. h. ohne Daten, die Fehler angeben) erzeugen (Feld 212) und diese Wiedergabeliste zur Verwendung beim Rendern und bei der Wiedergabe des codierten Medienstroms an die Terminalvorrichtung übertragen (Feld 214). Die Terminalvorrichtung kann ein solches Rendern und eine solche Wiedergabe gemäß der Wiedergabeliste und darin dargestellten Fehlerdaten (nicht gezeigt) durchführen. 2 illustrates a method 200 according to an embodiment of the present disclosure. The procedure 200 can determine if one or more errors exist in the encoded media stream (field 206 ). If one or more errors in the encoded media stream are present, the procedure can 200 create or modify a playlist of data indicating the error (s) with respect to a segment (s) in the encoded media stream (field 208 ). The playlist of data indicating the error (s) may be transmitted to a terminal device for use in rendering and in rendering the encoded media stream (box 210 ) (subject to modification (s) required due to the error (s) in the encoded media stream). If there are no errors in the encoded media stream, the method may 200 create a playlist in the normal way (ie without data indicating errors) (field 212 ) and transmit this playlist to the terminal device for use in rendering and in rendering the encoded media stream (field 214 ). The terminal device may perform such rendering and reproduction according to the playlist and error data (not shown) therein.

Es wird erwartet, dass der Betrieb des Verfahrens 200 verschiedene Vorteile in vernetzten Systemen zur Medienbereitstellung bietet. Ein Vorteil ist, dass die Auswirkungen einer Störung eines Medien-Feeds und/oder von Fehlern bei der Codierung dieses Medien-Feeds minimiert werden können. Durch Bereitstellen von Daten, die einen Fehler bzw. Fehler bei einem oder mehreren codierten Segmenten angeben, kann eine Terminalvorrichtung in die Lage versetzt werden, die Auswirkungen dieser Fehler bei einem Betrachtungserlebnis zu mindern. Wenn beispielsweise ein Fehler für ein Segment oder eine Anzahl von Segmenten angegeben wird, kann die Terminalvorrichtung diese Segmente durch alternative Segmente ersetzen. Die alternativen Segmente können analoge Segmente mit unterschiedlichen Attributen, wie Bitrate, jedoch gemeinsamem Inhalt gegenüber dem ersetzten Segment einschließen. Dadurch kann ermöglicht werden, dass anstatt der Präsentation von Leerinhalt oder eines Präsentationsfehlers die Präsentation des Programms trotz des Fehlers fortgesetzt wird.It is expected that the operation of the procedure 200 offers several benefits in networked media delivery systems. One advantage is that it can minimize the effects of disrupting a media feed and / or coding errors in this media feed. By providing data indicative of an error in one or more encoded segments, a terminal device may be enabled to mitigate the effects of these errors in a viewing experience. For example, if an error is specified for a segment or a number of segments, the terminal device may replace these segments with alternative segments. The alternative segments may include analog segments with different attributes, such as bit rate, but common content over the replaced segment. This may allow the presentation of the program to continue despite the error rather than the presentation of empty content or a presentation error.

Insbesondere für den Fall, dass Live-Videoinhalte und Echtzeitbereitstellung eingeschlossen sind, wird ein weiterer Vorteil darin gesehen, dass der Verteilungsserver 130 die fehlerhaften Segmente mittels gewöhnlicher Verarbeitungstechniken in eine Wiedergabeliste integrieren kann. Das Verfahren 200 erfordert keine Ausnahmesteuerung, beispielsweise um einzuschätzen, wann verlorene Segmente wieder angezeigt werden. Ferner nutzt der Benutzer von Fehler-Tags die vorhandene clientgesteuerte Auswahl von Strömen.In particular, in the event that live video content and real-time provisioning are included, another advantage is seen in the fact that the distribution server 130 can incorporate the faulty segments into a playlist using common processing techniques. The procedure 200 does not require exception control, for example, to estimate when lost segments reappear. Furthermore, the user of error tags uses the existing client-driven selection of streams.

Noch ein weiterer Vorteil, der durch die vorliegende Offenbarung realisiert wird, ist eine Verringerung der Ressourcennutzung der verschiedenen beteiligten Komponenten. Beispielsweise kann die Terminalvorrichtung auf wiederholte Versuche zum Herunterladen eines Segments oder einer Folge von Segmenten verzichten und somit die Belastung des Verteilungsservers und der Netzwerkbandbreitennutzung reduzieren.Yet another advantage realized by the present disclosure is a reduction in the resource usage of the various components involved. For example, the terminal device may dispense with repeated attempts to download a segment or sequence of segments, thus reducing the load on the distribution server and network bandwidth usage.

Die Ermittlung, ob ein Fehler bzw. Fehler in dem codierten Medienstrom vorhanden sind, kann gemäß einer Vielfalt an Techniken durchgeführt werden. Als ein Beispiel können die Segmente des codierten Medienstroms Daten enthalten, die einen solchen Fehler angeben, oder anderweitig damit verknüpft sein. Dieser Fehler kann erkannt werden, etwa durch den Verteilungsserver, und die Wiedergabeliste, die diesen Fehler widerspiegelt, kann entsprechend erzeugt werden. Als weiteres Beispiel kann der Verteilungsserver die Segmente von codiertem Medienstrom analysieren und ermitteln, ob das Segment einen Defekt aufweist oder, in einigen Fällen, ob das Segment in dem codierten Medienstrom insgesamt fehlt. Beispielsweise kann der Verteilungsserver ermitteln, ob das Segment beschädigt ist oder Nullinhalt enthält.The determination of whether an error or errors exist in the encoded media stream may be made according to a variety of techniques. As an example, the segments of the encoded media stream may contain data that indicates such error, or otherwise be associated with it. This error can be detected, for example, by the distribution server, and the playlist reflecting this error can be generated accordingly. As another example, the distribution server may analyze the segments of encoded media stream and determine whether the segment has a defect or, in some cases, whether the segment in the encoded media stream is missing altogether. For example, the distribution server can determine if the segment is corrupt or contains null content.

Der eine oder die mehreren Fehler in dem codierten Medienstrom können aus einer Reihe von Betriebsszenarien resultieren. Beispielsweise kann ein solcher Fehler durch einen Fehler beim Codiervorgang selbst, etwa eine Störung im Codierer, hervorgerufen werden. Dies kann zu beschädigten Segmenten in dem codierten Medienstrom führen. Ebenso kann ein Codierer auf dem Codierserver (oder der Codierserver selbst) abstürzen oder anderweitig funktionsunfähig werden, was während der Wiederherstellung des Codierers nach dem Absturz zu einer Codierunterbrechung für diesen bestimmten Medienstrom führt. Somit kann eine Lücke in dem codierten Medienstrom vorhanden sein. Als weiteres Beispiel kann ein Fehler oder eine andere Störung im Upstream-Medien-Feed zu Fehlern in dem codierten Medienstrom führen. Beispielsweise kann eine Kamera, die ein Live-Programm aufzeichnet, vorübergehend ausfallen oder eine Upstream-Netzwerkverbindung kann unterbrochen werden. Somit ist der Codierer möglicherweise nicht in der Lage, entsprechende Segmente in dem codierten Medienstrom zu erzeugen. Dies kann auch eine Lücke in dem codierten Medienstrom hervorrufen. Eine Lücke in dem codierten Medienstrom kann sich auf das Fehlen eines codierten Segments, Nullinhalt in dem codierten Segment oder Beschädigung in dem codierten Segment beziehen.The one or more errors in the encoded media stream may result from a number of operating scenarios. For example, such an error may be caused by an error in the encoding process itself, such as a disturbance in the encoder. This can lead to damaged segments in the encoded media stream. Likewise, an encoder on the encoder server (or the encoder server itself) may crash or otherwise become inoperable, resulting in an encoder break for that particular media stream during recovery of the encoder after the crash. Thus, there may be a gap in the encoded media stream. As another example, an error or other disturbance in the upstream media feed may result in errors in the encoded media stream. For example, a camera recording a live program may temporarily go down or an upstream network connection may be interrupted. Thus, the encoder may not be able to generate corresponding segments in the encoded media stream. This can also cause a gap in the encoded media stream. A gap in the encoded media stream may relate to the absence of a coded segment, zero content in the encoded segment, or corruption in the encoded segment.

Wie dargelegt, kann bei Erkennung eines oder mehrerer Fehler in dem codierten Medienstrom eine Wiedergabeliste mit Daten erzeugt werden, die diesen bzw. diese Fehler, also Fehlerdaten, angeben. Die Wiedergabeliste kann zum Beispiel durch einen Verteilungsserver erzeugt werden. Die Fehlerdaten können einem oder mehreren jeweiligen Segment(en) des codierten Medienstroms entsprechen. Entsprechend können die Fehlerdaten in dem codierten Medienstrom in Form eines Fehler-Tags in dem Wiedergabelisteneintrag für das betroffene Segment vorliegen. Ein Beispiel-Fehler-Tag 136 ist in 1 gezeigt.As stated, upon detection of one or more errors in the encoded media stream, a playlist may be generated with data indicating this or these errors, that is, error data. The playlist can be generated, for example, by a distribution server. The error data may correspond to one or more respective segments of the encoded media stream. Accordingly, the error data in the encoded media stream may be in the form of an error tag in the playlist entry for the affected segment. An example error tag 136 is in 1 shown.

In einigen Ausführungsformen geben die Fehlerdaten möglicherweise lediglich an, dass ein Defekt bei dem entsprechenden Segment vorliegt. In diesem Sinne können die Fehlerdaten einen binären Wert annehmen, der angibt, ob das Segment verwendbar ist oder nicht. In anderen Ausführungsformen können die Fehlerdaten andere Zusatzinformationen einschließen. Die Zusatzinformationen können in dem Fehler-Tag in der Wiedergabeliste enthalten sein oder der Wiedergabelisteneintrag kann ein zusätzliches Tag für die Zusatzinformationen enthalten. Beispielsweise können die Zusatzinformationen einen alternativen Netzwerkspeicherort (z. B. eine URL) einschließen, von dem die Terminalvorrichtung alternative Mediensegmente empfangen kann. Die Terminalvorrichtung kann dieses alternative Segment rendern und wiedergeben, anstatt zu versuchen, das angegebene Segment mit einem Fehler zu rendern und wiederzugeben. In einigen Fällen können aufeinanderfolgende codierte Segmente Fehlerdaten enthalten. Somit können, als weiteres Beispiel, die Zusatzinformationen ein Zeitelement einschließen, das die Anzahl (oder die Schätzung davon) aufeinanderfolgender Segmente mit Fehlern oder den von den Fehlern betroffenen Gesamtzeitraum (oder die Schätzung davon) widerspiegelt.In some embodiments, the error data may merely indicate that there is a defect in the corresponding segment. In In this sense, the error data may assume a binary value indicating whether the segment is usable or not. In other embodiments, the error data may include other additional information. The additional information may be included in the error tag in the playlist, or the playlist entry may include an additional tag for the supplemental information. For example, the additional information may include an alternative network storage location (eg, a URL) from which the terminal device may receive alternative media segments. The terminal device can render and render this alternative segment instead of trying to render and play the specified segment with an error. In some cases, consecutive encoded segments may contain error data. Thus, as another example, the additional information may include a time element that reflects the number (or the estimate thereof) of successive segments having errors or the total period affected by the errors (or the estimate thereof).

Nachdem die Wiedergabeliste erzeugt wurde, wird sie der Terminalvorrichtung zur Verwendung beim Rendern und bei der Wiedergabe des codierten Medienstroms bereitgestellt. Möglicherweise erkennt die Terminalvorrichtung die Fehlerdaten in der Wiedergabeliste und ändert das Rendern und die Wiedergabe des Medienstroms entsprechend.After the playlist is created, it is provided to the terminal device for use in rendering and rendering the encoded media stream. The terminal device may detect the error data in the playlist and change the rendering and playback of the media stream accordingly.

In einem Beispiel kann, wenn die Terminalvorrichtung Fehlerdaten für ein bestimmtes Segment erkennt, die Terminalvorrichtung stattdessen ein anderes alternatives Segment herunterladen und verwenden, das mit dem Fehlersegment in Bezug auf den Inhalt verwandt ist. Beispielsweise kann das alternative Segment gemeinsamen Inhalt mit dem Fehlersegment darstellen, jedoch ein oder mehrere unterschiedliche Attribute, wie eine andere Bitrate, eine andere Auflösung (für Videosegmente), ein anderes Codierformat oder eine andere Sprache (für Audiosegmente) aufweisen. Somit kann, wenn ein Fehlersegment eine Auflösung von 1080p aufweist, das andere verwandte Segment, das stattdessen verwendet wird, eine Auflösung von 480p aufweisen.In one example, if the terminal device detects error data for a particular segment, the terminal device may instead download and use another alternative segment related to the error segment in relation to the content. For example, the alternative segment may present common content with the error segment, but may have one or more different attributes, such as a different bit rate, a different resolution (for video segments), a different encoding format, or a different language (for audio segments). Thus, if one error segment has a resolution of 1080p, the other related segment used instead may have a resolution of 480p.

Wenn der Wiedergabelisteneintrag für ein bestimmtes Segment einen Fehler bei dem Segment angibt, versucht die Terminalvorrichtung in einem anderen Beispiel möglicherweise nicht, dieses Segment von dem Verteilungsserver herunterzuladen. Wenn das Segment nur eines von mehreren aufeinanderfolgenden Segmenten mit Fehlern ist, können die Fehlerdaten für dieses Segment die Anzahl an nachfolgenden Segmenten angeben, die ebenfalls Fehler aufweisen. Die Terminalvorrichtung versucht in ähnlicher Weise möglicherweise nicht, diese aufeinanderfolgenden Segmente herunterzuladen, bis ein Segment erreicht wird, das als fehlerfrei angegeben (oder geschätzt) wird. Durch den Verzicht auf den Versuch, diese Segmente mit Fehlern herunterzuladen, kann die Belastung des Verteilungsservers und der Netzwerkbandbreite reduziert werden.In another example, if the playlist entry for a particular segment indicates an error in the segment, the terminal device may not attempt to download that segment from the distribution server. If the segment is only one of several consecutive segments with errors, the error data for that segment may indicate the number of subsequent segments that also have errors. Similarly, the terminal device may not attempt to download these successive segments until it reaches a segment that is indicated (or estimated) to be healthy. By not attempting to download these segments with errors, the load on the distribution server and network bandwidth can be reduced.

In einem anderen Beispiel dafür, wie eine Terminalvorrichtung das Rendern und die Wiedergabe gemäß der Wiedergabeliste mit Fehlerdaten anpassen kann, kann die Terminalvorrichtung ein lokales alternatives Segment anstelle des Segments mit Fehlern anzeigen. Das lokale alternative Segment kann in einigen Fällen als „Slate“-Inhalt bezeichnet werden. Beispielsweise kann das lokale alternative Segment eine Nachricht „Technisches Problem aufgetreten“ oder dergleichen beinhalten. Diese Reaktion auf die Fehlerdaten kann insbesondere geeignet sein, wenn die Terminalvorrichtung oder ihre Wiedergabevorrichtung Render- und Wiedergabetechnologie nutzt, die nicht so neu wie ihre moderneren Entsprechungen ist oder sich davon unterscheidet.In another example of how a terminal device can adjust the rendering and playback according to the playlist with error data, the terminal device may display a local alternative segment instead of the segment with errors. The local alternative segment may in some cases be referred to as a "slate" content. For example, the local alternative segment may include a "technical problem occurred" message or the like. This response to the error data may be particularly suitable when the terminal device or its playback device utilizes rendering and rendering technology that is not as novel as or different from its more modern counterparts.

Wenn die Fehlerdaten außerdem eine Anzahl (oder Schätzung) von aufeinanderfolgenden Segmenten mit Fehlern angeben, muss die Terminalvorrichtung ferner während des Renderns dieser aufeinanderfolgenden Segmente möglicherweise nur einmal auf das lokale alternative Segment zugreifen. In einigen Ausführungsformen kann das alternative Segment, einschließlich „Slate“-Inhalt, von einer externen Quelle, wie dem Verteilungsserver, heruntergeladen werden, anstatt zunächst lokal auf der Terminalvorrichtung gespeichert zu werden. In diesem Fall kann die Terminalvorrichtung auch von den Daten profitieren, welche die Anzahl von aufeinanderfolgenden Segmenten mit Fehlern angeben, da es möglich ist, dass die Terminalvorrichtung das alternative Segment nur einmal herunterlädt und dann dieses nun lokale alternative Segment dazu nutzt, die nachfolgenden Segmente mit Fehlern zu ersetzen.Further, if the error data indicates a number (or estimate) of consecutive segments with errors, the terminal device may only need to access the local alternative segment once during the rendering of these successive segments. In some embodiments, the alternative segment, including slate content, may be downloaded from an external source, such as the distribution server, rather than first stored locally on the terminal device. In this case, the terminal device may also benefit from the data indicating the number of consecutive segments with errors, since it is possible for the terminal device to download the alternative segment only once and then use this local alternative segment to communicate the subsequent segments To replace errors.

In einer weiteren Ausführungsform kann ein Verteilungsserver 130 ein fehlerhaftes Segment durch ein Segment mit alternativem Inhalt ersetzen. Beispielsweise kann der Verteilungsserver 130 ein Segment von der Dauer des fehlerhaften Segments erstellen, das Slate-Inhalt oder einen anderen alternativen Inhalt enthält. Wenn ein Verteilungsserver 130 erkennt, dass ein Segment in einem von einem Codierserver 120 bereitgestellten Daten-Feed fehlt, kann der Verteilungsserver 130 in ähnlicher Weise ein Segment mit alternativem Inhalt aus Slate-Inhalt, Nullinhalt oder einem anderen alternativen Inhalt erneut erstellen. In einer Ausführungsform kann der Verteilungsserver 130 verschiedene Instanzen von Slate-Inhalt, der gemäß gemeinsamen Codierprotokollen und für gewöhnlich verwendete Vorrichtungen codiert wurde, speichern und kann ein alternatives Segment beispielsweise als ein intracodiertes Einzelbild von solchem Inhalt, gefolgt von einer ausreichenden Anzahl von SKIP-codierten Einzelbildern, erstellen, um ein Segment von ausreichender Dauer als Ersatz für ein fehlendes Segment zu erstellen.In another embodiment, a distribution server 130 replace a faulty segment with an alternative content segment. For example, the distribution server 130 create a segment of the duration of the faulty segment containing slate content or other alternative content. If a distribution server 130 Detects a segment in one of a coding server 120 If the supplied data feed is missing, the distribution server may 130 similarly recreating a segment with alternative content of slate content, null content, or other alternative content. In one embodiment, the distribution server 130 various instances of slate content encoded according to common encoding protocols and commonly used devices store and may include an alternative segment, for example, as an intra-coded frame of such content, followed by a Create a sufficient number of SKIP-encoded frames to create a segment of sufficient duration to replace a missing segment.

In der Praxis kann das Verfahren 200 Medienquelldaten von einem Medien-Feed empfangen (Feld 202). Diese Medienquelldaten können danach als codierter Medienstrom codiert werden, der eine Vielzahl von codierten Mediensegmenten umfasst (Feld 204). Das Verfahren 200 kann dann mit Feld 206 fortfahren, wie vorstehend beschrieben, wobei das Verfahren 200 ermitteln kann, ob ein oder mehrere Fehler in dem codierten Medienstrom vorhanden sind.In practice, the procedure can 200 Receive media source data from a media feed (Field 202 ). This media source data may then be encoded as a coded media stream comprising a plurality of encoded media segments (field 204 ). The procedure 200 can then use field 206 continue as described above, wherein the method 200 determine whether one or more errors exist in the encoded media stream.

Die in Feld 202 referenzierten Medienquelldaten können von einem Codierserver über einen Medien-Feed empfangen und danach durch den Codierserver codiert werden, um den codierten Medienstrom zu erzeugen, der die Vielzahl von Mediensegmenten umfasst. Oftmals kann der Medien-Feed eine Anzahl von verwandten Medienquelldaten-Feeds umfassen. Beispielsweise können mehrere Instanzen von Medienquelldaten gemeinsame Videoinhalte enthalten, die in verschiedenen Bitraten oder Videoauflösungen dargestellt werden. In ähnlicher Weise können mehrere Instanzen von Medienquelldaten gemeinsamen Audioinhalt umfassen, der in mehreren unterschiedlichen Sprachen präsentiert wird. Es kann auch eine Beziehung zwischen einem Audiomedien-Feed und einem Videomedien-Feed derart bestehen, dass die beiden für synchronisierte Präsentation bestimmt sind.The in field 202 referenced media source data may be received from a encoding server via a media feed and then encoded by the encoding server to generate the encoded media stream comprising the plurality of media segments. Often, the media feed may include a number of related media source data feeds. For example, multiple instances of media source data may contain common video content displayed at various bitrates or video resolutions. Similarly, multiple instances of media source data may include common audio content presented in several different languages. There may also be a relationship between an audio media feed and a video media feed such that the two are for synchronized presentation.

Wie dargelegt, können die Medienquelldaten Videoquellendaten oder Audioquellendaten sein. Ebenso kann der codierte Medienstrom ein codierter Videostrom oder ein codierter Audiostrom sein. Der codierte Medienstrom kann nach einem beliebigen bekannten Codierstandard, insbesondere H.264 oder H.265 für Videoquelldaten und AAC, MP3 oder AC-3 für Audioquelldaten, erzeugt werden. Der codierte Medienstrom kann anschließend zum Beispiel an den Verteilungsserver bereitgestellt werden, um zu ermitteln, ob der codierte Medienstrom einen oder mehrere Fehler enthält, sowie um die weiteren Schritte des Verfahrens 200 auszuführen.As stated, the media source data may be video source data or audio source data. Likewise, the encoded media stream may be a coded video stream or an encoded audio stream. The encoded media stream may be generated according to any known encoding standard, in particular H.264 or H.265 for video source data and AAC, MP3 or AC-3 for audio source data. The encoded media stream may then be provided to the distribution server, for example, to determine if the encoded media stream contains one or more errors, as well as the further steps of the method 200 perform.

3 veranschaulicht ein Beispielanwendungsszenario einer Ausführungsform der vorliegenden Offenbarung. Das System 300 kann eine Medienquelle 310, einen Codierer 320 und einen Verteilungsserver 330 einschließen. Ein erster Strom 340 von erstem Medieninhalt und ein zweiter Strom 342 von zweitem Medieninhalt werden über den Medien-Feed 350 von der Medienquelle 310 an den Codierer 320 gesendet. Von dort werden der erste und der zweite Strom 340, 342 durch den Codierer 320 in codierte Segmente codiert und über die codierten Ströme 352 an den Verteilungsserver 330 gesendet. Die codierten Segmente des ersten und des zweiten Stroms 340, 342 können an dem Verteilungsserver 330 analysiert werden, um zu ermitteln, ob Fehler in den codierten Segmenten vorhanden sind. Gemäß dieser Ermittlung kann der Verteilungsserver 330 die codierten Segmente in Wiedergabelisten organisieren, wobei Segmente mit Fehlern in den Wiedergabelisten angegeben werden. Die codierten Segmente werden, falls möglich, zum Streamen an eine Terminalvorrichtung (nicht gezeigt) für Rendering und Wiedergabe zur Verfügung gestellt. 3 illustrates a sample application scenario of one embodiment of the present disclosure. The system 300 can be a media source 310 , an encoder 320 and a distribution server 330 lock in. A first stream 340 from first media content and a second stream 342 second media content will be through the media feed 350 from the media source 310 to the encoder 320 Posted. From there, the first and the second stream 340 . 342 through the encoder 320 coded into coded segments and over the coded streams 352 to the distribution server 330 Posted. The coded segments of the first and second streams 340 . 342 can at the distribution server 330 be analyzed to determine if there are errors in the encoded segments. According to this determination, the distribution server 330 organize the encoded segments into playlists, indicating segments with errors in the playlists. The coded segments, if possible, are provided for streaming to a terminal device (not shown) for rendering and playback.

Der erste und der zweite Strom 340, 342 stellen Instanzen von Medieninhalten dar, wenn sie gemäß den Verfahren und Techniken der vorliegenden Offenbarung sequenziell zwischen den Komponenten des Systems 300 übertragen und davon verarbeitet werden. Der erste und der zweite Strom 340, 342 können zusammen ein audiovisuelles Programm (oder einen Teil davon) darstellen. Der erste und der zweite Strom 340, 342 können synchronisiert sein, wenn sie an einer Terminalvorrichtung wiedergegeben werden. Somit kann der erste Strom 340 die Audiokomponente des Programms bilden und der zweite Strom 342 kann die Videokomponente des Programms bilden.The first and the second stream 340 . 342 represent instances of media content when sequenced between the components of the system according to the methods and techniques of the present disclosure 300 be transferred and processed by it. The first and the second stream 340 . 342 can together constitute an audiovisual program (or part of it). The first and the second stream 340 . 342 may be synchronized when played back on a terminal device. Thus, the first stream 340 the audio component of the program and the second stream 342 can be the video component of the program.

Zunächst entstammen der erste und der zweite Strom 340, 342 der Medienquelle 310 und liegen in Form von Medienquelldaten vor. Somit wird der erste Strom 340 an der Medienquelle 310 durch die Medienquelldaten 312 gebildet. Der zweite Strom 342 wird an der Medienquelle 310 durch die Medienquelldaten 314 gebildet.First, the first and the second stream come from 340 . 342 the media source 310 and are in the form of media source data. Thus, the first stream 340 at the media source 310 through the media source data 312 educated. The second stream 342 will be at the media source 310 through the media source data 314 educated.

Danach können die Medienquelldaten 312, 314 über den Medien-Feed 350 von der Medienquelle 310 an den Codierer 320 gesendet werden. Der Codierer 320 kann die Medienquelldaten 312, 314 als codierte Segmente codieren. Hier können die Medienquelldaten 312, die den ersten Strom 340 darstellen, als codierte Segmente 322.1, 322.2, 322.3 und so weiter codiert werden. In gleicher Weise können die Medienquelldaten 314 als codierte Segmente 324.1, 324.2, 324.3 und so weiter codiert werden. In diesem beispielhaften Anwendungsfall tritt jedoch ein Fehler in Bezug auf die codierten Segmente 324.3 und 324.4 auf. Dieser Fehler kann das Ergebnis eines Codierfehlers, einer Unterbrechung des Medien-Feeds der Medienquelldaten 314 oder einer anderen hierin erörterten Ursache sein. Der Fehler kann eine Beschädigung der codierten Segmente 324.3, 324.4, das Fehlen der codierten Segmente 324.3, 324.4 oder Nullinhalt in den codierten Segmenten 324.3, 324.4 bedeuten, um einige Beispiele zu nennen.Thereafter, the media source data 312 . 314 via the media feed 350 from the media source 310 to the encoder 320 be sent. The encoder 320 can the media source data 312 . 314 encode as encoded segments. Here you can see the media source data 312 that the first stream 340 represent, as coded segments 322.1 . 322.2 . 322.3 and so on. In the same way, the media source data 314 as coded segments 324.1 . 324.2 . 324.3 and so on. However, in this exemplary application, an error occurs with respect to the encoded segments 324.3 and 324.4 on. This error can be the result of a coding error, an interruption of the media feed of the media source data 314 or any other cause discussed herein. The error can damage the encoded segments 324.3 . 324.4 , the absence of the coded segments 324.3 . 324.4 or zero content in the coded segments 324.3 . 324.4 mean, to give a few examples.

Der erste und der zweite Strom 340, 342 und codierte Segmente davon können über die codierten Ströme 352 an den Verteilungsserver 330 gesendet werden, an dem sie als codierte Segmente 332.1, 332.2 usw. und als codierte Segmente 334.1, 334.2 usw. gespeichert werden. Der Verteilungsserver 330 kann die codierten Segmente analysieren, um Fehler bei den codierten Segmenten zu ermitteln. In diesem Fall kann der Verteilungsserver 330 die codierten Segmente 334.3 und 334.4 als fehlerhaft identifizieren. Entsprechend kann die Wiedergabelistendatei 336, die von dem Verteilungsserver 330 für den zweiten Strom 342 erzeugt wird, diese Fehler angeben. Insbesondere schließt das Fehler-Tag in den jeweiligen Einträgen in der Wiedergabelistendatei 336 für die codierten Segmente 334.3 und 334.4 Daten ein, um den Fehler anzugeben. Da kein Fehler in Bezug auf die codierten Segmente 334.1, 334.2, 334.5 und 334.6 identifiziert wird, geben die Fehler-Tags in den jeweiligen Einträgen der Wiedergabelistendatei an, dass kein Fehler für diese codierten Segmente vorliegt. Da keine Fehler in den codierten Segmenten des ersten Stroms 340 entdeckt werden, geben die Fehler-Tags auf ähnliche Weise in der Wiedergabelistendatei 335 an, dass diese codierten Segmente fehlerfrei sind.The first and the second stream 340 . 342 and encoded segments thereof may be over the encoded streams 352 to the distribution server 330 Posted where they are encoded as segments 332.1 . 332.2 etc. and as coded segments 334.1 . 334.2 etc. are stored. The distribution server 330 can parse the encoded segments to detect errors in the encoded segments. In this case, the distribution server can 330 the coded segments 334.3 and 334.4 identify as faulty. Accordingly, the playlist file 336 that from the distribution server 330 for the second stream 342 is generated, specify these errors. In particular, the error tag will be included in the respective entries in the playlist file 336 for the coded segments 334.3 and 334.4 Data to indicate the error. There is no error regarding the coded segments 334.1 . 334.2 . 334.5 and 334.6 is identified, the error tags in the respective entries of the playlist file indicate that there is no error for these encoded segments. There are no errors in the coded segments of the first stream 340 to discover the error tags in a similar way in the playlist file 335 assume that these coded segments are error free.

Auf Anforderung einer Terminalvorrichtung können die Wiedergabelistendateien 335, 336 an die Terminalvorrichtung übertragen werden. Die Terminalvorrichtung kann Rendern und Wiedergabe der Ströme 340, 342 basierend auf den Fehlerangaben in der Wiedergabelistendatei 336 für die Segmente 334.3 und 334.4 durchführen. Beispielsweise kann die Terminalvorrichtung alternative Segmente auswählen und herunterladen, um die Segmente 334.3 und 334.4 bei der Wiedergabe zu ersetzen. Die verschiedenen Techniken, mit denen die Terminalvorrichtung Segmentfehler adressieren kann, sind hierin ausführlicher beschrieben.At the request of a terminal device, the playlist files may 335 . 336 be transmitted to the terminal device. The terminal device can render and playback the streams 340 . 342 based on the error information in the playlist file 336 for the segments 334.3 and 334.4 carry out. For example, the terminal device may select and download alternative segments to the segments 334.3 and 334.4 to replace during playback. The various techniques with which the terminal device can address segment errors are described in greater detail herein.

Da keine Fehler in den Fehler-Tags der Wiedergabelistendatei 335 für den ersten Strom 340 angegeben werden, kann die Terminalvorrichtung diese Segmente auf normale Weise rendern und wiedergeben. Wenn der erste und der zweite Strom 340, 342 synchron wiedergegeben werden (wobei daran erinnert sei, dass der erste und der zweite Strom 340, 342 komplementäre Audio- und Videoinhalte darstellen können), kann die Wiedergabe des zweiten Stroms 342 aufrechterhalten werden, während die Terminalvorrichtung geeignete Segmentanpassungen vornimmt, um die Fehler in den Segmenten des zweiten Stroms 342 zu adressieren. Da die Wiedergabe des zweiten Stroms 342 fortgesetzt wird, anstatt die Wiedergabe zu verschieben, bis ein fehlerfreies Segment verfügbar ist, kann dies die synchronisierte Wiedergabe des ersten und des zweiten Stroms 340, 342 aufrechterhalten.There are no errors in the error tags of the playlist file 335 for the first stream 340 can be given, the terminal device can render and play these segments in the normal way. If the first and the second stream 340 . 342 synchronously (remembering that the first and second currents 340 . 342 can represent complementary audio and video content), the playback of the second stream 342 while the terminal device makes appropriate segment adjustments to the errors in the segments of the second stream 342 to address. Since the reproduction of the second stream 342 instead of postponing playback until an error-free segment is available, this can be the synchronized playback of the first and second streams 340 . 342 maintained.

Die hierin beschriebenen Techniken können von einem Zentralprozessor eines oder mehrerer Computersysteme durchgeführt werden. 4 veranschaulicht ein beispielhaftes Computersystem 400, das solche Techniken durchführen kann. Beispielsweise können der Codierserver 120, der Verteilungsserver 130 und das Terminal von 1 in Form des Computersystems 400 realisiert sein. Das Computersystem 400 kann einen Zentralprozessor 410 und einen Speicher 420 einschließen. Der Zentralprozessor 410 kann verschiedene in dem Speicher 420 gespeicherte Programmbefehle lesen und ausführen, die ein Betriebssystem 412 des Systems 400 und verschiedene Anwendungen 414.1 bis 414.N bestimmen. Beispielsweise kann eine der Anwendungen 414.1 bis 414.N den Codierer 122, eine Anwendung des Verteilungsservers 130, die zur Erkennung codierter Segmente mit Fehlern verwendet wird, und/oder die Wiedergabevorrichtung 112 von 1 umfassen. Die Programmbefehle können den Prozessor veranlassen, die verschiedenen Techniken zur Verwaltung von Mediensegmenten durchzuführen, um eine Wiedergabe dieser Segmente auszuführen, wie hierin beschrieben.The techniques described herein may be performed by a central processor of one or more computer systems. 4 illustrates an exemplary computer system 400 who can perform such techniques. For example, the encoding server 120 , the distribution server 130 and the terminal of 1 in the form of the computer system 400 be realized. The computer system 400 can be a central processor 410 and a memory 420 lock in. The central processor 410 can be different in the store 420 read and execute stored program instructions that are an operating system 412 of the system 400 and different applications 414.1 to 414.N determine. For example, one of the applications 414.1 to 414.N the encoder 122 , an application of the distribution server 130 used to identify encoded segments with errors and / or the playback device 112 from 1 include. The program instructions may cause the processor to perform the various media segment management techniques to perform rendering of those segments as described herein.

Wie dargelegt, kann der Speicher 420 Programmbefehle speichern, die bei Ausführung den Prozessor 410 veranlassen, die vorstehend beschriebenen Techniken durchzuführen. Der Speicher 420 kann die Programmbefehle auf elektrisch, magnetisch und/oder optisch basierten Speichermedien speichern. Der Speicher kann flüchtigen und/oder nicht flüchtigen Speicher umfassen. Als eine weitere Beispielanwendung des Speichers 420 kann der Speicher 420 den Festspeicher 132 von 1 realisieren. Somit kann der Speicher 420 dazu konfiguriert sein, codierte Segmente und entsprechende Wiedergabelistendateien zu speichern.As stated, the memory may 420 Program commands that save the processor when executed 410 induce the techniques described above. The memory 420 can store the program instructions on electrically, magnetically and / or optically based storage media. The memory may include volatile and / or non-volatile memory. As another example application of the memory 420 can the memory 420 the read-only memory 132 from 1 realize. Thus, the memory can 420 be configured to store coded segments and corresponding playlist files.

Das System 400 kann andere Komponenten aufweisen, die mit der Funktion des Systems als Medienquelle, Medienwiedergabevorrichtung oder beides übereinstimmen können. Das System 400 kann einen Codierer 440 zur Durchführung von Videocodierung an einem oder mehreren Mediensegmenten und eine Übertragungsvorrichtung 450 (gezeigt als TX) zum Übertragen von Daten aus dem System 400 heraus aufweisen. Der Codierer 440 kann als eine Hardwarevorrichtung (z. B. eine von dem Zentralprozessor 410 getrennte Verarbeitungsschaltung) bereitgestellt sein oder er kann in Software als Anwendung 414.1 bereitgestellt sein. The system 400 may have other components that may match the function of the system as a media source, media player, or both. The system 400 can be an encoder 440 for performing video coding on one or more media segments and a transmission device 450 (shown as TX) for transferring data from the system 400 out have. The encoder 440 can be considered a hardware device (e.g., one from the central processor 410 separate processing circuit) or may be in software as an application 414.1 be provided.

In einer Funktion als Medienwiedergabevorrichtung kann das System 400 eine Empfangsvorrichtung 450 (gezeigt als RX), einen Decodierer 480, eine Anzeige 460 und Benutzerschnittstellenelemente 470 aufweisen. Die Empfangsvorrichtung 450 kann Daten empfangen und der Decodierer 480 kann die Daten decodieren. Beispielsweise kann die Terminalvorrichtung 110 von 1 codierte Mediensegmente von dem Verteilungsserver 130 von 1 empfangen und diese codierten Mediensegmente zur Wiedergabe decodieren. Die Anzeige 460 kann eine Anzeigevorrichtung sein, auf der decodierte Mediensegmente gerendert werden können. Das Benutzerschnittstellenmodul 470 kann Komponentenvorrichtungen (wie Bewegungssensoren, Touchscreen-Eingänge, Tastatureingänge, Fernsteuerungseingänge und/oder Steuereinrichtungseingänge) einschließen, durch die Bediener Daten in das System 400 eingeben.In a function as a media player, the system 400 a receiving device 450 (shown as RX), a decoder 480 , an ad 460 and user interface elements 470 exhibit. The receiving device 450 can receive data and the decoder 480 can decode the data. For example, the terminal device 110 from 1 encoded media segments from the distribution server 130 from 1 receive and decode these encoded media segments for playback. The ad 460 may be a display device on which decoded media segments can be rendered. The user interface module 470 may include component devices (such as motion sensors, touch screen inputs, keyboard inputs, remote control inputs, and / or controller inputs) through the operators data into the system 400 enter.

Verschiedene Ausführungsformen der vorliegenden Offenbarung sind hierin spezifisch veranschaulicht und beschrieben. Es versteht sich jedoch, dass Modifikationen und Variationen der vorliegenden Offenbarung von den vorstehenden Lehren abgedeckt sind und innerhalb des Bereichs der beigefügten Ansprüche liegen, ohne vom Wesen und beabsichtigten Umfang der Offenbarung abzuweichen.Various embodiments of the present disclosure are specifically illustrated and described herein. It should be understood, however, that modifications and variations of the present disclosure are covered by the above teachings and are within the scope of the appended claims without departing from the spirit and intended scope of the disclosure.

Claims (31)

Verfahren, umfassend: reagierend auf empfangene Segmente von codierten Medien und eine Wiedergabeliste, die ein Medienelement beschreibt, zu dem die codierten Medien gehören, Ermitteln, welche codierten Mediensegmente Fehler enthalten; für ein erstes codiertes Mediensegment, das keinen Fehler enthält, Hinzufügen eines ersten Eintrags zu der Wiedergabeliste, wobei der erste Eintrag das erste codierte Mediensegment darstellt; für ein zweites codiertes Mediensegment, das einen Fehler enthält, Hinzufügen eines zweiten Eintrags zu der Wiedergabeliste, wobei der zweite Eintrag das zweite codierte Mediensegment darstellt, und wobei der zweite Eintrag den Segmentfehler angibt, und Speichern der Wiedergabeliste für Zugriff durch eine Wiedergabevorrichtung.Method, comprising: responsive to received segments of encoded media and a playlist describing a media element to which the encoded media belongs, determining which encoded media segments contain errors; for a first encoded media segment containing no error, adding a first entry to the playlist, the first entry representing the first encoded media segment; for a second encoded media segment containing an error, adding a second entry to the playlist, the second entry representing the second encoded media segment, and wherein the second entry indicates the segment error, and Save the playlist for access by a playback device. Verfahren nach Anspruch 1, wobei der zweite Eintrag ein Tag einschließt, das den Segmentfehler angibt.Method according to Claim 1 , where the second entry includes a tag indicating the segment error. Verfahren nach Anspruch 1, wobei der erste Eintrag in die Wiedergabeliste angibt, dass das erste codierte Mediensegment keinen Fehler enthält.Method according to Claim 1 wherein the first entry in the playlist indicates that the first encoded media segment contains no error. Verfahren nach Anspruch 1, wobei der Fehler des zweiten codierten Mediensegments durch Nullinhalt in dem zweiten codierten Mediensegment hervorgerufen wird.Method according to Claim 1 wherein the error of the second coded media segment is caused by null content in the second coded media segment. Verfahren nach Anspruch 1, wobei der Fehler des zweiten codierten Mediensegments durch Beschädigung in dem zweiten codierten Mediensegment hervorgerufen wird.Method according to Claim 1 wherein the error of the second encoded media segment is caused by damage in the second encoded media segment. Verfahren nach Anspruch 1, wobei das zweite codierte Mediensegment ein erwartetes Mediensegment ist und der Fehler das Fehlen des erwarteten zweiten codierten Mediensegments angibt.Method according to Claim 1 wherein the second encoded media segment is an expected media segment and the error indicates the absence of the expected second encoded media segment. Verfahren nach Anspruch 1, wobei der zweite Eintrag in die Wiedergabeliste eine Netzwerkadresse eines alternativen Segments zu dem zweiten codierten Mediensegment umfasst.Method according to Claim 1 wherein the second entry in the playlist comprises a network address of an alternative segment to the second encoded media segment. Verfahren, umfassend: Ermitteln, ob ein codierter Medienstrom einen Segmentfehler enthält; falls der codierte Medienstrom einen Segmentfehler enthält, Modifizieren einer Wiedergabeliste für den codierten Medienstrom, um Daten einzuschließen, die den Segmentfehler angeben, und Übertragen der modifizierten Wiedergabeliste an eine Terminalvorrichtung zum Rendern wenigstens eines Teils des codierten Medienstroms basierend auf den Daten, die den Segmentfehler angeben.Method, comprising: Determining if a coded media stream contains a segment error; if the encoded media stream contains a segment error, modifying a playlist for the encoded media stream to include data indicating the segment error, and Transmitting the modified playlist to a terminal device for rendering at least a portion of the encoded media stream based on the data indicating the segment error. Verfahren nach Anspruch 8, wobei der Segmentfehler einem Segment des codierten Medienstroms entspricht.Method according to Claim 8 wherein the segment error corresponds to a segment of the encoded media stream. Verfahren nach Anspruch 9, wobei die Daten, die den Segmentfehler angeben, in einem Fehler-Tag in einem Wiedergabelisteneintrag für das Segment dargestellt werden.Method according to Claim 9 wherein the data indicating the segment error is displayed in an error tag in a playlist entry for the segment. Verfahren nach Anspruch 8, wobei der Segmentfehler durch einen Codierfehler hervorgerufen wird.Method according to Claim 8 , where the segment error is caused by a coding error. Verfahren nach Anspruch 8, wobei der Segmentfehler durch eine Funktionsunfähigkeit eines Codierers für den codierten Medienstrom hervorgerufen wird.Method according to Claim 8 , wherein the segment error is caused by a malfunction of an encoder for the encoded media stream. Verfahren nach Anspruch 8, wobei der Segmentfehler durch das Fehlen von Medienquelldaten, aus denen der codierte Medienstrom abgeleitet wird, hervorgerufen wird.Method according to Claim 8 wherein the segment error is caused by the absence of media source data from which the encoded media stream is derived. Verfahren nach Anspruch 8, ferner umfassend: falls der codierte Medienstrom keinen Segmentfehler enthält, Modifizieren der Wiedergabeliste, um Daten einzuschließen, die angeben, dass die Segmente des codierten Medienstroms fehlerfrei sind.Method according to Claim 8 and further comprising: if the encoded media stream does not contain a segment error, modifying the playlist to include data indicating that the segments of the encoded media stream are error free. Verfahren nach Anspruch 8, wobei die Daten, die den Segmentfehler angeben, ferner einen Netzwerkort eines zweiten Segments zur Verwendung als Alternative zu einem Segment angeben, das dem Segmentfehler entspricht.Method according to Claim 8 wherein the data indicating the segment error further indicates a network location of a second segment for use as an alternative to a segment corresponding to the segment error. Verfahren nach Anspruch 15, wobei das zweite Segment einen gemeinsamen Inhalt mit dem des Segments darstellt, das dem Segmentfehler entspricht.Method according to Claim 15 wherein the second segment represents a common content with that of the segment corresponding to the segment error. Verfahren nach Anspruch 16, wobei das zweite Segment mindestens ein Attribut aufweist, das sich von demjenigen des Segments, das dem Segmentfehler entspricht, unterscheidet, wobei das mindestens eine Attribut mindestens eines von einem Codierformat, einer Bitrate, einer Auflösung und einer Sprache umfasst. Method according to Claim 16 wherein the second segment has at least one attribute different from that of the segment corresponding to the segment error, wherein the at least one attribute comprises at least one of a coding format, a bit rate, a resolution, and a language. Verfahren nach Anspruch 8, wobei der Segmentfehler einer Vielzahl von aufeinanderfolgenden Segmenten in dem codierten Medienstrom entspricht.Method according to Claim 8 wherein the segment error corresponds to a plurality of consecutive segments in the encoded media stream. Verfahren nach Anspruch 18, wobei die Daten, die den Segmentfehler angeben, ferner eine Gesamtdauer angeben, die auf der jeweiligen Dauer der Vielzahl von aufeinanderfolgenden Segmenten basiert.Method according to Claim 18 wherein the data indicating the segment error further indicates a total duration based on the respective duration of the plurality of consecutive segments. Verfahren nach Anspruch 8, wobei der codierte Medienstrom ein codierter Audiostrom ist.Method according to Claim 8 where the encoded media stream is a coded audio stream. Verfahren nach Anspruch 8, wobei der codierte Medienstrom ein codierter Videostrom ist.Method according to Claim 8 wherein the encoded media stream is a coded video stream. Verfahren, umfassend: Empfangen einer Wiedergabeliste für ein Medienelement, wobei die Wiedergabeliste Segmente von codierten Medien identifiziert, die nach verschiedenen Strömen organisiert sind; Auswählen eines wiederzugebenden Stroms; Ermitteln, ob codierte Mediensegmente des ausgewählten Stroms mit ihnen verknüpfte Tags aufweisen, die einen Fehler identifizieren; für ein erstes codiertes Mediensegment, das nicht als einen Fehler aufweisend identifiziert ist, Initiieren des Abrufs des ersten codierten Mediensegments unter Verwendung von in der Wiedergabeliste spezifizierten Informationen; für ein zweites codiertes Mediensegment, das als einen Fehler aufweisend identifiziert ist, Festlegen, ob zu einem codierten Entsprechungsmediensegment aus einem anderen Strom gewechselt werden soll, und wenn die Festlegung lautet, zu wechseln, Initiieren des Abrufs des codierten Entsprechungsmediensegments unter Verwendung von in der Wiedergabeliste spezifizierten Informationen.Method, comprising: Receiving a playlist for a media item, the playlist identifying segments of encoded media organized according to different streams; Selecting a stream to be played; Determining whether encoded media segments of the selected stream have tags associated with them that identify an error; for a first encoded media segment that is not identified as having an error, initiating retrieval of the first encoded media segment using information specified in the playlist; for a second encoded media segment identified as having an error, determining whether to switch to a coded correspondence media segment from another stream, and if the determination is to switch, initiating retrieval of the coded match media segment using information specified in the playlist. Verfahren nach Anspruch 22, wobei die in der Wiedergabeliste spezifizierten Informationen eine Netzwerkadresse umfassen.Method according to Claim 22 wherein the information specified in the playlist comprises a network address. Verfahren nach Anspruch 22, wobei, wenn die Festlegung lautet, nicht zu wechseln, der Abruf des zweiten codierten Mediensegments unter Verwendung von in der Wiedergabeliste spezifizierten Informationen initiiert wird.Method according to Claim 22 wherein, if the determination is not to change, the retrieval of the second encoded media segment is initiated using information specified in the playlist. Verfahren nach Anspruch 24, wobei der Abruf des zweiten codierten Mediensegments zu einem Fehler führt.Method according to Claim 24 wherein retrieval of the second encoded media segment results in an error. Verfahren nach Anspruch 22, wobei, wenn die Festlegung lautet, nicht zu wechseln, alternativer Inhalt des zweiten codierten Mediensegments an einer Wiedergabevorrichtung gerendert wird.Method according to Claim 22 wherein, if the determination is not to switch, alternative content of the second encoded media segment is rendered on a playback device. Verfahren nach Anspruch 26, wobei der alternative Inhalt lokal an der Wiedergabevorrichtung gespeichert wird.Method according to Claim 26 wherein the alternative content is stored locally on the playback device. Verfahren nach Anspruch 22, wobei, wenn die Festlegung lautet, nicht zu wechseln, das Rendern von Inhalt, der dem ausgewählten Strom entspricht, für eine Dauer unterbrochen wird, die einer Dauer des zweiten codierten Mediensegments entspricht.Method according to Claim 22 wherein if the determination is to not switch, rendering content corresponding to the selected stream is interrupted for a duration equal to a duration of the second encoded media segment. Verfahren nach Anspruch 22, wobei das codierte Entsprechungsmediensegment mindestens ein Attribut aufweist, das sich von demjenigen des zweiten codierten Mediensegments unterscheidet, wobei das mindestens eine Attribut mindestens eines von einem Codierformat, einer Bitrate, einer Auflösung und einer Sprache umfasst.Method according to Claim 22 wherein the coded match media segment has at least one attribute different from that of the second encoded media segment, the at least one attribute comprising at least one of a coding format, a bit rate, a resolution, and a language. Computerlesbares Medium, das Befehle speichert, die bei Ausführung durch einen Prozessor Operationen ausführen, die Folgendes umfassen: Empfangen einer Wiedergabeliste für ein Medienelement, wobei die Wiedergabeliste Segmente von codierten Medien identifiziert, die nach verschiedenen Strömen organisiert sind; Auswählen eines wiederzugebenden Stroms; Ermitteln, ob codierte Mediensegmente des ausgewählten Stroms mit ihnen verknüpfte Tags aufweisen, die einen Fehler identifizieren; für ein erstes codiertes Mediensegment, das nicht als einen Fehler aufweisend identifiziert ist, Initiieren des Abrufs des ersten codierten Mediensegments unter Verwendung von in der Wiedergabeliste spezifizierten Informationen; für ein zweites codiertes Mediensegment, das als einen Fehler aufweisend identifiziert ist, Festlegen, ob zu einem codierten Entsprechungsmediensegment aus einem anderen Strom gewechselt werden soll; und wenn die Festlegung lautet, zu wechseln, Initiieren des Abrufs des codierten Entsprechungsmediensegments unter Verwendung von in der Wiedergabeliste spezifizierten Informationen.A computer-readable medium storing instructions that, when executed by a processor, perform operations that include: Receiving a playlist for a media item, the playlist identifying segments of encoded media organized according to different streams; Selecting a stream to be played; Determining whether encoded media segments of the selected stream have tags associated with them that identify an error; for a first encoded media segment that is not identified as having an error, initiating retrieval of the first encoded media segment using information specified in the playlist; for a second encoded media segment identified as having an error, determining whether to switch to a encoded equivalent media segment from another stream; and if the determination is to switch, initiating the fetch of the coded match media segment using information specified in the playlist. Rechenvorrichtung, umfassend: einen Prozessor; einen Speicher, der wechselseitig mit dem Prozessor kommuniziert und Befehle speichert, die bei Ausführung durch den Prozessor Operationen ausführen, die Folgendes umfassen: Empfangen einer Wiedergabeliste für ein Medienelement, wobei die Wiedergabeliste Segmente von codierten Medien identifiziert, die nach verschiedenen Strömen organisiert sind; Auswählen eines wiederzugebenden Stroms; Ermitteln, ob codierte Mediensegmente des ausgewählten Stroms mit ihnen verknüpfte Tags aufweisen, die einen Fehler identifizieren; für ein erstes codiertes Mediensegment, das nicht als einen Fehler aufweisend identifiziert ist, Initiieren des Abrufs des ersten codierten Mediensegments unter Verwendung von in der Wiedergabeliste spezifizierten Informationen; für ein zweites codiertes Mediensegment, das als einen Fehler aufweisend identifiziert ist, Festlegen, ob zu einem codierten Entsprechungsmediensegment aus einem anderen Strom gewechselt werden soll; und wenn die Festlegung lautet, zu wechseln, Initiieren des Abrufs des codierten Entsprechungsmediensegments unter Verwendung von in der Wiedergabeliste spezifizierten Informationen.Computing device comprising: a processor; a memory that mutually communicates with the processor and stores instructions that, when executed by the processor, perform operations that include: Receiving a playlist for a media item, the playlist identifying segments of encoded media organized according to different streams; Selecting a stream to be played; Determining whether encoded media segments of the selected stream have tags associated with them that identify an error; for a first encoded media segment that is not identified as having an error, initiating retrieval of the first encoded media segment using information specified in the playlist; for a second encoded media segment identified as having an error, determining whether to switch to a encoded equivalent media segment from another stream; and if the determination is to switch, initiating retrieval of the coded match media segment using information specified in the playlist.
DE102018208487.4A 2017-06-02 2018-05-29 PLAYLIST ERROR DAYS FOR PROVIDING AND RENDERING STRAIGHT MEDIA Pending DE102018208487A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/613,111 US10484726B2 (en) 2017-06-02 2017-06-02 Playlist error tags for delivery and rendering of streamed media
US15/613,111 2017-06-02

Publications (1)

Publication Number Publication Date
DE102018208487A1 true DE102018208487A1 (en) 2018-12-06

Family

ID=64279513

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018208487.4A Pending DE102018208487A1 (en) 2017-06-02 2018-05-29 PLAYLIST ERROR DAYS FOR PROVIDING AND RENDERING STRAIGHT MEDIA

Country Status (3)

Country Link
US (1) US10484726B2 (en)
CN (1) CN108989854B (en)
DE (1) DE102018208487A1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10778354B1 (en) 2017-03-27 2020-09-15 Amazon Technologies, Inc. Asynchronous enhancement of multimedia segments using input quality metrics
US10560215B1 (en) * 2017-03-27 2020-02-11 Amazon Technologies, Inc. Quality control service using input quality metrics
US11146852B2 (en) * 2018-05-11 2021-10-12 Qualcomm Incorporated Signaling missing sections of media data for network streaming in a segment
US11204737B2 (en) 2019-11-11 2021-12-21 Sonos, Inc. Playback queues for shared experiences
US11636855B2 (en) 2019-11-11 2023-04-25 Sonos, Inc. Media content based on operational data
WO2021216582A1 (en) 2020-04-21 2021-10-28 Sonos, Inc. Priority media content
US11621991B2 (en) * 2021-06-29 2023-04-04 ROVl GUIDES, INC. Adaptive content streaming based on bandwidth

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7496608B2 (en) * 2005-10-07 2009-02-24 International Business Machines Corporation Online system and method for restoring electronic media on electronic storage devices
US8212819B2 (en) * 2007-05-22 2012-07-03 Yamaha Corporation Display control apparatus
WO2012047673A1 (en) * 2010-09-27 2012-04-12 Hulu Llc Method and apparatus for providing a user-editable playlist of advertisements
WO2012047659A1 (en) * 2010-09-27 2012-04-12 Hulu Llc Method and apparatus for providing directed advertising based on user preferences
CN102611701B (en) * 2008-12-31 2015-07-15 苹果公司 Method for streaming multimedia data over a non-streaming protocol
US20100257203A1 (en) * 2009-04-03 2010-10-07 Zatisfi, Llc System and Method for Playlist Automation
GB201105502D0 (en) * 2010-04-01 2011-05-18 Apple Inc Real time or near real time streaming
JP2011223219A (en) * 2010-04-07 2011-11-04 Sony Corp Broadcast program transmission control apparatus, broadcast program transmission control method, and program
US9021355B2 (en) * 2011-09-08 2015-04-28 Imagine Communications Corp. Graphical user interface to facilitate managing media operations
US20140010517A1 (en) * 2012-07-09 2014-01-09 Sensr.Net, Inc. Reduced Latency Video Streaming
CN105191184B (en) * 2013-03-14 2019-08-20 苹果公司 The Media delivery services agreement of a large amount of clients of support with fault transfer process
US9854017B2 (en) * 2013-03-15 2017-12-26 Qualcomm Incorporated Resilience in the presence of missing media segments in dynamic adaptive streaming over HTTP
US9167311B2 (en) * 2013-09-25 2015-10-20 Verizon Patent And Licensing Inc. Variant playlist optimization
US9521179B2 (en) * 2014-07-16 2016-12-13 Verizon Patent And Licensing Inc. Validation of live media stream based on predetermined standards
EP3257216B1 (en) * 2015-02-11 2021-01-27 Expway Method of handling packet losses in transmissions based on dash standard and flute protocol
US20180103271A1 (en) * 2016-10-10 2018-04-12 Qualcomm Incorporated Systems and methods for signaling missing or corrupted video data

Also Published As

Publication number Publication date
US10484726B2 (en) 2019-11-19
CN108989854A (en) 2018-12-11
CN108989854B (en) 2021-08-24
US20180352017A1 (en) 2018-12-06

Similar Documents

Publication Publication Date Title
DE102018208487A1 (en) PLAYLIST ERROR DAYS FOR PROVIDING AND RENDERING STRAIGHT MEDIA
EP3011752B1 (en) Concept for determining the quality of a media data stream with varying quality-to-bit rate
DE60102831T2 (en) SYSTEM AND METHOD FOR PROCESSING MPEG STROEMES FOR INSERTING FILE INDEX
DE112011103333T5 (en) Media convergence platform
DE102018208496B4 (en) PERSISTENT IDENTIFIER FOR OFFLINE ACCESS TO STREAMING MEDIA
US11212332B2 (en) Dynamic archiving of streaming content
DE10392598T5 (en) Support for advanced encoding formats in media files
DE102016209126A1 (en) Create dynamic temporal versions of content
DE112015002650B4 (en) Systems and methods for the predictive delivery of high bit rate content for playback
DE102020108357A1 (en) RE-ENCODING PREDICTED IMAGES IN LIVE VIDEOSTREAM APPLICATIONS
DE112011101004T5 (en) Media convergence platform
DE112011102879T5 (en) Media rights management on multiple devices
DE102012218436A1 (en) Distribute Licensed Content to Multiple Units
DE112016004560T5 (en) Gateway multi-view video stream processing for second screen content overlay
DE102011120911A1 (en) Streaming-based media system
DE112016001450T5 (en) Video content playback
US10257552B2 (en) News production system with program schedule modification feature
DE112012002626B4 (en) Systems, methods, and media for controlling a presentation of data images in a video stream
DE112020004978T5 (en) System and method for real-time delivery of targeted content in streaming content
US9721617B2 (en) Adaptive media content recording
DE112020001891B4 (en) Systems and methods of universal video embedding
DE102013102992A1 (en) Scene setup system and method using scene sections and their recording media
DE10055937A1 (en) Device for recording coded digital audiovisual data determines if residual storage capacity in storage medium is adequate for program data of program contribution based on mean data rate
DE112022001565T5 (en) System and method for dynamic bit rate switching of media streams in a media broadcast production
DE102016013109A1 (en) Sync while streaming digital content

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication