I don’t think that inlining ads into the stream would be expensive, because of how adaptive streaming formats work. There are probably other reasons why they haven’t chosen this option yet.
This seems simple for one stream, but scale that up to how many unique streams that Youtube is servicing at any given second. 10k?
Google doesn’t own all of the hardware involved in this video serving process. They push videos to their local CDNs, which then push the videos to the end users. If we’re configuring streams on the fly with advertisements, we need to push the ads to the CDNs pushing out the content. They may already be collocated, but they may not. We need to factor in additional processing which costs time and money.
I can see this becoming an extremely ugly problem when you’re working with a decentralized service model like Youtube. Nothing is ever easy since they don’t own everything.
So what you would do is to generate the manifest files (HLS/DASH/what have you) on the fly to include the segments with ads. Since adaptive streaming is based on manifests, that stitch together segments of video files that together make up the underlying content in different bitrates, you can essentially just push in a few segments of advertising in-between the segments representing the underlying content. This isn’t particularly hard to do, and you’d get the full benefit of the CDN for the segments, so there’s really no issue.
Since they target ads demographically and ads change frequently, that would be a mess… The encoding, storage, and tracking would be a Big problem.
If they go this route, it would only make sense if they build a new video codec that allows for linearly splitting content at key frames so they can concatenate the ads with the video in a single file at runtime.
Also, couldn’t ad detectors just start playback at the key frames?
Even if it works, it would still be a Big Deal since re-encoding all of YouTube would be Hard. I guess they could just use the codec for all newly added material. Playback might suck on older devices, too; idk if they use h264 (that has dedicated hardware decoders)?
Thankfully it seems that encoding ads into the video stream is still too expensive for them to implement.
I’m assuming that asking CDNs to combine individualized ads with content and push the unique streams to hosts does not scale well.
I don’t think that inlining ads into the stream would be expensive, because of how adaptive streaming formats work. There are probably other reasons why they haven’t chosen this option yet.
This seems simple for one stream, but scale that up to how many unique streams that Youtube is servicing at any given second. 10k?
Google doesn’t own all of the hardware involved in this video serving process. They push videos to their local CDNs, which then push the videos to the end users. If we’re configuring streams on the fly with advertisements, we need to push the ads to the CDNs pushing out the content. They may already be collocated, but they may not. We need to factor in additional processing which costs time and money.
I can see this becoming an extremely ugly problem when you’re working with a decentralized service model like Youtube. Nothing is ever easy since they don’t own everything.
So what you would do is to generate the manifest files (HLS/DASH/what have you) on the fly to include the segments with ads. Since adaptive streaming is based on manifests, that stitch together segments of video files that together make up the underlying content in different bitrates, you can essentially just push in a few segments of advertising in-between the segments representing the underlying content. This isn’t particularly hard to do, and you’d get the full benefit of the CDN for the segments, so there’s really no issue.
Since they target ads demographically and ads change frequently, that would be a mess… The encoding, storage, and tracking would be a Big problem.
If they go this route, it would only make sense if they build a new video codec that allows for linearly splitting content at key frames so they can concatenate the ads with the video in a single file at runtime.
Also, couldn’t ad detectors just start playback at the key frames?
Even if it works, it would still be a Big Deal since re-encoding all of YouTube would be Hard. I guess they could just use the codec for all newly added material. Playback might suck on older devices, too; idk if they use h264 (that has dedicated hardware decoders)?
If they go back to contextual ads instead of making the NSA look like reasonable people, they could pre-insert them like some podcasts do
and for that, there’s SponsorBlock https://sponsor.ajay.app/