Abstract: In some embodiments, a method receives a message that identifies an asset being viewed on a video service at a timestamp. The message is associated with a profile identifier and a plurality of messages are received for the profile identifier while using the video service. The method determines a channel identifier for a channel in which the asset is offered during the timestamp and determines whether a channel change occurred based on the channel identifier and a prior channel identifier determined from a prior message in the plurality of messages. When the channel change has occurred, the method stores the channel identifier and timestamp for the profile identifier in a data structure, wherein a list of channels is generated by querying the data structure to determine a set of channel identifiers and timestamps for the profile identifier.
Abstract: In some embodiments, a method sends a first frame that establishes a first state to push information to a client in a stream based on a first set of characteristics. The method transitions from the first state to a second state that allows pushing of content to the client. Content is pushed for a first time window to the client based on the first set of characteristics without receiving a request for the content in the first time window. The method receives a request to change the first set of characteristics to a second set of characteristics. The request includes information requesting a switch from the second state to the first state. In response to receiving the change, the method sends a second frame to continue pushing content to the client in the stream based on the second set of characteristics and transitions from the second state to the first state.
Abstract: Viewing policies are received for a media program being offered via linear programming. The viewing policies are transformed to a linear prioritized list of audiences and respective actions to perform on a per user basis for presentation via the live linear programming. The actions analyzed to determine a base action associated with sending a base content stream for the media program. An audience associated with the base content stream and previous audiences associated with previous actions that have a higher priority in the linear prioritized list than the content stream audience are selected. An audience definition for the media program is generated defining restrictions based on the base audience and the previous audiences. The audience definition is used to determine whether users may view the media program based on characteristics of the users before the media program is available via the live linear programming.
Abstract: In some embodiments, a method analyzes information regarding a round-trip time where the round-trip time is based on sending a request for a segment of a media program and receiving the segment of the media program. The method determines when to switch from requesting a single segment of the media program to sending a request that requests a plurality of segments of the media program. When switching from requesting the single segment of the media program, the request for the plurality segments of the media program is sent where at least two or more of the segments are received without sending a subsequent request for the two or more segments.
Abstract: In some embodiments, a method maps attributes of metadata for a plurality of content instances to metadata nodes. The metadata nodes are connected to type nodes that define a type of metadata for each metadata node and a respective content node for a respective content instance. The method generates a plurality of sample paths using the content nodes, the metadata nodes, and the type nodes from the mapping of attributes of the metadata. A similarity of content nodes is analyzed using the plurality of sample paths. Then, the method generates a representation of each of the plurality of content instances using the similarity of the content nodes. The representation represents the similarity between content instances in the plurality of content instances.
Type:
Grant
Filed:
August 7, 2019
Date of Patent:
October 5, 2021
Assignee:
HULU, LLC
Inventors:
Fanding Li, Xiaohui Xie, Jing Ruan, Chao Yi
Abstract: In some embodiments, a method renders a first set of objects at a first frame rate and a second set of objects at a second frame rate that is lower than the first frame rate. The method displays the second set of objects for a number of frames based on the second frame rate while displaying the rendered first set of objects at the first frame rate. It is determined when to render a new second set of objects at a different frame rate than the second frame rate. When it is determined that the new second set of objects should be rendered at the different frame rate than the second frame rate, the method renders the new second set of objects at a third frame rate different from the second frame rate.
Abstract: In some embodiments, a method determines a plurality of classes of bins that are used to determine a context model for entropy coding of a current block in a video. The method calculates a first value for a first class of bins in the plurality of classes of bins and calculates a second value for a second class of bins in the plurality of classes of bins. The first value for the first class of bins is weighted by a first weight to generate a weighted first value and the second value for the second class of bins is weighted by a second weight to generate a weighted second value. The method then selects a context model based on the first weighted value and the second weighted value.
Type:
Grant
Filed:
August 29, 2019
Date of Patent:
September 7, 2021
Assignee:
HULU, LLC
Inventors:
Wenhao Zhang, Deliang Fu, Juncheng Ma, Chen Liu
Abstract: In some embodiments, a first detector generates a first output based on a first probability that an image was inserted in a video. The first detector is trained with a set of known images to detect the set of known images. A second detector generates a second output based on a second probability that an image was inserted in the video. The second detector is used to detect the set of unknown images without training. The method analyzes the first output from the first detector based on the probability of the image existing in the video and the second output from the second detector based on the probability of the image existing in the video to generate a combined score from the first output and the second output. An indication of whether the image is detected in the video is output based on the combined score.
Abstract: In some embodiments, a method selects a current block in a frame and determines whether the current block is in a first set of positions in the frame. When the current block is in the first set of positions: the method loads a first set of motion vectors from a first list as historical motion vector predictors, wherein the one or more motion vectors are from one or more blocks in the first set of positions in the frame; and uses the first set of motion vectors to transcode the current block. When the current block is not in the first set of positions, the method uses a second set of motion vectors from a second list.
Type:
Grant
Filed:
August 29, 2019
Date of Patent:
August 10, 2021
Assignee:
HULU, LLC
Inventors:
Wenhao Zhang, Deliang Fu, Juncheng Ma, Chen Liu
Abstract: In some embodiments, a method receives one or more segments for content from a first content delivery network during a playback session for the content. The content includes a number of segments. The method evaluates buffer occupancy of a buffer configured to store segments of the content for playback and evaluates a number of times of a failure to download a segment for the content. The buffer occupancy is compared to a first threshold and the number of times of the failure to a second threshold. The method determines a switch from the first content delivery network to a second content delivery network during the playback session based on the comparing.
Abstract: In some embodiments, a method sends a first instance of a media presentation description to a client for a first set of segments of a media presentation. The first instance of the media presentation description includes status information based on the first set of segments in the media presentation. A request is received for an update to the media presentation description where the request includes the status information. The method uses the status information to identify a latest segment that the client has already received in the media presentation. Then, the method sends a second instance of the media presentation description for a second set of segments that occur after the latest segment in the media presentation as an update to the first instance of the media presentation description. The second instance of the media presentation description excludes at least a portion of information for first set of segments.
Abstract: In some embodiments, a method receives playback information for a plurality of representations based on one or more videos being played at a media player. The plurality of representations have at least one different characteristic that affects playback of the video. A dropped-frame measurement is predicted for the plurality of representations based on the playback information. Then, the dropped-frame measurement is compared to a threshold for the plurality of representations. The method marks a first set of the plurality of representations as not being available based on the comparing. A second set of the plurality of representations are provided to the media player when the media player requests a video for playback and the first set of the plurality of representations for the video are blocked from being requested by the media player.
Abstract: In some embodiments, a method receives one or more segments for content from a first content delivery network during a playback session for the content. The content includes a number of segments. The method evaluates buffer occupancy of a buffer configured to store segments of the content for playback and evaluates a number of times of a failure to download a segment for the content. The buffer occupancy is compared to a first threshold and the number of times of the failure to a second threshold. The method determines a switch from the first content delivery network to a second content delivery network during the playback session based on the comparing.
Abstract: In one embodiment, a method selects a first reference block in a first reference frame and a second reference block in a second reference frame. The first reference block and the second reference block are used to predict a current block. The first reference block is selected as an anchor point. Then, the method searches in the second reference frame for a third reference block and determines whether the third reference block is a better reference block than the second reference block for predicting the current block.
Type:
Grant
Filed:
March 29, 2019
Date of Patent:
April 27, 2021
Assignee:
HULU, LLC
Inventors:
Wenhao Zhang, Deliang Fu, Min Gao, Juncheng Ma, Chen Liu
Abstract: In some embodiments, a method receives a file describing characteristics for delivery of a creative on a video delivery system. The file is queried to identify elements in the string that define metadata. The string is written in a structural language and defines characteristics for the delivery of the creative. The method retrieves tag metadata for tags that define structural elements and validates the tag metadata based on a first specification. Media file metadata is obtained for a media file based on a link to the media file and the media file metadata is validated based on a second specification. The method outputs a result based on the validations. The creative is eligible for insertion during a break of streaming a main video on the video delivery system when the tag metadata and the media file metadata are validated.
Abstract: In some embodiments, a method receives an encoded video and decodes blocks in a frame of the encoded video in which replacement content will be inserted. The blocks are analyzed to determine first blocks of the frame that are affected by insertion of the replacement content and second blocks in the frame that are not affected by the insertion. Information from the decoding of the block is saved for the second blocks. The frame is encoded where the replacement content is inserted to replace the first blocks in the encoding of the frame, and wherein the information from the decoding of the second blocks is reused when performing the encoding of the second blocks.
Abstract: In some embodiments, a method detects a first set of frames in a video that include lines of text, the detecting performed at a frame level on each individual frame. A first representation is generated from the first set of frames and a second representation is generated from the first set of frames. The method filters the first representation based on a number of lines of text within a space in the space dimension to select a second set of frames and filters the second representation based on a number of frames within time intervals in the time dimension to select a third set of frames. Frames in both the second set of frames and the third set of frames are analyzed to determine whether the lines of text in both the second set of frames and the third set of frames are burned-in subtitles.