Patent ID: 7114174
Filing Date: 2006-09-26
Classification: H04L,H04N

Abstract:
1. A program product for a processor for dynamically changing characteristics of an input video stream to meet requirements for a plurality of different output video streams comprises: code configured to direct the processor to obtain frames of data derived from the input video stream; code configured to direct the processor to crop each frame of data derived from the input video stream to extract at least a portion of each frame of data; code configured to direct the processor to derive requirements for the output video streams, including encoding formats for the output video streams; code configured to direct the processor to change characteristics of the frames of data in response to the respective requirements of the output video streams, to provide different characteristic changes for each output video stream, including code to provide different bit rates that correspond to both multiple different client device capabilities and channel conditions, to resize, to change number of frames, and to change color depth; code configured to direct the processor to respectively encode characteristic-changed frames of data to form each of the output video streams in their respective encoding format, wherein the codes to crop, to provide different bit rates, to resize, to change number of frames, to change color depth, and to encode include code to share data with each other and include server-side code to use a transcoding session to perform the crop, provide different bit rates, resize, change number of frames, change color depth, and encode; wherein the transcoding session generates simultaneous output video streams from the input video stream; and server-side code configured to direct the processor to select multiple simultaneous output video streams that are generated by the transcoding session to send to corresponding multiple client devices, including server-side code to select simultaneous output video streams having the different bit rates that correspond to both multiple different client device capabilities and channel conditions, at least some of the simultaneous output video streams having a bit rate that exceeds a bit rate capability of a least-capable client device; and code configured to direct the processor to encrypt at least one of the output video streams, wherein a horizontal resolution of a frame from at least one of the output video streams is a fractional multiple of a horizontal resolution of a frame of data derived from the input video stream, wherein at least some of the output video streams can have same encoding formats but differences in frame rate, bit rate, color depth, color format, or resolution, wherein if the input video stream includes compressed digital data, the server-side code to use the transcoding session is configured to de-compress the compressed digital data into decompressed data and to re-compress the decompressed data so that some of the output video streams have different compression formats, and wherein at least some of the code to resize, to chance color depth, to chance number of frames, and to provide different bit rates includes: wherein the codes reside on a tangible media.