  Video streaming, in various forms of video on demand (VOD), live, and 360
degree streaming, has grown dramatically during the past few years. In
comparison to traditional cable broadcasters whose contents can only be watched
on TVs, video streaming is ubiquitous and viewers can flexibly watch the video
contents on various devices, ranging from smart-phones to laptops and large TV
screens. Such ubiquity and flexibility are enabled by interweaving multiple
technologies, such as video compression, cloud computing, content delivery
networks, and several other technologies. As video streaming gains more
popularity and dominates the Internet traffic, it is essential to understand
the way it operates and the interplay of different technologies involved in it.
Accordingly, the first goal of this paper is to unveil sophisticated processes
to deliver a raw captured video to viewers' devices. In particular, we
elaborate on the video encoding, transcoding, packaging, encryption, and
delivery processes. We survey recent efforts in academia and industry to
enhance these processes. As video streaming industry is increasingly becoming
reliant on cloud computing, the second goal of this survey is to explore and
survey the ways cloud services are utilized to enable video streaming services.
The third goal of the study is to position the undertaken research works in
cloud-based video streaming and identify challenges that need to be obviated in
future to advance cloud-based video streaming industry to a more flexible and
user-centric service.
