CBL - Campus del Baix Llobregat

Projecte llegit

Títol: Actualització de software per a pràciques docents de SAI


Estudiants que han llegit aquest projecte:


Director/a: CASALS IBÁÑEZ, LLUÍS

Departament: ENTEL

Títol: Actualització de software per a pràciques docents de SAI

Data inici oferta: 29-01-2026     Data finalització oferta: 29-09-2026



Estudis d'assignació del projecte:
    GR ENG TELEMÀTICA
Tipus: Individual
 
Lloc de realització: EETAC
 
Paraules clau:
Anàlisi de vídeo, compressió de vídeo, estructura GOP, vectors de moviment, frames I/P/B, bitrate, Linux, Python
 
Descripció del contingut i pla d'activitats:
Aquest treball final de grau planteja actualitzar i millorar algunes de les eines de software que es fan servir a les pràctiques de laboratori de SAI (Serveis Audiovisuals a Internet). En particular, es proposa actualitzar software basat en versions antigues de sistema operatiu windows, migrant, quan sigui possible, a software sobre Linux (Ubuntu) i amb suport de codi obert.

Es realitzarà un estudi de quin software pot ser actualitzat i/o millorat. S'analitzarà quina és la millor alternativa per desenvolupar l'actualització, i s'implemtaran els casos que es considerin viables. En tot cas, també es proposaran les tasques per aquells casos que no siguin abordables per raons de temps, i es planificaran per a futurs treballs.

Les eines/suports preferents per desenvolupar el treball serà: Sistema operatiu Linux (Ubuntu), programació en Python. En tot cas, també es consideraran altres alternatives si es creu convenient.
 
Overview (resum en anglès):
The video analysis lab sessions of the Audiovisual Services over Internet course are done with two commercial tools, Elecard StreamEye Analyzer and Pixeltools ExpertDVD. Neither of them works on Linux. That means keeping computers with Windows or setting up virtual machines, and it goes against the path towards free software that the school has been following for years.
SAI Video Analyzer is the application that has been developed to solve this. It runs on Linux and brings together in one program what used to require several tools. It gives the type and the size of each frame, and with these data it is then possible to see how frames are grouped into GOPs, what motion there is from one image to the next and what happens to a frame while it is compressed. It is written in Python with PyQt6, and the code is divided into three layers: the interface, the analysis logic and the communication with the external tools, each one independent from the others. The data comes from FFprobe, from OpenCV and from PyAV. This last one is what makes it possible to reach the motion vectors that the codec stored inside the bitstream when it compressed the video. Not every format exposes them. When they are not there, the motion is estimated with optical flow and the interface says so, so the student knows whether what is on the screen comes from the file or from a calculation made afterwards.
To check that it works, eight videos of six different formats were analysed, from uncompressed video to H.264, going through H.261, MPEG-1, MPEG-2 and Transport Stream. In the MPEG formats the frame count, the GOP structure and the bitrate figures give exactly the same as Elecard StreamEye. In H.264 the biggest difference is one frame. The few deviations that appear do not come from any calculation error, but from the fact that each tool measures in a different way, and it has been possible to explain the reason in every case. The application also opens files that the reference tool does not even load, such as uncompressed video or H.261.


© CBLTIC Campus del Baix Llobregat - UPC