| CPC H04N 21/2343 (2013.01) [H04N 21/23418 (2013.01)] | 20 Claims |

|
1. A computer-implemented method comprising:
receiving a request to begin video streaming;
calculating a first encoding score for a first execution of a first codec at a computing device, wherein calculating the first encoding score comprises:
calculating a first quality metric that indicates a first encoding quality of a first video portion during the first execution;
calculating a first computing resource usage metric that indicates a first quantity of processor cycles used to encode the first video portion during the first execution; and
combining the first quality metric and the first computing resource usage metric as the first encoding score;
calculating a second encoding score for a second execution of a second codec at the computing device, wherein calculating the second encoding score comprises:
calculating a second quality metric that indicates a second encoding quality of a second video portion during the second execution;
calculating a second computing resource usage metric that indicates a second quantity of processor cycles used to encode the second video portion during the second execution; and
combining the second quality metric and the second computing resource usage metric as the second encoding score;
selecting the first codec instead of the second codec based at least in part on the first encoding score and the second encoding score;
generating first encoded video data with the first codec at the computing device;
transmitting the first encoded video data to a recipient device;
monitoring encoding performance of the first codec at the computing device, wherein monitoring the encoding performance comprises:
determining that a quantity of frames encoded over a period of time fails to satisfy a first threshold;
selecting a third codec associated with a lower expected usage of a computing resource;
generating second encoded video data with the third codec at the computing device; and
transmitting the second encoded video data to the recipient device.
|