this post was submitted on 12 Jun 2024
107 points (100.0% liked)
Technology
37716 readers
341 users here now
A nice place to discuss rumors, happenings, innovations, and challenges in the technology sphere. We also welcome discussions on the intersections of technology and society. If it’s technological news or discussion of technology, it probably belongs here.
Remember the overriding ethos on Beehaw: Be(e) Nice. Each user you encounter here is a person, and should be treated with kindness (even if they’re wrong, or use a Linux distro you don’t like). Personal attacks will not be tolerated.
Subcommunities on Beehaw:
This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I mean, I think that in the long run, trying to fight an arms race against Google on ad visibility is a losing proposition, but this isn't really all that hard to defeat from a technical standpoint. You just identify ads relative to timestamp offsets from a given matched frame. Use some kind of fuzzy (needs to?be fuzzy because lossy compression will alter frames a bit) hash to identify that frame, and use an identifier where it's computationally-cheap to reject most frames.
So, like, "ad ranging from frame hash 18037gb5028de882 + .53 sec lasting 30 seconds".
I dunno how Sponsorblock works -- I don't use it -- but I assume that it has some human manually identify a time. In picking a frame to use for the offset, the software needs to hash each frame in the video. Then when someone flags a frame as starting an ad sequence, search backwards from the identified time, and pick a frame to match against, look for a frame with a unique hash in the video.
There'd be some preprocessing time, but I imagine that the human interface would basically be the same. Some overhead to playback software, because it has to generate the hash for each frame while playing. If there's no Sponsorblock information for a given video, don't need to generate the hashes, though.
Right now it's entirely timestamp-based. That means it can interface and work on simple playback terms. On time, jump, jump to time, etc. Having to get frame data and hash it, and make playback depend on it adds a lot of technical complexity.
If ad length varies you don't even know how far to jump ahead. And if you haven't prebuffered the data until after the ad, you can't find out from a hashed after-frame-hash-value either.