Method and Video Controller for Controlling Delivered Video
20220337892 · 2022-10-20
Inventors
Cpc classification
H04N21/23424
ELECTRICITY
H04N21/8456
ELECTRICITY
H04N21/2625
ELECTRICITY
H04N21/26258
ELECTRICITY
H04N21/8133
ELECTRICITY
H04N21/2668
ELECTRICITY
International classification
H04N21/234
ELECTRICITY
H04N21/262
ELECTRICITY
Abstract
It is provided a method for controlling delivered video based on a source video. The source video includes a first video sequence followed by a first replacement time slot, the first replacement time slot followed by a third video sequence. The method includes requesting a second video sequence with a maximum duration T.sub.req by a video controller to be inserted into a time slot corresponding to the first replacement time slot in the delivered video. The duration T.sub.2 of the second video sequence is shorter or equal to T.sub.req, determining the time difference T.sub.10−T.sub.2 between the duration T.sub.10 of the first replacement time slot and the duration of the second video sequence by the video controller; placing the second video sequence by the video controller into a time slot in the delivered video corresponding to first replacement time slot and shifting the subsequent third video sequence towards the second video sequence in the delivered video, and thereby providing a continuous video stream through influencing of the delay between the video source and the delivered video.
Claims
1. A method for controlling delivered video based on a source video, the source video comprising a first video sequence followed by a first replacement time slot, the first replacement time slot followed by a third video sequence, wherein the method comprises the following steps a) requesting a second video sequence with a maximum duration T.sub.req by a video controller to be inserted into a time slot corresponding to the first replacement time slot in the delivered video, the duration T.sub.2 of the second video sequence being shorter or equal to T.sub.req, in particular being different from the duration T.sub.10 of the first replacement time slot; b) determining the time difference T.sub.10−T.sub.2 between the duration T.sub.10 of the first replacement time slot and the duration of the second video sequence by the video controller; c) placing the second video sequence by the video controller into a time slot in the delivered video corresponding to first replacement time slot and shifting the subsequent third video sequence towards the second video sequence the delivered video, and thereby providing a continuous video stream through influencing of the delay between the video source and the delivered video.
2. The method according to claim 1, wherein a time difference T.sub.10−T.sub.2 between the duration of the first replacement time slot and the duration of the second video sequence is used by the video controller to adapt a duration T.sub.req2 of at least one further request for a replacement video sequence.
3. The method according to claim 1, wherein a temporal adjustment offset T.sub.n is added by the video controller to the requested duration T.sub.req of the second video sequence and/or the requested duration T.sub.req2 of the at least one second video sequence.
4. The method according to claim 3, wherein the video controller adjusts the duration of the adjustment offset T.sub.n to control the delay between source video and delivered video.
5. The method according to claim 1, wherein the source video is a timed video stream, a scheduled video stream, a live linear video stream and/or a live live linear video stream.
6. The method according to claim 1, wherein the source video is an Internet video stream, in particular an HLS or DASH video stream.
7. The method according to claim 1, wherein the third video sequence is shifted towards the inserted second video sequence so that there is no time gap between the two video sequences.
8. The method according to claim 1, wherein the content of the second video sequence is personalized, in particular using an ID for a particular delivery device.
9. The method according to claim 8, wherein the second video comprises advertising content, broadcast content, program/content announcements, regionalized content and/or emergency notifications, in particular wherein the request of the second video sequence by the video controller is a personalized request.
10. A video controller for controlling delivered video, the source video comprising a first video sequence followed by a first replacement time slot, the first replacement time slot followed by a third video sequence, comprising a means for requesting a second video sequence with a maximum duration T.sub.req to be inserted into a time slot in the delivered video corresponding to the replacement time slot, the duration T.sub.2 of the second video sequence being shorter or equal to T.sub.req, in particular being different from the duration T.sub.10 of the first replacement time slot, and a means for determining the difference T.sub.10−T.sub.2 of the duration T.sub.10 of the first replacement time slot and the duration of the second video sequence, and a means for placing the second video sequence into a time slot in the delivered video corresponding to first replacement time slot and shifting the subsequent third video sequence towards the second video sequence in the delivered video and thereby providing a continuous video stream through influencing of the delay between the video source and the delivered video.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0026] Exemplary embodiments of the method and system are described in the context of figures
[0027]
[0028]
[0029]
DESCRIPTION OF THE INVENTION
[0030] In
[0031] A video source 100 comprises the video sequences that eventually become the delivered video 200. The video source 100 can e.g. be a live video, i.e. video data that is to be displayed with no or only a marginal temporal delay to a real-time event. The source video 100 can e.g. also be video data generated apart from live events (i.e. real-time events). The delivered video 200 can e.g. be provided over the Internet, over video-on-demand or over other TV channels.
[0032] A video controller 300 controls the processing of the video source 100 and the delivered video 200. The video controller 300 can be one computer or a computer network with several computers, handling different aspects of the video processing. Some aspects of the video processing are described below in the context of embodiments.
[0033] The video source 100 comprises a plurality of video sequences 1, 3, 4 and of replacement time slots 10, 11 and the delivered video 200 comprises a plurality of video sequences 1, 2, 2a, 3, 4. (The plurality of video sequences and replacement time slots in the video source results from the possible substructure described above.)
[0034] A first embodiment is shown by the left hand side of
[0035] The video source 100 comprises a first video sequence 1 which is immediately (i.e. without a temporal gap) followed by a first replacement time slot 10 with a duration T.sub.10. The first replacement time slot 10 is followed by a third video sequence 3.
[0036] In the first embodiment, the video controller 300 requests additional video content for the first replacement time slot 10. This additional content can e.g. be an advertisement, in particular a personalized advertisement.
[0037] In this embodiment a duration T.sub.req of the requested additional video content is equal to the duration T.sub.10 of the first replacement time slot 10. In other embodiments, the duration T.sub.req of the requested content is different from the duration T.sub.10 of first replacement time slot 10, as will be discussed below.
[0038] A replacement video sequence 2 returned to the video controller 300 as the result of the request for additional video content here (second video sequence 2) has a duration T.sub.2, being shorter than T.sub.10. The video controller 300 determines the difference T.sub.10−T.sub.2 of the durations of the first replacement time slot 10 and the replacement video sequence 2.
[0039] The replacement video sequence 2 is placed in the delivered video 200 at the corresponding position of the first replacement time slot 10 by the video controller 300. This means that the replacement video sequence 2 becomes video sequence 2 following the first video sequence 1 in the delivered video, as the replacement time slot 10 follows the first video sequence 1 in the source video 100.
[0040] In this case the replacement video sequence 2 has a shorter duration than the first replacement time slot 10, therefore the subsequent third video sequence 3 of the source video is shifted by the video controller 300 towards the second video sequence 2 in the delivered video 200 since T.sub.2 is smaller than T.sub.10.
[0041] In the embodiment shown, the shift results in no temporal gap between the first video sequence 1 and the second video sequence 2. In other embodiments, a short gap might remain in the delivered video 200.
[0042] The insertion of the shorter second video sequence 2 results in a change in the fill level of the client's video buffer which, in this case, is reduced, as the replacement sequence 2 and thus the second video sequence 2 in the delivered video is shorter than the first replacement time slot 10.
[0043] In
[0044] Some delay is tolerable within limits. The HLS standard e.g. recommends that the buffer should have two to three segments, so that one segment more or less can indeed be considered as tolerable.
[0045] The diagram at the bottom of
[0046] The right part of
[0047] Here, the decreased duration of video 200, resulting from the embodiment described above, can be used to extend the requested replacement duration T.sub.req2 for a following replacement time slot 11 of original duration Tit Specifically, a replacement duration of T.sub.req2=T.sub.11+(T.sub.10−T.sub.2) can be requested to fill up the resulted gap in video time from the before mentioned embodiment.
[0048] Here, the duration T.sub.11 for the second replacement time slot 11 is shorter than the requested duration T.sub.req2 for replacement sequence 2a (time difference is T.sub.req2−T.sub.11). But this request can be made as there is a decreased delay due to the shift caused by the embodiment mentioned before.
[0049] Here, the replacement sequence 2a to be inserted in the second replacement time slot 11 as a replacement has a duration Tea that can be longer than the duration T.sub.11 of the second replacement time slot 11 but is shorter than the requested duration T.sub.req2.
[0050] The fourth video sequence 4 is then shifted to follow the inserted second video sequence 2a in the delivered video 200.
[0051] As the time difference T.sub.req2−T.sub.2a is smaller than the previously accumulated time difference T.sub.10−T.sub.2, there is still negative delay, but it has decreased, as can be seen from the graph in
[0052] Therefore, the video controller 300 can take into account the fill level of the video buffer when requesting second video sequences 2a as replacements.
[0053] If, for example, a negative delay has accumulated to 1.5 seconds (by the way of the first embodiment described above), the request for the second video sequence 2a can be extended from e.g. 30 seconds to 31.5 seconds, i.e. T.sub.11=30 seconds, T.sub.req2=31.5 seconds.
[0054] In the example shown, the actually delivered replacement sequence has a duration of T.sub.2a=30.5 seconds. This would reduce the negative delay somewhat.
[0055] In
[0056] When requesting a replacement sequence 2, 2a for a replacement time slot 10, 11, the maximal duration is specified. If that maximal requested duration cannot be met, a shorter replacement video sequence 2, 2a is delivered. This generally results in a permanently negative delay in the delivered video 200 compared to the video source.
[0057] To minimize the absolute value of the average delay (i.e. to even out the delay as adjustment), it is possible to add an adjustment offset T.sub.n to the duration T.sub.req of the requested video sequence. This means, the requested maximum duration of video sequence 2 is deliberately longer, to—on average—even out the delay between the source video 100 and the delivered video 200.
[0058] In
[0059] For the next video sequence request, the duration T.sub.req2 is determined as follows: T.sub.req2=T.sub.11+(T.sub.10−T.sub.2)+T.sub.n.
[0060] With a longer duration T.sub.req2 for the replacement sequence request, a longer video sequence 2a can be returned and inserted into the delivered video 200.
[0061] As can be seen from the graph at the bottom of
[0062] In
[0063] Here, an exemplary course of accumulated delays between the delivered video 100 and the source video 200 (on the y-axis) is shown over time (i.e. the handling of twelve replacement time slots 10, 11).
[0064] The simulations were performed with different constant values of the adjustment offset T.sub.n (0, 1, 2, 3 and 4 seconds). The simulated scenario involved a random set of available advertisements (i.e. requested second sequences 2, 2a) between 25 and 35 seconds. The assigned replacement time slots 10, 11 were 30 seconds long.
[0065] It can be seen that in this example a constant adjustment offset of T.sub.n=2 seconds yields an average delay of 0.33 seconds asymptotically, which is better than other adjustment offsets T.sub.n tested.
REFERENCE NUMBERS
[0066] 1 first video sequence [0067] 2, 2a second video sequence (replacement) [0068] 3 third video sequence [0069] 4 fourth video sequence [0070] 10 first replacement time slot in source video [0071] 11 second replacement time slot in source video [0072] 100 source video [0073] 200 delivered video [0074] 300 video controller [0075] T.sub.10 duration, time slot of first replacement time slot [0076] T.sub.11 duration, time slot for second replacement time slot [0077] T.sub.2, T.sub.2a duration, time slot of second video sequence [0078] T.sub.n adaptation offset [0079] T.sub.req duration of a requested video sequence [0080] T.sub.req2 second duration of a requested video sequence