Analyzing groups of similar streams of media content
Multiple streams of media are analyzed for defects by synchronizing the streams in time and generating hashes or other representations of images of the respective streams. Where the hashes or other representations of two or more streams are sufficiently similar to one another, the streams may be determined to be similar to one another, and a determination as to whether each of the streams is defective may be made by analyzing just one of the streams. Where the hashes or other representations of two or more streams are not sufficiently similar to one another, a determination as to whether each of the streams is defective may be only made by analyzing all of the streams independently.
1 . A media distribution system in communication with at least one camera, wherein the media distribution system comprises:
at least one computer processor;
a data store; and
a transceiver,
wherein the data store has instructions stored thereon that, when executed by the at least one computer processor, cause the media distribution system to perform a method comprising:
receiving a plurality of images captured by the at least one camera;
generating a first stream of images from the plurality of images in accordance with a first profile, wherein the first profile is associated with a first level of resolution;
generating a second stream of images from the plurality of images in accordance with a second profile, wherein the second profile is associated with a second level of resolution;
packaging the first stream of images with a plurality of sounds;
packaging the second stream of images with the plurality of sounds;
transmitting at least the first stream of images packaged with the plurality of sounds to at least a first device over one or more networks;
transmitting at least the second stream of images packaged with the plurality of sounds to at least a second device over the one or more networks;
calculating a first hash from a first image of the first stream of images;
calculating a second hash from a second image of the second stream of images;
determining that the first hash is within a threshold distance of the second hash;
in response to determining that the first hash is within the threshold distance of the second hash,
allocating at least the first stream of images and the second stream of images to a common group of streams of images;
determining, by the at least one computer processor, that the first stream of images is free of defects, wherein determining that the first stream of images is free of defects comprises at least one of:
determining that the first stream of images is not experiencing a loss of video;
determining that the first stream of images is not experiencing block corruption;
determining that the first stream of images is not experiencing a frozen video stream; and
determining that the first stream of images does not include any artifacts; and
in response to determining that the first stream of images is free of defects,
storing an indication that each one of the streams of images of the common group is free of defects.
2 . The media distribution system of claim 1 ,
wherein the method further comprises:
calculating signal-to-noise ratios between the first image and at least some of the second stream of images, wherein the second image is one of the at least some of the second stream of images;
determining that a peak signal-to-noise ratio of the signal-to-noise ratios is between the first image and the second image; and
in response to determining that the peak signal-to-noise ratio of the signal-to-noise ratios is between the first image and the second image,
adjusting at least one of the first stream of images or the second stream of images to correspond in time.
3 . The media distribution system of claim 1 ,
wherein the first level of resolution is greater than the second level of resolution,
wherein generating the first stream of images comprises:
formatting the first stream of images for playing by a first application executed by at least the first device, and wherein generating the second stream of images comprises:
formatting the second stream of images for playing by a second application executed by at least the second device.
4 . The media distribution system of claim 1 , wherein the at least one camera captured the plurality of images live at one of:
a news broadcast;
a sporting event; or
a television show.
5 . A computer-implemented method comprising:
generating a first stream of media comprising a first plurality of images generated by at least one encoder, wherein each one of the first plurality of images is generated in accordance with a first profile at least in part from images obtained from a media source;
generating a second stream of media comprising a second plurality of images generated by the at least one encoder, wherein each one of the second plurality of images is generated in accordance with a second profile at least in part from the images obtained from the media source;
calculating a peak signal-to-noise ratio between at least one image of a first subset of the first plurality of images and at least one image of a second subset of the second plurality of images;
determining that at least the first subset corresponds in time to at least the second subset;
processing at least a first image of the first subset and at least a second image of the second subset to generate a first determination as to similarity of the first subset and the second subset;
processing the first subset to generate a second determination as to a condition of at least the first subset; and
storing an indication of the condition of at least the first subset based at least in part on the first determination and the second determination in at least one data store,
wherein the indication identifies the condition of the first subset if the first determination is that the first subset is not similar to the second subset, and
wherein the indication identifies the condition of at least the first subset and the second subset if the first determination is that the first subset is similar to the second subset.
6 . The computer-implemented method of claim 5 , wherein determining that the first subset corresponds in time to the second subset comprises:
calculating a peak signal-to-noise ratio between one image of the first subset and one image of the second subset of images,
wherein that the first subset of images of the first stream corresponds in time to the second subset of images of the second stream is determined based at least in part on the peak signal-to-noise ratio.
7 . The computer-implemented method of claim 5 , wherein determining that the first subset corresponds in time to the second subset comprises:
calculating a first hash value of one image of the first subset;
calculating a second hash value of one image of the second subset; and
determining that the first hash value is within a threshold distance of the second hash value.
8 . The computer-implemented method of claim 5 , wherein determining that the first subset corresponds in time to the second subset comprises:
calculating a structural similarity measure of one image of the first subset to one image of the second subset based at least in part on a comparison of at least one of a luminance, a contrast or a structure of the one image of the first subset to at least one of a luminance, a contrast or a structure of the one image of the second subset; and
determining that the structural similarity measure of the one image of the first subset to the one image of the second subset exceeds a predetermined threshold.
9 . The computer-implemented method of claim 5 , wherein processing at least the first image of the first subset and at least the second image of the second subset to generate the first determination comprises:
calculating a first hash value of at least the first image; and
calculating a second hash value of at least the second image,
wherein the first determination is that the first subset is similar to the second subset if the first hash value is within a threshold distance of the second hash value, and
wherein the first determination is that the first subset is not similar to the second subset if the first hash value is greater than the threshold distance of the second hash value.
10 . The computer-implemented method of claim 5 , wherein processing at least the first image of the first subset and at least the second image of the second subset to generate the first determination comprises:
calculating a peak signal-to-noise ratio based at least in part on the first image and the second image,
wherein the first determination is that the first subset is similar to the second subset if the peak signal-to-noise ratio is less than a threshold value, and
wherein the first determination is that the first subset is not similar to the second subset if the peak signal-to-noise ratio is greater than the threshold value.
11 . The computer-implemented method of claim 5 , wherein generating the first stream of media comprising the first plurality of images comprises:
encoding, by a first encoder, the images obtained from the media source into the first plurality of images, and
wherein generating the second stream of media comprising the second plurality of images comprises:
encoding, by a second encoder, the images obtained from the media source into the second plurality of images.
12 . The computer-implemented method of claim 5 , wherein the first plurality of images has a first level of resolution in accordance with the first profile,
wherein the second plurality of images has a second level of resolution in accordance with the second profile, and
wherein the first level of resolution is different from the second level of resolution.
13 . The computer-implemented method of claim 5 , wherein the first stream of media is formatted for playing by one of a first device or a first application in accordance with the first profile, and
wherein the second stream of media is formatted for playing by one of a second device or a second application in accordance with the second profile.
14 . The computer-implemented method of claim 5 , wherein the media source is a source of at least one of a television program or a movie, and
wherein each one of the images obtained from the media source is one image of the television program or the movie.
15 . The computer-implemented method of claim 5 , wherein the media source is at least one camera, and
wherein the computer-implemented method further comprises:
receiving, by a system comprising the at least one encoder, the images from the at least one camera,
wherein each one of the images is captured live at an event by the at least one camera, and
wherein the event is one of:
a news broadcast;
a sporting event; or
a television show.
16 . A computer-implemented method comprising:
receiving images from at least one media source;
generating a plurality of streams based at least in part on the images received from the at least one media source;
identifying, for each one of the plurality of streams, an image captured at a common time;
determining that a plurality of the images captured at the common time are similar to one another; and
in response to determining that the plurality of the images captured at the common time are similar to one another,
identifying a subset of the plurality of streams, wherein each of the streams of the subset includes one of the plurality of images captured at the common time that are similar to one another;
selecting one of the plurality of streams of the subset;
determining that the selected one of the plurality of streams of the subset is free of defects; and
in response to determining that the selected one of the plurality of streams of the subset is free of defects,
storing an indication that each one of the plurality of streams of the subset is free of defects.
17 . The computer-implemented method of claim 16 , further comprising:
calculating hash values for each one of the images captured at the common time;
determining that the hash values calculated for each one of the plurality of images are within a threshold distance of one another; and
in response to determining that the hash values calculated for each of the plurality of images are within the threshold distance of one another,
determining that the plurality of the images captured at the common time are similar to one another.
18 . The computer-implemented method of claim 16 , wherein
determining that the plurality of the images captured at the common time are similar to one another comprises:
calculating signal-to-noise ratios between a first image of a first one of the streams and images of each one of the other streams;
determining that a peak signal-to-noise ratio of the signal-to-noise ratios is between the first image and a second image of a second one of the streams; and
in response to determining that the peak signal-to-noise ratio of the signal-to-noise ratios is between the first image and the second image,
determining that each of the first image and the second image was captured at the common time.
19 . The computer-implemented method of claim 16 , wherein determining that the selected one of the plurality of streams of the subset is free of defects comprises:
determining that the selected one of the plurality of streams of the subset is not experiencing a loss of video;
determining that the selected one of the plurality of streams of the subset is not experiencing block corruption;
determining that the selected one of the plurality of streams of the subset is not experiencing a frozen video stream; and
determining that the selected one of the plurality of streams of the subset does not include any artifacts.
20 . The computer-implemented method of claim 16 , wherein the images received from the at least one media source is associated with of at least one of:
a movie;
a news broadcast;
a sporting event; or
a television show.