Adaptive Streaming Server dengan FFMPEG dan Golang

  • David Kristiadi Sekolah Tinggi Multi Media
  • Marwiyati Sekolah Tinggi Multi Media
Keywords: Adaptive Streaming, Video Streaming, DASH, FFMPEG, Golang


Quality of experience (QoE) when accessing video streaming becomes a challenge in varieties of network bandwidth/speed. Adaptive streaming becomes an answer to gain good QoE. An architecture system of the adaptive streaming server with Dynamic Adaptive Streaming over HTTP (DASH) was proposed. The system was consists of two services e.g transcoding and streaming. Transcoding service encodes an audio file, multi-bitrates video files, and manifest.mpd files. Streaming service serves client streaming requests that appropriate to client network profiles. The system is built using the Golang programming environment and FFMPEG. Transcoding service has some execution mode (serial and concurrent) and passing mode (1 pass and 2 passes). The transcoding service test results show that concurrent execution is faster 11,5% than the serial execution and transcoding using 1 pass is faster 46,95% than 2 passes but the bitrate of output video lower than the determinate bitrate parameter.  The streaming service has a good QoE. In the 5 scenarios, buffer level=0 happens 5 times, and its total duration is 64 seconds. Buffer level=0 happens when extreme changes happen in network speed from fast to too slow.



Download data is not yet available.


E. Kurniawan, A. Sani, and T. Pustaka, “Analisis Kualitas Real Time Video Streaming Terhadap Bandwidth Jaringan Yang Tersedia,” Singuda ENSIKOM, vol. 9, no. 2, pp. 92–96, 2014.

APJII, “Laporan Survei Penetrasi & Profil Perilaku Pengguna Internet Indonesia.” 2018.

S. Goring, A. Raake, and B. Feiten, “A framework for QoE analysis of encrypted video streams,” 2017 9th Int. Conf. Qual. Multimed. Exp. QoMEX 2017, pp. 1–3, May 2017, doi: 10.1109/QoMEX.2017.7965640.

S. S. Kallungal, “A Survey on Adaptive Video Streaming Techniques with Cloud,” Int. J. Adv. Res. Comput. Eng. Technol., vol. 6, no. 3, pp. 350–352, 2017.

Y. Bandung, Sean, L. B. Subekti, I. G. B. B. Nugraha, and K. Mutijarsa, “Design and Implementation of Video on Demand System Based on MPEG DASH,” in 2020 International Conference on Information Technology Systems and Innovation (ICITSI), Oct. 2020, pp. 318–322, doi: 10.1109/ICITSI50517.2020.9264973.

Z. Duanmu, K. Zeng, K. Ma, A. Rehman, and Z. Wang, “A Quality-of-Experience Index for Streaming Video,” IEEE J. Sel. Top. Signal Process., vol. 11, no. 1, pp. 154–166, Feb. 2017, doi: 10.1109/JSTSP.2016.2608329.

L. De Cicco and S. Mascolo, “An adaptive video streaming control system: Modeling, validation, and performance evaluation,” IEEE/ACM Trans. Netw., vol. 22, no. 2, pp. 526–539, 2014, doi: 10.1109/TNET.2013.2253797.

N. Fimic, S. Tanackovic, J. Kovacevic, and M. Temerinac, “Implementation of multi-format adaptive streaming server,” 5th IEEE Int. Conf. Consum. Electron. - Berlin, ICCE-Berlin 2015, pp. 218–220, 2016, doi: 10.1109/ICCE-Berlin.2015.7391239.

S. Han, Y. Go, H. Noh, and H. Song, “Cooperative server-client http adaptive streaming system for live video streaming,” Int. Conf. Inf. Netw., vol. 2019-Janua, pp. 176–180, 2019, doi: 10.1109/ICOIN.2019.8718151.

R. Dubin, R. Shalala, A. Dvir, O. Pele, and O. Hadar, “A fair server adaptation algorithm for HTTP adaptive streaming using video complexity,” Multimed. Tools Appl., vol. 78, no. 9, pp. 11203–11222, 2019, doi: 10.1007/s11042-018-6615-z.

C. Mueller, S. Lederer, J. Poecher, and C. Timmerer, “Demo paper: Libdash - An open source software library for the MPEG-DASH standard,” Electron. Proc. 2013 IEEE Int. Conf. Multimed. Expo Work. ICMEW 2013, pp. 1–2, 2013, doi: 10.1109/ICMEW.2013.6618220.

H. Azwar, “Jurnal Politeknik Caltex Riau Pengaruh Panjang Segmen Video pada Dynamic Adaptive Streaming over HTTP (DASH) terhadap Kualitas Pengiriman Video H.265,” 2015. Accessed: Nov. 25, 2020. [Online]. Available:, “FFmpeg.” (accessed Sep. 16, 2019).

N. Jain, H. Shrivastava, and A. A. Moghe, “Production-ready environment for HLS Player using FFmpeg with automation on S3 Bucket using Ansible,” 2nd Int. Conf. Data, Eng. Appl. IDEA 2020, pp. 26–29, 2020, doi: 10.1109/IDEA49133.2020.9170694.

Y. Xu and S. Cao, “Design and implementation of a multi video transcoding queue based on MySQL and FFMPEG,” Proc. IEEE Int. Conf. Softw. Eng. Serv. Sci. ICSESS, vol. 2015-Novem, pp. 629–632, 2015, doi: 10.1109/ICSESS.2015.7339136., “Documentation - The Go Programming Language.”

S. S. CHANG, Go Web Programming. Manning Publications, 2016.

Noval Agung, “Golang Web Server - Dasar Pemrograman Golang,” 2017. https://dasarpemrogramangolang.novalagung.

com/A-web-server.html (accessed Apr. 08, 2021).

A. A. Kristanto, Y. Harjoseputro, and J. E. Samodra, “Implementasi Golang dan New Simple Queue pada Sistem Sandbox Pihak Ketiga Berbasis REST API,” J. RESTI, vol. 4, no. 4, pp. 745–750, 2020, Accessed: Apr. 09, 2021. [Online]. Available:

view/2218/287., “WebM VOD Baseline format - wiki,” 2012. (accessed Dec. 07, 2019).

R. Pike, “Go Concurrency Patterns,” Google, 2012. (accessed Apr. 14, 2021)., “Dash JavaScript Player.” (accessed Dec. 07, 2019).

How to Cite
Kristiadi, D., & Marwiyati. (2021). Adaptive Streaming Server dengan FFMPEG dan Golang. Jurnal RESTI (Rekayasa Sistem Dan Teknologi Informasi), 5(3), 413 - 420.
Information Systems Engineering Articles