Real-time Video Mixer
Tipo de documentoTrabajo final de grado
Condiciones de accesoAcceso abierto
The aim of this project is to develop a software real-time video production tool capable of mixing and switching video signals received via RTP, compressed with standard H264. Traditional production systems are based on non scalable hardware with high costs that can become unaffordable and require dedicated inflexible infrastructure. The solution presented is intended as a software version of traditional production elements, such as switching matrices and video mixers, increasing flexibility, decreasing costs and offering scalability. The developed product is able to manage different compressed input video streams (decompressing, resizing and locating them in a certain position) and to compress and send via RTP the resulting video. Real-time feature demands focusing on performance and minimizing delays, specially for video-conferencing, so the process needs to be optimized in terms of stream compression, decompression and scaling, the main bottlenecks. Moreover, real-time management is mandatory, so it has been necessary to develop an event handler system and a RESTful API in order to achieve this. Performance tests have been done in order to measure some important parameters, such as introduced delay by the system and average frame rate achieved. For example, receiving four 720p streams at 24 fps and composing them as a 2x2 grid on a FULL HD layout, video mixer can achieve an average delay of 108 ms and 24 fps.