On-device multiplexing of streaming media content
AssigneeNetflix, Inc.
InventorsDavid Randall Ronca, Chung-Ping Wu, Yung-Hsiao Lai
Life of this patent
Estimating the term…
Abstract
Techniques are disclosed for multiplexing a dynamic bit-rate video stream with an audio stream received by a client device in a manner that allows the resulting multiplexed stream to be played back without disruption, despite dynamic changes in the bit rate of the video stream that may occur. A content server may stream both a video stream and an audio stream to a client device for playback. The client device may multiplex the video and audio streams prior to them being presented to a playback engine for decoding and playback to a user.
Claims32
A computer-implemented method for encoding a media file, the method comprising:
- providing a plurality of video encodings of the media file, wherein each video encoding encodes the media file at a distinct video bit rate, and wherein each video encoding includes a plurality of portions of video data;
- for each of the plurality of video encodings:
- identifying, in each of the plurality of portions of video data, one or more insertion points for multiplexing portions of video data with portions of audio data on the client device;
- padding at least one portion of video data to be aligned to a continuity count boundary, and
- storing, in the video encoding, a file header which includes an indication of the positions of the plurality of insertion points in the video encoding;
- providing at least one audio encoding of the media file, wherein the audio encoding includes a header indicating a plurality of audio segments, each corresponding to one of the plurality of portions of video data;
- and
- storing the plurality of video encodings and the audio encoding on a media delivery system in order to be streamed to client device upon request.
A computer-readable storage medium including instructions that, when executed by a processing unit, cause the processing unit to encode a media file by performing the steps of:
- providing a plurality of video encodings of the media file, wherein each video encoding encodes the media file at a distinct video bit rate, and wherein each video encoding includes a plurality of portions of video data;
- for each of the plurality of video encodings:
- identifying, in each of the plurality of portions of video data, one or more insertion points in for multiplexing portions of video data with portions of audio data on the client device;
- padding at least one portion of video data to be aligned to a continuity count boundary, and
- storing, in the video encoding, a file header which includes an indication of the positions of the plurality of insertion points in the video encoding;
- providing at least one audio encoding of the media file, wherein the audio encoding includes a header indicating a plurality of audio segments, each corresponding to one of the plurality of portions of video data;
- and
- storing the plurality of video encodings and the audio encoding on a media delivery system in order to be streamed to client device upon request.
A digital media content sever configured to encode a media file to allow on-device multiplexing of audio and video data and dynamic bit rate switching, the content server comprising:
- a memory;
- and
- a processing unit coupled to the memory and configured to store an encoding tool, the encoding tool configured to perform an operation, comprising:
- providing a plurality of video encodings of the media file, wherein each video encoding encodes the media file at a distinct video bit rate, and wherein each video encoding includes a plurality of portions of video data;
- for each of the plurality of video encodings:
- identifying, in each of the plurality of portions of video data, one or more insertion points in for multiplexing portions of video data with portions of audio data on the client device;
- padding at least one portion of video data to be aligned to a continuity count boundary, and
- storing, in the video encoding, a file header which includes an indication of the positions of the plurality of insertion points in the video encoding;
- providing at least one audio encoding of the media file, wherein the audio encoding includes a header indicating a plurality of audio segments, each corresponding to one of the plurality of portions of video data;
- and
- storing the plurality of video encodings and the audio encoding on a media delivery system in order to be streamed to client device upon request.
A computer-implemented method for multiplexing an audio stream and a video stream on a client device, the method comprising:
- transmitting, to a streaming media server, a request to stream a media file stored on the streaming media server;
- receiving, from the streaming media server, a file header describing each of a plurality of video encodings of the media file available from the streaming media server;
- receiving, from the streaming media server, a file header describing at least one audio encodings of the media file available from the streaming media server;
- transmitting, to the streaming media server, a request to download at first portion of video data from a first one of the plurality of video encodings and at least a first portion of audio data from the audio encoding;
- receiving the requested first portion of video data and first portion of audio data;
- and
- multiplexing the first portion of video data and first portion of audio to generate a multiplexed stream for playback by a playback engine on the client device.
Dependencies are inferred from the claim text.