How video hosting works

    Life is structured so that it’s always more difficult to display and process digital video than digital photos:
    • Video content takes up much more space.
    • All video manipulations (compression, scaling, transcoding) require immeasurably more resources than photo conversion.
    • Due to the large amount of content, the total video traffic greatly distills the traffic of all other resources, and even requires good bandwidth.
    A typical video hosting service (such as YouTube) allows you to:
    • Upload video
    • Show videos in different sizes / formats
    However, making the video upload as fast and effective as the photos on Flickr will fail. Hostings never store the original video, and for its correct display, you must convert the original video (transcode) to other formats: for Flash-players, for mobile phones, for iPhone / Android, etc. This transcoding consumes a lot of processor time. Therefore, all video hosting companies have the concept of a queue where uploaded videos are awaiting processing.

    Queue processing speed is determined by how much hosting the processor resources have. Do not be surprised if during peak periods the video will have to wait several hours.

    An approximate hosting scheme may look, for example, like this:

    Video hosting

    Here is what we conditionally callbackend , i.e. everything that is not visible to the user.
    • Still images are still frames (they are thumbnails) - they are present in almost every link to a video.
    • Often when processing video, an intermediate format is used, which is convenient to transfer to several transcoder processes at once.
    • Video can be stored both on its own hosting servers, and in CDN (Content Delivery Network). Large hosting companies use all possible storage options at the same time. Remember that traffic is money, and video traffic is VERY big money!
    There are several basic ways to deliver video to users:

    Delivery of video to the user

    1. Transfer via HTTP to a Flash application (player) - as a rule, each hosting develops its own player taking into account its own specifics. It is clear that HTTP is very convenient and cheap to maintain on the server.
    2. HTTP transfer to HTML5-enabled browser (tag
    3. Transfer via HTTP to mobile phones and smartphones (iPhone, Android, etc.) - in this case, a direct link to the video file is transmitted to the phone / smartphone. It is very difficult that different devices support completely different codecs and formats (for example, iPhone supports
    4. RTMP transfer to Flash application. This is a more manageable delivery option when using the "streaming" protocol RTMP (TCP), the entire content is not directly accessible. This option requires much more server resources and is significantly more difficult to develop (compared to HTTP). In addition, it is extremely difficult to make such delivery from the CDN.
    The most simple and minimalistic option 1, where you can use one of the ready-made free players (JWPlayer, FlowPlayer).

    So, in order to make video hosting, you will need:
    • Video file storage servers
    • Good channel or arrangement with CDN
    • Backend - most likely you will have to develop from scratch
    • Flash-player (to save money, you can take a free one).

    Also popular now: