Adaptive Streaming Server dengan FFMPEG dan Golang
Abstract
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.
Downloads
References
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: http://jurnal.pcr.ac.id.
ffmpeg.org, “FFmpeg.” https://ffmpeg.org/ (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.
Golang.org, “Documentation - The Go Programming Language.” https://golang.org/doc/.
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: http://www.jurnal.iaii.or.id/index.php/RESTI/article/
view/2218/287.
webmproject.org, “WebM VOD Baseline format - wiki,” 2012. https://sites.google.com/a/webmproject.org/wiki/adaptive-streaming/webm-vod-baseline-format (accessed Dec. 07, 2019).
R. Pike, “Go Concurrency Patterns,” Google, 2012. https://talks.golang.org/2012/concurrency.slide#17 (accessed Apr. 14, 2021).
dashif.org, “Dash JavaScript Player.” http://reference.dashif.org/dash.js/latest/samples/dash-if-reference-player/index.html (accessed Dec. 07, 2019).
Copyright (c) 2021 Jurnal RESTI (Rekayasa Sistem dan Teknologi Informasi)
This work is licensed under a Creative Commons Attribution 4.0 International License.
Copyright in each article belongs to the author
- The author acknowledges that the RESTI Journal (System Engineering and Information Technology) is the first publisher to publish with a license Creative Commons Attribution 4.0 International License.
- Authors can enter writing separately, arrange the non-exclusive distribution of manuscripts that have been published in this journal into other versions (eg sent to the author's institutional repository, publication in a book, etc.), by acknowledging that the manuscript has been published for the first time in the RESTI (Rekayasa Sistem dan Teknologi Informasi) journal ;