VLC Media Player and Digital Cinema - ISF

VLC Media Player and Digital Cinema
Loukmane Dessai1
Summary
As project leader within the context of the ENSEEIHT Industrial Project I had the opportunity to work in collaboration with VLC, cinemas Utopia and four colleagues in order to provide a free and open-source software to read digital films
(DCP).
This project is built on a last year ENSEEIHT Industrial Project where the team who carried out it, managed to read only one
reel of a DCP.
Our objective was to complete this work to make the software be able to read all reels and thus an entire movie.
Customer: Nicolas Bertrand
Industrial supervisor: Younes Bensallam
Period: 20 January 2014 to 14 March 2014
Team: Loukmane Dessai, Guillaume Gonnaud, Ludovic Hoareau, Anthony Giniers and Valentin Vetter
Keywords
Digital Cinema — VLC — DCP — Open-source — ENSEEIHT Industrial Project
1 3rd
year Computer Science Engineering, Information Technology and Applied Mathematics
Corresponding author: [email protected]
Contents
Introduction
1
1
1
Project management
1.1 Development plan and quality management . . . . . . . 2
1.2 Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
The purpose is to develop a solution open-source allowing
to make, to distribute and to throw digital movies.
Indeed, cinemas show digital movies since 2009. The problem
is that the projection system is very expensive because the
format of movies compression (DCP2 ) allows to preserve an
excellent image quality but requires specific equipment to be
decompressed in time (24 images per second).
1.3 Product . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4 Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.5 Risk analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2
Development
2
2.1 How does VLC work? . . . . . . . . . . . . . . . . . . . . . 2
2.2 DCP module . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3
Results
3
3.1 Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.2 Outcomes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.3 Future advances . . . . . . . . . . . . . . . . . . . . . . . . . 3
Conclusion
3
References
3
The objective of Nicolas Bertrand’s thesis is to supply a
software solution to the decompression of these images which
would allow to decrease the cost of the installations of projection and to integrate this solution in VLC.
The objective of the last year project was to bring the VLC
software to be able to open and read only one reel of a DCP
file. Videos are in DCP format, which is in fact a directory
containing a video compressed in the JPEG2000 format, the
audio in the WAV format and the subtitles in XML3 .
Our objective is to bring the VLC software to be able to
read all the reels of a DCP file and thus to read a full movie.
Introduction
1. Project management
This project is in the field of the digital cinema and open
source software. The project joins a research activities carried
out by the IRIT and the cinemas Utopia, in partnership with
the VLC1 team.
As project leader I was in charge of the project management.
1 VideoLan
is an open-source and free media player.
2 Digital Cinema Package. In a DCP there are both the film and the trailer
and the film is divided into reels.
3 eXtensible Markup Language.
VLC Media Player and Digital Cinema — 2/3
1.1 Development plan and quality management
At the beginning of the project, we set up a development
plan in order to ensure and enhance the quality of the project.
• Earliz: website to help the project management.
• Meetings: with the stakeholders.
• List of Actions: a list filled after each meeting for each
members of the group.
• Documents: both technical documents and about the
project management (planning, risks...).
• Wiki: website gathering tutorials and meeting reports.
• Communication: IRC, meetings and mail.
• Coding style: use of code convention to develop properly.
• GIT: Distributed Version Control System.
1.2 Organization
• Loukmane Dessai: Project leader and quality manager.
I was in charge of all the management part, schedule,
definition and distribution of the tasks.
• Guillaume Gonnaud : conception and specification
leader and developer.
• Anthony Giniers: code analyser and developer.
• Ludovic Hoareau: code analyser and developer.
• Valentin Vetter: VCS4 manager. He was in charge of
sending the patches to VLC.
1.3 Product
Deliverable The product we had to deliver is composed of
C++ codes that we had to send to VLC as Patches.
As we had to wait for feedback from VLC to correct the patches, and after writing down the product requirements with the customer, we decided to share the product into
several small and independent batches.
Patches
Requirements
1.4 Planning
Figure 2. Timeline of the project
1.5 Risk analysis
Figure 3. Table of the Criticality of the risks
Main risk It was the response time of VLC to our patches.
According to our customer, the time of response might range
from five minutes to one week!
Table 1. Mitigation of the VLC risk
Prevention
Small patches to facilitate reading
Independent patches to work in parallel
Send patches as soon as possible
Action
Contact VLC
Try some pressure
The product shall
• be able to read a full movie (audio, video, subtitles).
• allow users to navigate into the movie (slider, pause).
• be used with an option to choose between the film or
the trailer (both are found in the DCP).
2. Development
Our work consisted in completing the DCP module of VLC
to take into account the requirements.
2.1 How does VLC work?
When VLC is launched with a input, a main thread is created, which create also an input thread. The following figure
explains the next steps:
Figure 1. Simplified Product Breakdown Structure
4 Version
Control System. Management of changes into codes.
VLC Media Player and Digital Cinema — 3/3
3. Results
3.1 Tests
The tests consisted in watching a full film and searching
for errors.
Personal tests
Tests on a low resolution film with personal
computers.
Tests on a high resolution (1k) film with a
powerful computer.
at ENSEEIHT
at cinema Utopia Tests on a very high resolution (2k) film
with a cinema projector.
3.2 Outcomes
Sucess
• The product is able to read a full film.
• We can pause and resume.
• We can use the option –cpl=n5 .
Figure 4. Management of an input by VLC
When an input is received, VLC looks for an access or
access-demux module that can handle the type of the input.
If an access is found, VLC looks for a compatible demultiplexer (demux). After the demux or the access-demux, the
elementary streams are redirected to the decoders and the
filters. Then the images are displayed.
2.2 DCP module
We completed the access-demux DCP module used by VLC
to read a DCP.
The following figure explains the architecture of the module
and how it works :
We can use the slider but sometimes we lose
the sound or the subtitles.
Limitations
3.3 Future advances
DCP module
• Fix the slider (audio and subtitles issues).
• Fix the option #n:m.6
About Nicolas Bertrand’s thesis
• Decryption7 of DCP files.
• Optimization of the JPEG2000 decoder.
• Creation of a module for the subtitles part.
Conclusion
To sum up I can say that even if we did not manage to
correct all minor errors, the project is a great success:
VLC is now able to read a full DCP film !
As far I am concerned and as a leader, this project allowed
me to discover a new aspect that I am not used to experiencing
which is project management.
Figure 5. Reading a film with the DCP module
1. Parse the XML files to collect all information about the
reels.
2. Store the data in the variable dcp t.
3. Create the readers (audio and video) by calling the
openRead() function for all reels.
4. Call the Demux() function to read the video and the
audio.
5. Create the structure needed for the subtitles by calling
openSubtitles().
6. Call Demuxsubtitle() inside Demux() to activate the
subtitles.
References
[1]
Independants Solidaires F´ed´er´es. http://www.isf.cc. ISF.
[2]
Wiki isf. http://www.isf.cc/wiki. Nicolas Bertrand, 2014.
[3]
VideoLan. http://www.videolan.org.
[4]
Wiki videolan. https://wiki.videolan.org.
5n
is a number: 0 for the trailer and 1 for the film
the number for the trailer/film and m the number of the reel
7 DCP files are encrypted by the by studios to control its reading.
6n