CH716844A1 - Method and system for including video blocks in a multicast video stream. - Google Patents

Method and system for including video blocks in a multicast video stream. Download PDF

Info

Publication number
CH716844A1
CH716844A1 CH01498/19A CH14982019A CH716844A1 CH 716844 A1 CH716844 A1 CH 716844A1 CH 01498/19 A CH01498/19 A CH 01498/19A CH 14982019 A CH14982019 A CH 14982019A CH 716844 A1 CH716844 A1 CH 716844A1
Authority
CH
Switzerland
Prior art keywords
video
blocks
manifest
transport stream
multicast
Prior art date
Application number
CH01498/19A
Other languages
French (fr)
Inventor
Potesta Laurent
Original Assignee
Ad Insertion Platform Sarl
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 Ad Insertion Platform Sarl filed Critical Ad Insertion Platform Sarl
Priority to CH01498/19A priority Critical patent/CH716844A1/en
Publication of CH716844A1 publication Critical patent/CH716844A1/en

Links

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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23424Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • 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/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • 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/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/812Monomedia components thereof involving advertisement data
    • 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
    • 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/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format
    • 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/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8543Content authoring using a description language, e.g. Multimedia and Hypermedia information coding Expert Group [MHEG], eXtensible Markup Language [XML]

Abstract

L'invention a pour objet un procédé d'insertion de blocs vidéo dans un flux de transport vidéo multicast (IN), comprenant : réception par un module de découpage (1) d'un flux de transport vidéo MPEG-TS (IN) envoyé en multicast; découpage par le module de découpage (1) dudit flux de transport vidéo de manière à générer plusieurs blocs de contenu vidéo (11) et au moins un manifest (9); appel par un manipulateur de manifest (2) à un serveur externe (4) pour récupérer les blocs vidéo (15) qui doivent être insérés ; modification du manifest par le manipulateur de manifest (2) ; récupération par un convertisseur (3) du manifest modifié ; récupération par le convertisseur (3) des différents blocs de contenu vidéo (11) depuis le serveur externe (4) et des blocs vidéo à insérer (12, 15) ; génération par le convertisseur (3) d'un flux de transport vidéo multicast MPEG-TS à partir desdits blocs de contenu vidéo (11) et des blocs vidéos insérés (12, 15). L'invention a également pour objet un système pour la mise en oeuvre de ce procédéThe subject of the invention is a method for inserting video blocks into a multicast video transport stream (IN), comprising: reception by a splitting module (1) of an MPEG-TS video transport stream (IN) sent in multicast; cutting by the cutting module (1) of said video transport stream so as to generate several blocks of video content (11) and at least one manifest (9); call by a manifest handler (2) to an external server (4) to retrieve the video blocks (15) which must be inserted; modification of the manifest by the manipulator of manifest (2); recovery by a converter (3) of the modified manifest; recovery by the converter (3) of the various blocks of video content (11) from the external server (4) and of the video blocks to be inserted (12, 15); generation by the converter (3) of an MPEG-TS multicast video transport stream from said video content blocks (11) and inserted video blocks (12, 15). The subject of the invention is also a system for implementing this method.

Description

Domaine techniqueTechnical area

[0001] La présente invention concerne un procédé et un système d'inclusion de blocs vidéo, par exemple de blocs vidéo publicitaires, dans un flux vidéo en multicast. The present invention relates to a method and a system for including video blocks, for example advertising video blocks, in a multicast video stream.

Etat de la techniqueState of the art

[0002] Les programmes vidéo comprennent souvent des séquences de publicités habituellement assemblées à l'avance par le radiodiffuseur en fonction de ses campagnes publicitaires pour cette chaîne de télévision ou cette émission vidéo. Video programs often include sequences of advertisements usually assembled in advance by the broadcaster based on its advertising campaigns for this television channel or video program.

[0003] Afin d'augmenter les revenus publicitaires, on sait déjà qu'il est possible d'adapter le contenu de la pause à différents publics ou régions. Aux États-Unis, les sociétés de télévision locales redistribuent souvent les chaînes par satellite sur leur réseau et remplacent une partie de la publicité nationale par des publicités locales. En Europe, les pauses publicitaires, les programmes sportifs et les informations sont souvent adaptés à chaque public national spécifique. Par exemple, il est connu pour remplacer dans certains pays des programmes spécifiques pour lesquels le radiodiffuseur n'a pas le droit par un autre contenu. Il est aussi souvent souhaité de remplacer ou d'insérer un contenu publicitaire en fonctions de profils de chaque utilisateur ou de groupes d'utilisateurs, ou même de faire de l'insertion publicitaire ciblée pour chaque utilisateur. In order to increase advertising revenue, we already know that it is possible to adapt the content of the break to different audiences or regions. In the United States, local television companies often redistribute satellite channels over their network and replace some national advertising with local ads. In Europe, commercials, sports programs and news are often tailored to each specific national audience. For example, it is known to replace in some countries specific programs for which the broadcaster is not entitled with other content. It is also often desired to replace or insert advertising content based on the profiles of each user or groups of users, or even to make targeted advertising insertion for each user.

[0004] Ainsi, on connaît des plates-formes pour remplacer ou insérer un contenu publicitaire localisé dans un flux vidéo commun. [0004] Thus, platforms are known for replacing or inserting advertising content located in a common video stream.

[0005] Afin d'augmenter la flexibilité, les plateformes ne stockent généralement pas les vidéos publicitaires, mais y accèdent par l'intermédiaire d'un serveur vidéo publicitaire, par exemple un serveur Internet exploité par une agence de publicité pour la publicité online, ou d'un système de booking publicitaire télévisuel. La plate-forme génère ainsi un nouveau flux vidéo, en remplacement ou en complément des flux vidéo existants, y compris les vidéos du serveur vidéo publicitaire, ainsi que d'autres éléments tels que des jingles ou des images fixes. [0005] In order to increase flexibility, the platforms generally do not store advertising videos, but access them through an advertising video server, for example an Internet server operated by an advertising agency for online advertising, or a television advertising booking system. The platform thus generates a new video stream, replacing or supplementing existing video streams, including videos from the advertising video server, as well as other elements such as jingles or still images.

Bref résumé de l'inventionBrief summary of the invention

[0006] Un but de la présente invention est de proposer un tel procédé et système de remplacement et d'insertion de contenu vidéo, par exemple de blocs vidéo publicitaires, qui soit adapté à des flux envoyés en multicast. An object of the present invention is to provide such a method and system for replacing and inserting video content, for example advertising video blocks, which is suitable for streams sent by multicast.

[0007] Selon l'invention, ces buts sont atteints notamment au moyen d'un procédé selon la revendication 1 ; des modes de réalisation préférentiels sont indiqués dans les revendications dépendantes. [0007] According to the invention, these aims are achieved in particular by means of a method according to claim 1; preferred embodiments are indicated in the dependent claims.

[0008] En particulier, le procédé selon l'invention inclut une étape de segmentation (découpage) d'un flux vidéo live en blocs, stockés dans un container, dans un format utilisé par les standards de streaming adaptatif tel que HLS et MPEG-DASH. [0008] In particular, the method according to the invention includes a step of segmenting (cutting) a live video stream into blocks, stored in a container, in a format used by adaptive streaming standards such as HLS and MPEG- DASH.

Brève description des figuresBrief description of the figures

[0009] Des exemples de mise en oeuvre de l'invention sont indiqués dans la description illustrée par les figures annexées dans lesquelles : • La figure 1 illustre un système pouvant être employé pour l'insertion de contenu vidéo dans un flux multicast, dans une variante où le manifest est obtenu en mode push. • La figure 2 illustre un système pouvant être employé pour l'insertion de contenu vidéo dans un flux multicast, dans une variante où le manifest est obtenu en mode pull.[0009] Examples of implementation of the invention are indicated in the description illustrated by the appended figures in which: FIG. 1 illustrates a system that can be used for the insertion of video content in a multicast stream, in a variant where the manifest is obtained in push mode. • Figure 2 illustrates a system that can be used for the insertion of video content in a multicast stream, in a variant where the manifest is obtained in pull mode.

Exemple(s) de mode de réalisation de l'inventionExample (s) of embodiment of the invention

[0010] Un flux de transport vidéo multicast IN au format MPEG-TS (flux typiquement en H264 ou H265 ou autre codec vidéo) entre dans un module de découpage 1 (packager) software et/ou hardware qui découpe celui-ci en blocs de contenu vidéo 11, par exemple dans un format de streaming adaptatif tel que HLS (Apple) ou MPEG-DASH. A multicast video transport stream IN in MPEG-TS format (stream typically in H264 or H265 or other video codec) enters a splitting module 1 (packager) software and / or hardware which splits it into blocks of video content 11, for example in an adaptive streaming format such as HLS (Apple) or MPEG-DASH.

[0011] Les blocs de contenu vidéo 11 découpés 11 sont encapsulés dans un container vidéo MPEG-TS ou similaire. The video content blocks 11 cut 11 are encapsulated in an MPEG-TS video container or the like.

[0012] Dans un exemple, un seul flux de transport vidéo IN est découpé en blocs de contenu vidéo 11 qui ont la même résolution et les mêmes spécifications techniques que le flux multicast IN d'entrée (même bande-passante, même structure vidéo etc..). On conserve ainsi la qualité de ce flux vidéo initial et réduit les besoins de calcul. In one example, a single IN video transport stream is divided into blocks of video content 11 which have the same resolution and the same technical specifications as the input multicast stream IN (same bandwidth, same video structure, etc. ..). The quality of this initial video stream is thus preserved and the computation needs are reduced.

[0013] Le flux de transport vidéo IN peut être découpé en blocs de contenu vidéo 11 sans être réencodé, ou en tout cas sans modifier le format de codage. The video transport stream IN can be divided into blocks of video content 11 without being re-encoded, or in any case without modifying the encoding format.

[0014] Si nécessaire, le module de découpage 1 convertit des images l en IDR dans les codecs de type H264 ou H265 par exemple, afin que chaque bloc (chunk) vidéo puisse être lu de manière indépendante. If necessary, the chopping module 1 converts images 1 into IDR in codecs of the H264 or H265 type for example, so that each video chunk can be read independently.

[0015] Le packager génère en outre un manifest 9 à partir du flux de transport vidéo entrant IN. Ce manifest indique la séquence des blocs vidéo à lire. Il est avantageusement mis à jour à chaque nouveau bloc. The packager also generates a manifest 9 from the incoming video transport stream IN. This manifest indicates the sequence of video blocks to be read. It is advantageously updated with each new block.

[0016] Un nouveau manifest est avantageusement crée dès que le manifest en cours d'écriture contient un nombre prédéfini de blocs. Le packager 1 crée ainsi une suite de manifests 9, A new manifest is advantageously created as soon as the manifest being written contains a predefined number of blocks. Packager 1 thus creates a series of manifests 9,

[0017] La durée des blocs est avantageusement inférieure à 2 secondes, par exemple d'une seconde de signal de vidéo. Chaque manifest contient de préférence un nombre réduit de blocs, par exemple moins de six blocs. Un manifest correspond ainsi de préférence à moins de six secondes de signal vidéo. Cela permet d'écrire un manifest au niveau du packager 1 pendant que le convertisseur 3 décrit plus bas reconstruit un signal de sortie en lisant le manifest précédent, tout en garantissant un décalage réduit entre le signal entrant et le signal sortant. The duration of the blocks is advantageously less than 2 seconds, for example one second of video signal. Each manifest preferably contains a small number of blocks, for example less than six blocks. A manifest thus preferably corresponds to less than six seconds of video signal. This makes it possible to write a manifest at packager 1 while the converter 3 described below reconstructs an output signal by reading the previous manifest, while ensuring a reduced offset between the incoming signal and the outgoing signal.

[0018] Les blocs de contenu vidéo générés par le packager 1 sont avantageusement stockés dans un format adaptatif, de manière à générer plusieurs variantes à partir du flux de transport vidéo multicast entrant, par exemple des blocs en définition standard SD, et des blocs en haute définition HD. Le format peut aussi être non adaptatif. The blocks of video content generated by the packager 1 are advantageously stored in an adaptive format, so as to generate several variants from the incoming multicast video transport stream, for example blocks in SD standard definition, and blocks in high definition HD. The format can also be non-adaptive.

[0019] Chaque bloc de contenu vidéo 11 est découpé en fonction de sa structure de GOP ou sur une image pleine. Each block of video content 11 is cut out according to its GOP structure or on a solid image.

[0020] Lorsqu'une information de marquage d'une coupure publicitaire ou de contenu est détectée, le module de découpage 1 coupe le bloc vidéo à l'image où commence la coupure et à la première image du prochain bloc vidéo de contenu (chunk) suivant l'indication de la position de l'image de fin du tunnel d'insertion (trouvé à partir du point d'entrée et de la durée par exemple, ou à partir d'un marqueur de début et d'un marqueur de fin, à l'image prêt. When a marking information of an advertising or content cut is detected, the cutting module 1 cuts the video block to the image where the cut begins and to the first image of the next video content block (chunk ) according to the indication of the position of the end image of the insertion tunnel (found from the entry point and the duration for example, or from a start marker and a start marker end, to the picture ready.

[0021] L'information de marquage d'une coupure publicitaire peut provenir du flux de transport vidéo lui-même, par exemple une information de marquage au standard SCTE-35. Dans une alternative, cette information peut provenir d'un dispositif externe et différent de celui qui génère ou retransmet ce flux de transport vidéo (marquer dit out-of-band). The marking information for an advertising break can come from the video transport stream itself, for example marking information in the SCTE-35 standard. In an alternative, this information can come from an external device and different from that which generates or retransmits this video transport stream (marking said out-of-band).

[0022] Dans le cas d'un flux vidéo au format MPEG-TS, la première image du fichier, à chaque point de coupure du tunnel (entrée et sortie) en tout cas et idéalement à chaque début de bloc vidéo, inclut un indicateur de discontinuité MPEG-TS ou tout autre indicateur qui permet une lecture sans suivre la logique de l'horloge de référence du flux vidéo initial et de permettre la lecture du flux vidéo sans interruption. In the case of a video stream in MPEG-TS format, the first image of the file, at each cutoff point of the tunnel (input and output) in any case and ideally at each start of a video block, includes an indicator MPEG-TS discontinuity or any other indicator that allows reading without following the logic of the reference clock of the initial video stream and allowing the video stream to be read without interruption.

[0023] Dans une variante, si ces indicateurs de discontinuité ne sont pas ajoutés au niveau du packager, le convertisseur 3 décrit plus bas peut les ajouter avant la recréation du flux multicast. In a variant, if these discontinuity indicators are not added at the packager level, the converter 3 described below can add them before the recreation of the multicast stream.

[0024] Les blocs vidéo de contenu 11 obtenus par ce découpage sont envoyés en mode push sur un espace de stockage 5, par exemple un serveur web. The video content blocks 11 obtained by this division are sent in push mode to a storage space 5, for example a web server.

[0025] Dans la variante de la figure 1, le manifest 9a généré à partir du flux de transport vidéo entrant IN est transmis en mode push sur un manipulateur de manifest 2, ou obtenu par ce manipulateur de manifest en mode pull. La fonction du manipulateur de manifest est notamment de modifier ou d'insérer un manifest de manière à inclure ou remplacer des blocs vidéo, par exemple des blocs publicitaires, en des instants déterminés. In the variant of Figure 1, the manifest 9a generated from the incoming video transport stream IN is transmitted in push mode on a manifest manipulator 2, or obtained by this manifest manipulator in pull mode. The function of the manifest manipulator is in particular to modify or insert a manifest so as to include or replace video blocks, for example advertising blocks, at determined times.

[0026] Dans la variante de la figure 2, ce manifest 9 généré à partir du flux de transport vidéo entrant IN est transmis en mode pull sur un espace de stockage, par exemple sur le même serveur web 5. In the variant of Figure 2, this manifest 9 generated from the incoming video transport stream IN is transmitted in pull mode on a storage space, for example on the same web server 5.

[0027] En mode push, le manipulateur de manifest 2 reçoit un manifest 9a de manière périodique au fur et à mesure que le flux de transport vidéo entrant IN progresse dans le temps. La période peut être variable. In push mode, the manifest manipulator 2 receives a manifest 9a periodically as the incoming video transport stream IN progresses over time. The period can be variable.

[0028] En mode pull, le manipulateur de manifest 2 va chercher le manifest 9b sur l'espace de stockage 5 de manière périodique ou non pour suivre l'évolution du flux de transport vidéo entrant IN. In pull mode, the manifest manipulator 2 will look for the manifest 9b on the storage space 5 periodically or not to follow the evolution of the incoming video transport stream IN.

[0029] Lorsqu'un marqueur dans le manifest permettant d'identifier un tunnel d'insertion est détecté, le manipulateur de manifest 2 appelle un serveur externe 4 pour récupérer les blocs de contenu vidéo 15 qui doivent être insérés à l'instant indiqué par ce marqueur. Le serveur externe 4 peut être un ou plusieurs serveurs de publicité vidéo online conventionnels (IAB VAST ou VMPA par exemple), un system de booking TV standard, ou tout serveur fournissant un contenu vidéo. When a marker in the manifest making it possible to identify an insertion tunnel is detected, the manifest handler 2 calls an external server 4 to retrieve the blocks of video content 15 which must be inserted at the time indicated by this marker. The external server 4 can be one or more conventional online video advertising servers (IAB VAST or VMPA for example), a standard TV booking system, or any server providing video content.

[0030] Un module de transcodage 6 peut si nécessaire réencoder les blocs de contenu vidéo 15 récupérés dans le serveur externe 4 afin de les convertir en blocs 12 réencodés dans le format des blocs de contenu vidéo découpés 11 depuis le flux de transport vidéo entrant IN. Ceci permet de garantir des transitions sans saut de format entre les blocs de contenu et les blocs vidéo insérés. A transcoding module 6 can, if necessary, re-encode the blocks of video content 15 recovered from the external server 4 in order to convert them into blocks 12 re-encoded in the format of the blocks of video content cut out 11 from the incoming video transport stream IN . This guarantees seamless transitions between the content blocks and the inserted video blocks.

[0031] Le serveur externe 4 peut directement retourner au manipulateur de manifeste un manifest 8 correspondant aux blocs vidéo insérés (a). Dans une variante (b), il envoie au manipulateur de manifest une info de redirection sur le serveur de stockage 5 par le biais d'une redirection, par exemple une URL (b), afin de permettre au manipulateur de manifeste de récupérer le manifeste 8 correspondant à ces blocs vidéo à insérer depuis le serveur de contenu 5. The external server 4 can directly return to the manifest manipulator a manifest 8 corresponding to the inserted video blocks (a). In a variant (b), it sends the manifest handler a redirection info on the storage server 5 by means of a redirection, for example a URL (b), in order to allow the manifest handler to retrieve the manifest 8 corresponding to these video blocks to be inserted from the content server 5.

[0032] Le manipulateur de manifest 2 peut aussi insérer une liste prédéfinie 7 de contenu qui peut être stockée ou générée dynamiquement en fonction de différents critères externes. The manifest manipulator 2 can also insert a predefined list 7 of content which can be stored or generated dynamically according to various external criteria.

[0033] Le manipulateur de manifest 2 modifie ensuite les informations du manifeste du flux entrant pour insérer les références sur les blocs vidéo, par exemple les blocs publicitaires, qui doivent être insérés ou remplacés. The manifest manipulator 2 then modifies the manifest information of the incoming stream to insert the references on the video blocks, for example the advertising blocks, which must be inserted or replaced.

[0034] Ce manipulateur de manifest 2 déclenche ensuite une transmission des blocs en mode push depuis le serveur 5 vers un autre composant, le convertisseur 3. Dans une variante, il est appelé par ce convertisseur pour lui indiquer les blocs vidéo à récupérer depuis ce serveur 5. This manifest manipulator 2 then triggers a transmission of the blocks in push mode from the server 5 to another component, the converter 3. In a variant, it is called by this converter to indicate to it the video blocks to be recovered from this server 5.

[0035] Le convertisseur 3 convertit ensuite les blocs de données depuis leur format par exemple adaptatif pour les redistribuer en un flux multicast MPEG-TS OUT. The converter 3 then converts the data blocks from their format, for example adaptive, in order to redistribute them into an MPEG-TS OUT multicast stream.

[0036] Les blocs vidéo insérés (12 ou 15) contiennent de préférence sur la première image de chaque bloc une information de TS discontinuité ou une information similaire dans un autre format. The inserted video blocks (12 or 15) preferably contain on the first image of each block TS discontinuity information or similar information in another format.

[0037] Les insertions de blocs peuvent provoquer un décalage des contenus dans le temps ce qui peut créer un buffer et un flux vidéo en sortie qui n'est plus nécessairement synchrone avec le flux live en entrée. Dans un mode de réalisation préférentiel, ce décalage est minimisé en choisissant des durées de blocs vidéo brèves, par exemple égales ou inférieures à une seconde, et un nombre de blocs par manifest réduit, par exemple inférieur ou égal à 6, de manière à limiter le décalage lorsqu'un premier manifest est attribué aux blocs extraits du flux d'entrée pendant que simultanément le manifest précédent est utilisé pour reconstituer le flux de sortie. Il est aussi possible de créer volontairement un décalage important, par exemple afin de synchroniser le flux de sortie sur un autre fuseau horaire. Block insertions can cause the contents to shift over time, which can create a buffer and an output video stream which is no longer necessarily synchronous with the live input stream. In a preferred embodiment, this shift is minimized by choosing short video block durations, for example equal to or less than one second, and a reduced number of blocks per manifest, for example less than or equal to 6, so as to limit the offset when a first manifest is assigned to blocks extracted from the input stream while simultaneously the previous manifest is used to reconstruct the output stream. It is also possible to intentionally create a large offset, for example in order to synchronize the output stream to another time zone.

[0038] Le convertisseur 3 reçoit en outre, ou va chercher, de manière périodique ou non, un manifest 10a, respectivement 10b, modifié par le manipulateur de manifest. The converter 3 also receives, or will seek, periodically or not, a manifest 10a, respectively 10b, modified by the manifest manipulator.

[0039] Dans un mode de réalisation préférentiel, il n'y a pas de ré-encodage systématique du flux de sortie OUT. Un ré-encodage peut cependant être mis en oeuvre pour une meilleure compatibilité ou pour modifier le signale de sortie sur un flux en CBR (Constant bitrate) par exemple. In a preferred embodiment, there is no systematic re-encoding of the output stream OUT. Re-encoding can however be implemented for better compatibility or to modify the output signal on a CBR (Constant bitrate) stream for example.

[0040] La présente invention concerne aussi un module et un ensemble de modules pour mettre en oeuvre tout ou partie du procédé décrit ci-dessus. The present invention also relates to a module and a set of modules for implementing all or part of the method described above.

Mise en oeuvreImplementation

[0041] Le procédé décrit peut être mis en oeuvre par exemple avec des serveurs, des serveurs virtuels, ou des ensembles de serveurs ou d'autres équipements connectés entre eux et arrangé pour exécuter des programmes afin d'exécuter tout ou partie des étapes décrites plus haut. The method described can be implemented for example with servers, virtual servers, or sets of servers or other equipment connected to each other and arranged to execute programs in order to execute all or part of the steps described. upper.

[0042] Selon le mode de réalisation, certains actes, événements ou étapes de l'un quelconque des algorithmes décrits ici peuvent être exécutés dans une séquence différente, peuvent être ajoutés, fusionnés ou omis (par exemple, toutes les étapes ou événements décrits ne sont pas essentiels pour la mise en oeuvre du procédé). De plus, dans certains modes de réalisation, des étapes ou des événements peuvent être exécutés simultanément, par exemple, par le biais d'un traitement multithread, d'un traitement d'interruption, de processeurs ou de coeurs de processeurs multiples ou sur d'autres architectures parallèles, plutôt que de manière séquentielle. En outre, différentes tâches ou processus peuvent être exécutés par différentes machines ou systèmes informatiques qui peuvent fonctionner ensemble. [0042] Depending on the embodiment, certain acts, events or steps of any of the algorithms described here may be performed in a different sequence, may be added, merged or omitted (for example, all of the steps or events described do not are not essential for the implementation of the method). Additionally, in some embodiments, steps or events may be executed simultaneously, for example, through multithreaded processing, interrupt processing, multiple processors or multiple processor cores, or over multiple processors. 'other parallel architectures, rather than sequentially. In addition, different tasks or processes can be performed by different machines or computer systems which can work together.

[0043] Les différents blocs logiques, modules et étapes décrits ici peuvent être implémentés sous forme de matériel électronique, de logiciel informatique ou de combinaison des deux. Afin d'illustrer clairement cette interchangeabilité du matériel et des logiciels, divers composants, blocs, modules et étapes ont été décrits ci-dessus en termes généraux de fonctionnalité. La mise en oeuvre d'une telle fonctionnalité en tant que matériel ou logiciel dépend des contraintes particulières d'application et de conception imposées à l'ensemble du système. La fonctionnalité décrite peut être mise en oeuvre de diverses façons pour chaque application particulière, mais ces décisions de mise en oeuvre ne doivent pas être interprétées comme entraînant un écart par rapport à la portée de la divulgation. The different logic blocks, modules and steps described here can be implemented in the form of electronic hardware, computer software or a combination of the two. In order to clearly illustrate this interchangeability of hardware and software, various components, blocks, modules and steps have been described above in general terms of functionality. The implementation of such a functionality as hardware or software depends on the particular application and design constraints imposed on the entire system. The functionality described can be implemented in various ways for each particular application, but these implementation decisions should not be construed as causing a departure from the scope of the disclosure.

[0044] Les différents blocs et modules logiques illustratifs décrits en relation avec les incorporations divulguées ici peuvent être implémentés ou exécutés par une machine, un microprocesseur, un processeur graphique (GPU), un accélérateur Al, une machine à états, un processeur de signaux numériques (DSP), un circuit intégré spécifique à une application (ASIC), un FPGA, et/ou tout autre dispositif logique programmable. Un processeur matériel peut inclure des circuits électriques ou des circuits logiques numériques configurés pour traiter des instructions exécutables par ordinateur. Un processeur peut également être mis en oeuvre sous la forme d'une combinaison de dispositifs informatiques, par exemple une combinaison d'un DSP et d'un microprocesseur, une pluralité de microprocesseurs, un ou plusieurs microprocesseurs en association avec un noyau DSP, ou toute autre configuration similaire. Un environnement informatique peut comprendre tout type de système informatique, y compris, mais sans s'y limiter, un système informatique basé sur un microprocesseur, un ordinateur central, un processeur de signaux numériques, un dispositif informatique portable, un contrôleur de dispositif ou un moteur de calcul dans un appareil, pour ne nommer que ceux-là. The various illustrative logic blocks and modules described in relation to the incorporations disclosed here can be implemented or executed by a machine, a microprocessor, a graphics processor (GPU), an accelerator A1, a state machine, a signal processor digital (DSP), an application specific integrated circuit (ASIC), an FPGA, and / or any other programmable logic device. A hardware processor can include electrical circuits or digital logic circuits configured to process computer executable instructions. A processor can also be implemented as a combination of computing devices, for example a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in association with a DSP core, or any other similar configuration. A computing environment can include any type of computing system, including, but not limited to, a microprocessor-based computing system, mainframe, digital signal processor, portable computing device, device controller, or computer system. computing engine in one device, to name a few.

[0045] Les „serveurs“, „modules“ ou „dispositifs“ peuvent être implémentés ou exécutés par une machine physique, un serveur virtuel, un ordinateur polyvalent, plusieurs serveurs, des ressources de calcul basées sur le cloud, ou d'autres composants ou modules programmables fournissant les services et méthodes décrits. [0045] The "servers", "modules" or "devices" can be implemented or executed by a physical machine, a virtual server, a general-purpose computer, several servers, cloud-based compute resources, or other components. or programmable modules providing the services and methods described.

[0046] Les étapes d'une méthode, d'un processus ou d'un algorithme décrits plus haut ou revendiqués peuvent être mises en oeuvre directement avec du matériel, avec un module logiciel mémorisé dans un ou plusieurs dispositifs mémoire et exécuté par un ou plusieurs processeurs, ou dans une combinaison des deux. Un module logiciel peut résider dans la mémoire RAM, la mémoire flash, la mémoire ROM, la mémoire EPROM, la mémoire EEPROM, la mémoire EEPROM, les registres, le disque dur, un disque amovible, un CD-ROM ou toute autre forme de support de stockage non transitoire lisible par ordinateur, de support ou de stockage physique par ordinateur. Un support de stockage d'exemple peut être couplé au processeur de sorte que le processeur puisse lire des informations sur le support de stockage et y écrire des informations. Sinon, le support de stockage peut faire partie intégrante du processeur. Le support de stockage peut être volatil ou non volatil. The steps of a method, a process or an algorithm described above or claimed can be implemented directly with hardware, with a software module stored in one or more memory devices and executed by one or more multiple processors, or a combination of both. A software module can reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, EEPROM memory, registers, hard disk, removable disk, CD-ROM or any other form of computer readable non-transitory storage medium, medium or physical computer storage. An example storage medium can be coupled to the processor such that the processor can read information from and write information to the storage medium. Otherwise, the storage medium can be an integral part of the processor. The storage medium can be volatile or non-volatile.

[0047] Le langage conditionnel utilisé dans le présent document, tel que, entre autres, „peut“, „pourrait“, „peut“, „peut“, „peut“, „p. ex.“, „préférentiellement“, et autres, sauf indication contraire expresse, ou autrement compris dans le contexte utilisé, vise à indiquer que certains modes de réalisation comprennent, alors que d'autres ne comprennent pas, certaines caractéristiques, éléments ou variantes. Ainsi, un langage conditionnel n'implique généralement pas que des caractéristiques, des éléments ou des états sont essentiels de quelque façon que ce soit pour un ou plusieurs modes de réalisation ou qu'un ou plusieurs modes de réalisation comprennent nécessairement une caractéristique. [0047] The conditional language used in this document, such as, inter alia, "may", "could", "may", "may", "may", "p. eg “,“ preferentially ”, and the like, unless expressly stated otherwise, or otherwise understood in the context used, is intended to indicate that certain embodiments include, while others do not include, certain features, elements or variations. Thus, conditional language does not generally imply that features, elements, or states are essential in any way to one or more embodiments or that one or more embodiments necessarily include a feature.

[0048] Les termes „comprenant“, „comprenant“, „comprenant“, „ayant“ et autres sont synonymes et sont utilisés de manière inclusive, de manière ouverte, et n'excluent pas des éléments, caractéristiques, actes, étapes ou opérations supplémentaires. En outre, le terme „ou“ est utilisé dans son sens inclusif (et non dans son sens exclusif) de sorte que lorsqu'il est utilisé, par exemple, pour relier une liste d'éléments, le terme „ou“ signifie un, plusieurs ou la totalité des éléments de la liste. The terms "comprising", "comprising", "comprising", "having" and others are synonymous and are used in an inclusive manner, openly, and do not exclude elements, characteristics, acts, steps or operations additional. Further, the term "or" is used in its inclusive sense (and not its exclusive sense) so that when used, for example, to link a list of items, the term "or" means a, several or all of the items in the list.

Numéros de référence employés sur les figuresReference numbers used in figures

[0049] 1 Module de découpage (packager) 2 Manipulateur de manifest 3 Convertisseur, par exemple convertisseur adaptatif vers multicast 4 Serveur externe, par exemple serveur de publicités et/ou de contenu 6 Module de transcodage des blocs vidéo insérés 7 Liste d'insertion 8 Manifest correspondant aux blocs vidéo insérés 9 Manifest du flux entrant (live manifest) 9a Manifest du flux entrant (live manifest) -Push 9b Manifest du flux entrant (live manifest) - Pull 10a Manifest du flux entrant (live manifest) modifié - Push 10b Manifest du flux entrant (live manifest) modifié - Pull 11 Bloc de contenu vidéo découpé 12 Blocs de contenu vidéo réencodés 13 Blocs de contenu vidéo et blocs publicitaires 14 Call pour le manifeste du flux entrant 15 Blocs de contenu publicitaire 16 Call de blocs pour le manifest 17 Manifest manipulé (push) IN. Flux live multicast avant insertion des blocs vidéo 1 Slicing module (packager) 2 Manipulator of manifest 3 Converter, for example adaptive converter to multicast 4 External server, for example ad and / or content server 6 Transcoding module for inserted video blocks 7 Insert list 8 Manifest corresponding to the inserted video blocks 9 Manifest of the incoming flow (live manifest) 9a Manifest of the incoming flow (live manifest) -Push 9b Manifest of the incoming flow (live manifest) - Pull 10a Manifest of the incoming flow (live manifest) modified - Push 10b Modified live manifest manifesto - Pull 11 Cropped video content block 12 Re-encoded video content blocks 13 Video content blocks and ad blocks 14 Call for incoming flow manifest 15 Ad content blocks 16 Call of blocks for the manifest 17 Manifest manipulated (push) IN. Multicast live stream before insertion of video blocks

Claims (14)

1. Procédé d'insertion de blocs vidéo dans un flux de transport vidéo multicast (IN), comprenant : réception par un module de découpage (1) d'un flux de transport vidéo MPEG-TS (IN) envoyé en multicast; découpage par le module de découpage (1) dudit flux de transport vidéo de manière à générer plusieurs blocs de contenu vidéo (11) et au moins un manifest (9); appel par un manipulateur de manifest (2) à un serveur externe (4) pour récupérer les blocs vidéo (15) qui doivent être insérés ; modification du manifest par le manipulateur de manifest (2); récupération par un convertisseur (3) du manifest modifié (10) ; récupération par le convertisseur (3) des différents blocs de contenu vidéo (11) depuis le serveur externe (4) et des blocs vidéo à insérer (12, 15) ; génération par le convertisseur (3) d'un flux de transport vidéo multicast MPEG-TS à partir desdits blocs de contenu vidéo (11) et des blocs vidéos insérés (12, 15).A method of inserting video blocks into a multicast video transport stream (IN), comprising: reception by a splitting module (1) of an MPEG-TS (IN) video transport stream sent in multicast; cutting by the cutting module (1) of said video transport stream so as to generate several blocks of video content (11) and at least one manifest (9); call by a manifest handler (2) to an external server (4) to retrieve the video blocks (15) which must be inserted; modification of the manifest by the manifest handler (2); recovery by a converter (3) of the modified manifest (10); recovery by the converter (3) of the various blocks of video content (11) from the external server (4) and of the video blocks to be inserted (12, 15); generation by the converter (3) of an MPEG-TS multicast video transport stream from said blocks of video content (11) and from the inserted video blocks (12, 15). 2. Le procédé de la revendication 1, comprenant une étape de détection d'un marqueur dans ledit flux de transport vidéo permettant d'identifier un tunnel d'insertion pour lesdits blocs vidéos à insérer.2. The method of claim 1, comprising a step of detecting a marker in said video transport stream making it possible to identify an insertion tunnel for said video blocks to be inserted. 3. Le procédé de la revendication 1, comprenant une étape de détection d'un marqueur indiquant l'instant de coupure désiré et provenant d'un système autre que celui générant ledit flux de transport vidéo.3. The method of claim 1, comprising a step of detecting a marker indicating the desired cut-off time and originating from a system other than that generating said video transport stream. 4. Le procédé de l'une des revendications 1 à 3, dans lequel lesdits blocs de contenu vidéo (11) sont stockés dans un format adaptatif, et dans lequel ledit convertisseur (3) est un convertisseur adaptatif-to-multicast.The method of one of claims 1 to 3, wherein said blocks of video content (11) are stored in an adaptive format, and wherein said converter (3) is an adaptive-to-multicast converter. 5. Le procédé de l'une des revendications 1 à 4, dans lequel lesdits blocs vidéos à insérer (12, 15) sont récupérés par le manipulateur de manifest depuis un serveur externe (4).5. The method of one of claims 1 to 4, wherein said video blocks to be inserted (12, 15) are retrieved by the manifest manipulator from an external server (4). 6. Le procédé de l'une des revendications 1 à 5, dans lequel ledit flux de transport vidéo MPEG-TS envoyé en multicast est codé en H264 ou H265.6. The method of one of claims 1 to 5, wherein said multicast MPEG-TS video transport stream is encoded in H264 or H265. 7. Le procédé de la revendication 6, dans lequel le découpage du flux de transport vidéo (IN) comprend une étape de conversion d'images I en IDR (Instantaneous Decoder Refresh), de manière à ce que les blocs découpés (11) puissent être lus indépendamment les uns des autres.7. The method of claim 6, wherein the slicing of the video transport stream (IN) comprises a step of converting I images to IDR (Instantaneous Decoder Refresh), so that the sliced blocks (11) can. be read independently of each other. 8. Le procédé de l'une des revendications 1 à 7, dans lequel ledit flux de transport vidéo (IN) est découpé en blocs vidéo de contenu et en au moins un manifest selon un format HLS or MPEG-DASH.8. The method of one of claims 1 to 7, wherein said video transport stream (IN) is divided into video blocks of content and at least one manifest according to an HLS or MPEG-DASH format. 9. Le procédé de l'une des revendications 1 à 8, dans lequel ledit flux de transport vidéo (11) est découpé sans être ré-encodé.9. The method of one of claims 1 to 8, wherein said video transport stream (11) is chopped without being re-encoded. 10. Le procédé de l'une des revendications 1 à 9, dans lequel ledit flux de transport vidéo (IN) est découpé sans modifier la résolution.10. The method of one of claims 1 to 9, wherein said video transport stream (IN) is split without changing the resolution. 11. Le procédé de l'une des revendications 1 à 10, dans lequel ledit flux de transport vidéo (11) est découpé à l'image correspondant à une information de marquage de contenu publicitaire selon le standard SCTE-35.11. The method of one of claims 1 to 10, wherein said video transport stream (11) is split to the image corresponding to advertising content marking information according to the SCTE-35 standard. 12. Le procédé de l'une des revendications 1 à 11, comprenant une étape de génération d'un indicateur de discontinuité à chaque point d'insertion de bloc vidéo (12, 15).12. The method of one of claims 1 to 11, comprising a step of generating a discontinuity indicator at each video block insertion point (12, 15). 13. Le procédé de l'une des revendications 1 à 12, comprenant une étape de transcodage des blocs vidéo à insérer (12) avant leur récupération par le convertisseur (3), de manière à adapter leur format à celui des blocs de contenu vidéo.13. The method of one of claims 1 to 12, comprising a step of transcoding the video blocks to be inserted (12) before their recovery by the converter (3), so as to adapt their format to that of the blocks of video content. . 14. Système d'insertion de blocs vidéo dans un flux de transport vidéo multicast (IN), comprenant: un module de découpage (1) arrangé pour découper un flux de transport vidéo MPEG-TS (IN) envoyé en multicast, de manière à générer plusieurs blocs de contenu vidéo (11) et au moins un manifest (9) ; un manipulateur de manifest (2) arrangé pour communiquer avec un serveur externe (4) pour récupérer les blocs vidéo (15) qui doivent être insérés, et pour modifier le manifest; un convertisseur (3) arrangé pour récupérer le manifest modifié (10) et pour récupérer les différents blocs de contenu vidéo (11) et des blocs vidéo à insérer (12, 15), puis pour générer un flux de transport vidéo multicast MPEG-TS à partir desdits blocs de contenu vidéo (11) et des blocs publicitaires (12, 15). Fig. 214. A system for inserting video blocks into a multicast video transport stream (IN), comprising: a splitting module (1) arranged to split an MPEG-TS (IN) video transport stream sent in multicast, so as to generate several blocks of video content (11) and at least one manifest (9); a manifest handler (2) arranged to communicate with an external server (4) to retrieve the video blocks (15) to be inserted, and to modify the manifest; a converter (3) arranged to retrieve the modified manifest (10) and to retrieve the various blocks of video content (11) and of the video blocks to be inserted (12, 15), then to generate an MPEG-TS multicast video transport stream from said video content blocks (11) and advertising blocks (12, 15). Fig. 2
CH01498/19A 2019-11-27 2019-11-27 Method and system for including video blocks in a multicast video stream. CH716844A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CH01498/19A CH716844A1 (en) 2019-11-27 2019-11-27 Method and system for including video blocks in a multicast video stream.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CH01498/19A CH716844A1 (en) 2019-11-27 2019-11-27 Method and system for including video blocks in a multicast video stream.

Publications (1)

Publication Number Publication Date
CH716844A1 true CH716844A1 (en) 2021-05-31

Family

ID=68807955

Family Applications (1)

Application Number Title Priority Date Filing Date
CH01498/19A CH716844A1 (en) 2019-11-27 2019-11-27 Method and system for including video blocks in a multicast video stream.

Country Status (1)

Country Link
CH (1) CH716844A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150271237A1 (en) * 2014-03-24 2015-09-24 Qualcomm Incorporated Processing continuous multi-period content
US20170142179A1 (en) * 2015-11-16 2017-05-18 Edgeware Ab Delivery of media content segments in a content delivery network
US20180288450A1 (en) * 2016-01-28 2018-10-04 Tencent Technology (Shenzhen) Company Limited Method for inserting information push into live video streaming, server, and terminal
US20190141366A1 (en) * 2017-09-01 2019-05-09 Tiny Pixels Technologies Inc. System and method for insertion of an asset into a source dynamic media

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150271237A1 (en) * 2014-03-24 2015-09-24 Qualcomm Incorporated Processing continuous multi-period content
US20170142179A1 (en) * 2015-11-16 2017-05-18 Edgeware Ab Delivery of media content segments in a content delivery network
US20180288450A1 (en) * 2016-01-28 2018-10-04 Tencent Technology (Shenzhen) Company Limited Method for inserting information push into live video streaming, server, and terminal
US20190141366A1 (en) * 2017-09-01 2019-05-09 Tiny Pixels Technologies Inc. System and method for insertion of an asset into a source dynamic media

Similar Documents

Publication Publication Date Title
US10841667B2 (en) Producing video data
US11824912B2 (en) Systems and methods for frame duplication and frame extension in live video encoding and streaming
US8973032B1 (en) Advertisement insertion into media content for streaming
US9301020B2 (en) Method of targeted ad insertion using HTTP live streaming protocol
US9609340B2 (en) Just-in-time (JIT) encoding for streaming media content
US20160345074A1 (en) Apparatus and Method for Replacing Conventional Commercials with Targeted Advertisements in Online Live Streams
EP3225027B1 (en) Method for composing an intermediate video representation
FR2883692A1 (en) METHOD OF SENDING CONTROL TO A SERVER OF DIGITAL DATA STREAMS AND APPARATUS IMPLEMENTING THE METHOD
US20200221144A1 (en) Frame accurate splicing
EP1972156B1 (en) Adaptive encoding and decoding
EP3378232B1 (en) Method for processing encoded data, method for receiving encoded data, corresponding devices and computer programs
CH716844A1 (en) Method and system for including video blocks in a multicast video stream.
EP1337114A1 (en) Decoding method for encoded video signals
EP3652953B1 (en) Method for signalling a substitution to a terminal, method for substitution by a terminal, corresponding computer program products, system and terminal
US11659217B1 (en) Event based audio-video sync detection
FR3124674A1 (en) VIDEO FLOW PROCESSING METHOD AND EQUIPMENT FOR IMPLEMENTING THE METHOD
EP1383336A2 (en) Decompression and rendering method for object-based multimedia datastreams. Corresponding apparatus, system and signal
FR2996978A1 (en) Method for processing video signal coded into digital data stream in e.g. Digital terrestrial TV network, involves generating error detection data of gel of image if length of succession of images is greater than threshold
FR2930107A1 (en) Video sequence data processing method for e.g. video telemonitoring field, involves generating pattern image joining image patterns that simultaneously satisfy criteria, and storing generated pattern image in reference storage zone

Legal Events

Date Code Title Description
AZW Rejection (application)