Video Editing with Single Responsibility Principle
Papalitsas, Aleksi (2023-05-23)
Video Editing with Single Responsibility Principle
Papalitsas, Aleksi
(23.05.2023)
Julkaisu on tekijänoikeussäännösten alainen. Teosta voi lukea ja tulostaa henkilökohtaista käyttöä varten. Käyttö kaupallisiin tarkoituksiin on kielletty.
avoin
Julkaisun pysyvä osoite on:
https://urn.fi/URN:NBN:fi-fe2023053049932
https://urn.fi/URN:NBN:fi-fe2023053049932
Tiivistelmä
Non-linear video editors are typically extremely big and complicated programs that are able to do many complicated operations for all kinds of video formats. A professional video editor should be able to encode and decode all kinds of formats, cut and join video clips, apply flters to those videos (including color correction), analyze those videos in real time (histograms and tracking), do audio editing with digital signal processing, render 3D graphics and show them in real time, render texts, animate all efects and texts with their properties (position, opacity, etc.) with keyframes, and fnally a professional video editor should be able to play these all clips in real time while showing the current output of the video editing. Of course, there is also rendering, but encoding was mentioned earlier and when the video is already processed in real time, the rendering should be trivial.
The main challenge, which this thesis attempts to solve, is that these applications are extremely complex and contain multiple components that could be applications on their own. If one component crashes, the whole program crashes. The exact point of single responsibility principle (can be seen as part of UNIX philosophy in this case) is to have applications that do one thing and do it well. This means that all the parts of the modern complex video editor would be divided into small modular parts that function on their own but are able to talk with each other. This also means that the end user does not lose all the progress that has been made, which in turn will make the video editing much easier and smoother experience. This kind of modularity and its possibilities are researched in this thesis.
The main challenge, which this thesis attempts to solve, is that these applications are extremely complex and contain multiple components that could be applications on their own. If one component crashes, the whole program crashes. The exact point of single responsibility principle (can be seen as part of UNIX philosophy in this case) is to have applications that do one thing and do it well. This means that all the parts of the modern complex video editor would be divided into small modular parts that function on their own but are able to talk with each other. This also means that the end user does not lose all the progress that has been made, which in turn will make the video editing much easier and smoother experience. This kind of modularity and its possibilities are researched in this thesis.