3 ms·
It is not really all that hard to create all of the combinations for various ads. You can cache the optical flow[1] analysis of the source video. The optical
by rustyconover 12y ago
It is not really all that hard to create all of the combinations for various ads. You can cache the optical flow[1] analysis of the source video. The optical flow won't change since it is determined by the source video. Then you layer in your ad projection, render with final result with the ad and the source video together and finally concatenate the rest of the video that didn't require projection.
Being that the screen time for these ads is quite short in comparison to the entire video, and the start and end times of visibility would be known for each ad placement you can just splice together the actual targeted video and not worry about the other parts of the video that don't have placements. Of course Mirriad may not be so heavily optimized yet in the workflow, but hey, they'll get there and it is only a few perl scripts with calls to ffmpeg anyways.
As for the servers needing to store different versions of the video a few points:
1. Storage is cheap, bandwidth or CPU is expensive. And we're billing the advertiser. Re-rendering videos for adaptive streaming is a cheap cost and there isn't generally a real time requirement.
2. If you don't want to store multiple versions and are using HLS for streaming delivery, you can just splice together the playlist of multiple optical flow rendered segments with EXT-X-DISCONTINUITY.
The problem is delivery via Youtube and being able to do fine grained consumer targeting. It would be better to be self hosted so you can use the various consumer targeting services like BlueKai and not have to build an entire segmentation platform.
[1] - http://en.wikipedia.org/wiki/Optical_flow http://en.wikipedia.org/wiki/Optical_flow