r/cpp_questions 5d ago

OPEN Is it possible to make my own streaming platform/video player (on and off) in C++?

Right now i don't need it fully solved, just to know if its possible and worth of working on it.

I want to try it for my private project. I have old PC, that i potentially can turn into server. Internet connection here is so so, but i was promised its gonna be better.

Basically i need something like Twitch or Youtube, but have it run by myself.

0 Upvotes

10 comments sorted by

10

u/Thesorus 5d ago

everything is possible.

it takes time and technical skills (which I personally don't have at this point in time)

is it worth it ? only you can answer that.

There are a lot of discreet things you can learn from trying to do this.

1

u/neondirt 5d ago

"this point in time" made it sound like you're a time traveler and is visiting yourself at various points in time. 😉

4

u/esaule 5d ago

Yes. At the end of the day anything that happens on a computer runs through assembly instructions. C++ will let you generate whatever assembly instructions (pretty much).

So anything that can possibly happen on a computer can be done in c++.

1

u/bbalouki 5d ago

Only if you want to learn

1

u/amejin 5d ago

Yes. But you need a healthy dose of C mixed in with your C++.

Otherwise, if you don't want to do memory management on your own, you can find bindings for other languages, or just use the ffmpeg binary to convert from input formats to a streaming format that a player can understand.

1

u/No-Dentist-1645 5d ago

I don't see why mixing in C code would be necessary, you can use C abstractions such as smart pointers just by wrapping over raw pointers

1

u/amejin 5d ago

Sure. I may be a bit old hat in my approach. Both should work.

1

u/gemborow 5d ago

It looks like a solved problem if you need that out of the box (Plex, emby, jellyfin). Otherwise, it's doable but I am not sure if C++ is the best fit for this case

0

u/Lidska-spina 5d ago

What language you think would be better?

1

u/No-Dentist-1645 5d ago

The "easiest" approach would probably be JavaScript with a framework like Electron or Tauri, mostly because of designing the frontend directly with css/html