Well, there's PeerTube, which is federated. I guess it's not decentralized, but there's no single central server, so it probably meets your requirements.
PeerTube is also special because it uses the activityPub format, so anyone on Mastodon or GNUsocial can follow somebody on PeerTube.
Popcorntime in a way was a decentralized video service.
Performance would degrade for less popular videos.
It can be solved. For example: assign peers for videos with lower number of peers instead of assigning peers for currently watching video. Please correct me, if I’m wrong.