Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


What type of things do you need to consider to stream a video?
New on LowEndTalk? Please Register and read our Community Rules.

All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.

What type of things do you need to consider to stream a video?

sgno1sgno1 Member
edited December 2020 in Help

What type of things do you need to consider to stream a videos? i.e. CPU Power/RAM Power, Bandwidth. How would one know how much is required for 'x' amount of people watching?
(Not live stream, just playback through feeding files)

Comments

  • NewToTheGameNewToTheGame Member
    edited December 2020

    Bandwidth will be a big consideration along with storage, not just the space required as video files are large, but transfer speed of said storage medium, at least raid 10, 50 or 60 hdd with ssd cache, large nvme drives will be expensive.

    You can get a rough idea what you will need by considering a worst case video file, what is its size, what is its data stream size per second, then you can start working stuff out, like how many users will be able to watch it at the same time, or how many streams at the same time.

    Thanked by 1sgno1
  • @NewToTheGame said:
    Bandwidth will be a big consideration along with storage, not just the space required as video files are large, but transfer speed of said storage medium, at least raid 10, 50 or 60 hdd with ssd cache, large nvme drives will be expensive.

    You can get a rough idea what you will need by considering a worst case video file, what is its size, what is its data stream size per second, then you can start working stuff out, like how many users will be able to watch it at the same time, or how many streams at the same time.

    Cheers!

  • If your users are globally distributed you can consider CloudFlare Stream rather than spinning up multiple servers. Cost might be a factor though.

    Thanked by 2sgno1 mrTom
  • PUSHR_VictorPUSHR_Victor Member, Host Rep

    Take the bitrate of the video, multiply it by the number of viewers you need to serve it to simultaneously and you will end up with the absolute minimum available bandwidth that you need to have. Your ideal setup would start anywhere between 10% to 20% beyond this to ensure a fast start.
    As for what else you need - it's impossible to say unless more details are given. Generally, CPU is irrelevant since there is no transcoding going on, and the importance of RAM is directly related to the disk drive(s) speed, but the more RAM the better so that more content can be cached there.

    Thanked by 2Kassem sgno1
  • Does your videos is static files / have been encoded?
    if yes you can use @BunnySpeed https://bunnycdn.com/solutions/video-delivery so you don't need to worry about bandwidth excess

    Thanked by 1mrTom
  • yoursunnyyoursunny Member, IPv6 Advocate

    My push-up videos are delivered using Named Data Networking (NDN).
    I have two repository servers providing the same content: one in Oracle Cloud Tokyo, the other in Virmach Buffalo. Contents are static, and have been prepared with Shaka Packager.

    Viewers connect to one of 30+ routers in the global NDN network over WebSockets to retrieve the content.
    Each of these routers have an opportunistic cache of recently retrieved content, which significantly reduces the bandwidth usage of my repository servers.

    It has been demonstrated that live video streaming is scalable up to 200 simultaneous viewers.
    However, there hasn't been a large scale test for recorded video streaming.

    The NDN testbed can be used for free, as long as you can figure out the protocols.
    Source code of my video site is linked from page footer.

    Thanked by 20xbkt sgno1
  • Bandwidth and server speed are more important to stream without buffer

    Thanked by 1sgno1
  • @yoursunny said:
    My push-up videos are delivered using Named Data Networking (NDN).
    I have two repository servers providing the same content: one in Oracle Cloud Tokyo, the other in Virmach Buffalo. Contents are static, and have been prepared with Shaka Packager.

    Viewers connect to one of 30+ routers in the global NDN network over WebSockets to retrieve the content.
    Each of these routers have an opportunistic cache of recently retrieved content, which significantly reduces the bandwidth usage of my repository servers.

    It has been demonstrated that live video streaming is scalable up to 200 simultaneous viewers.
    However, there hasn't been a large scale test for recorded video streaming.

    The NDN testbed can be used for free, as long as you can figure out the protocols.
    Source code of my video site is linked from page footer.

    Not sure if your setup is working properly. I tried viewing the pushup videos and the first one played fine, the others froze in the middle, then I had to pause to get them to continue playing. I'm not on the fastest connection but still around 90mbps.

    Personally I just use YouTube, Vimeo, Wistia, Swarmify or other companies that specialize in videos.

    Also I didn't see one proper pushup in the videos...false advertising.

    Thanked by 2randomq rooted
  • Bandwidth is the most important thing to consider when streaming live or even just static content.

    If you transcode then CPU is very relevant, but most of the cases where you just stream static content you can host or update your content on any generic Object Storage (S3-like or a CDN Storage) and stream the content

    E.g. if you do not want to take care of it just upload it on a Object storage and let the provider manage it, but bandwidth costs will be relevant

    If you want to build yourself a VM and stream the static content find yourself a VM that has at least 1GBit/s uplink so you can handle multiple fast-streams.. (but that depends also on file size)

    E.g.*2 1000 users downloading 1MB file is one thing and 1000 users downloading a 100MB file is a way harder to sustain from a single VM and must rely on providers

  • yoursunnyyoursunny Member, IPv6 Advocate

    @spun said:

    @yoursunny said:
    My push-up videos are delivered using Named Data Networking (NDN).

    Not sure if your setup is working properly. I tried viewing the pushup videos and the first one played fine, the others froze in the middle, then I had to pause to get them to continue playing. I'm not on the fastest connection but still around 90mbps.

    You get 720p when the stars align correctly. Otherwise, it's 360p or 240p.

    Chavoosh Ghasemi (University of Arizona) published a paper Far Cry: Will CDNs Hear NDN's Call? regarding his initial design on video streaming. One of his findings is that NDN has fewer POPs than Akamai and Fastly, so that user experiences worse performance.
    His paper claims that he could deliver 1080p to all the viewers except South America, but this is a questionable claim: he did the experiment by running a video streaming client in every AWS region, which has great connectivity. It doesn't reflect real world performance.

    One problem is the router selection algorithm. There are 40+ routers but only a dozen supports WebSockets, and the server responsible for selecting a router simply uses GPS coordinates. It sometimes gives a router geographically close but networkwise far away…
    I know that Cloudflare et al would have better algorithms that consider network topology, etc.

    Personally I just use YouTube, Vimeo, Wistia, Swarmify or other companies that specialize in videos.

    I can publish naked push-ups on NDN, with RSA-OAEP encryption to ensure only those who received the decryption key could access. The servers storing such packets would not be able to tell its content - it's no different from random data.

    YouTube doesn't support that. Vimeo allows setting a password but the server can still see the content.

    Note: I don't have encryption enabled on the webapp, but the underlying library supports that. If enabled, Romanian / German police (who gets a kick for pulling disks and shutting down routers) wouldn't be able to see what's in there unless they have the decryption key, and the server operator doesn't have it either. Think "AES-256 encrypted ZIP file uploaded to Google Drive".
    Nevertheless, I don't recommend using this feature to host copyrighted or illegal content.

    Also I didn't see one proper pushup in the videos...false advertising.

    I'm trying…

    When I did the "32 push-ups for FAT32" recording, it's the fourth attempt that day. During previous attempts, the camera fell off the tree, got blown away by river, etc.
    My form got worse after 128 push-ups, and the freezing water and pouring rain weren't helping either.

Sign In or Register to comment.