This is the repository for the interoperability kit of EBU-TT Live.
The kit is envisaged to contain a set of components for generating, testing and distributing subtitle documents in EBU-TT Part 3 format.
This is an open source project. Anyone is welcome to contribute to the development of the components. Please see the wiki for the list of required components, guidelines and release plan.
If you would like to contribute, please contact [email protected] or [email protected]
Make sure you have python 2.7+. Make sure you have python virtual environment capability.
If not you can install virtualenv systemwide from your operating system's package repository or by pip:
sudo pip install virtualenv
After that creating a virtual environment should be as simple as:
virtualenv env
Let's activate it (source makes sure the current shell executes the script and assumes the environment variables that the activation script sets):
source ./env/bin/activate
After having created the python virtual environment and having activated it the package can be built by typing make if you have GNU build tooling on your system.
make
Alternatively:
pip install -r requirements.txt
pip install -r requirements-test.txt
python setup.py develop
pyxbgen -r --binding-root=./ebu_tt_live/bindings -m __init__ --schema-root=./ebu_tt_live/xsd1.1/ -u ebutt_live.xsd
After this you are supposed to be able to launch the command line tools this python package provides i.e.:
ebu-dummy-encoder
Windows is not the best friend of Makefiles. So there is a make.bat file for those who would like to develop using Windows. Assuming python 2.7 and virtualenv is installed and are on the PATH.
make
This will make sure a virtual environment is created and activated and installs all the tools into it.
After that the following command should work:
ebu-dummy-encoder
The schema definitions are to be found embedded in the Python library in the xsd1.1 subfolder. The root schemadocument is called ebutt_live.xsd.
The library uses XSD schemas from the xsd1.1 subdirectory. The bindings are auto-generated by PyXB. For binding generation one can use the following code:
pyxbgen -r --binding-root=./ebu_tt_live/bindings -m __init__ --schema-root=./ebu_tt_live/xsd1.1/ -u ebutt_live.xsd
The bindings will keep the validation sane and PyXB makes sure that updates are working as expected. Should the schema be modified a regeneration can be run and the bindings will respect the changes.