Hacker News new | ask | show | jobs
by tajen 3733 days ago
Why doesn't Netflix/all film directors distribute slightly different versions of their movies to every single viewer? Half a second here, a whiter scene there, it takes only 32 boolean situations to uniquely identify 2bn views, and they culd chase the viewer in court. Or do they do that already?
3 comments

That'd require a lot more extra processing power than you might think, as video encoding is very demanding processing-wise. Say you have a 1h30min long movie. Without anything like this, you only need to encode that 1h30min once[1], after which you can serve the same encode to all your customers, whether there's hundreds, thousands or millions of them. But if you encoded even just say, 5 seconds of unique footage per customer, it takes only about 1080 customers to double your video encoding time for just this title.

There are also other issues with this, like how resilient the scheme would be. If your watermarking relies on things that the user would hardly spot when watching, then it's very likely that re-encoding the video would simply get rid of the watermarks, since quality video compression is generally based on the idea of throwing away as much information that the user wouldn't notice while keeping as much important bits as you can. At the same time, if you make the watermarking easy enough to spot while looking carefully, then you could just have two people compare their watermarks and consciously mess them up.

That being said, various kinds of watermarking technologies do exist, but unless they're dynamically added to the content on playback they should all very much have the same kind of scaling issues as far as video encoding is concerned.

[1] Once in all the varying quality and compatibility levels you offer, anyway.

Well actually with modern segmented streaming (HLS or DASH), you only need 2 encodes to get 2^n (for video of n segments) unique streams. The trick is you generate the manifest per user, and they each get a unique permutation.

I actually spoke to a vendor in the last month that claims to have actually deployed this and actually prosecuted pirates. Obviously this is a sales engineer pitching a product, so take it with a grain of salt, but I have no reason to believe the technology is not reasonably robust and scalable.

So then we need captures from, say, 16 users and some software to scramble all of them together.
If implemented in the player, no re-encoding would be necessary. Naturally this wouldn't help if a pirate grabs the data before it reaches the player.
All they would need to do is diff it against someone else's copy, flip a couple "bits" and incriminate some random person.
Or randomly flips bits anywhere and call it corruption.
This is an extremely good solution IMO.