All Projects → ebu → ebu-tt-live-toolkit

ebu / ebu-tt-live-toolkit

Licence: BSD-3-Clause license
Toolkit for supporting the EBU-TT Live specification

Programming Languages

python
139335 projects - #7 most used programming language
Gherkin
971 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects
CSS
56736 projects
Makefile
30231 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to ebu-tt-live-toolkit

Ffsubsync
Automagically synchronize subtitles with video.
Stars: ✭ 5,167 (+22365.22%)
Mutual labels:  captions, subtitles
nekocap
Browser extension for creating & uploading community captions for YouTube, niconico and other video sharing sites.
Stars: ✭ 27 (+17.39%)
Mutual labels:  captions, subtitles
ccaptioner
An extension to assign a text track to a video element in a web page
Stars: ✭ 45 (+95.65%)
Mutual labels:  captions, subtitles
Sofie Tv Automation
This is the documentation for the state-based studio automation system Sofie, used in live TV news production by the Norwegian public service broadcaster NRK since September 2018.
Stars: ✭ 155 (+573.91%)
Mutual labels:  live, broadcast
Pyinstalive
Python script to download Instagram livestreams and replays.
Stars: ✭ 336 (+1360.87%)
Mutual labels:  live, broadcast
twilio-live-interactive-video
An interactive live video app built with Twilio Live and Twilio Video
Stars: ✭ 23 (+0%)
Mutual labels:  live, broadcast
youtube-vtt
▶️ Extract and save WebVTT closed caption tracks from YouTube videos
Stars: ✭ 32 (+39.13%)
Mutual labels:  captions, subtitles
sofie-core
Sofie: The Modern TV News Studio Automation System (Server Core)
Stars: ✭ 70 (+204.35%)
Mutual labels:  live, broadcast
Media Server Go Demo
webrtc media server go demo
Stars: ✭ 140 (+508.7%)
Mutual labels:  live, broadcast
simple-obs-stt
Speech-to-text and keyboard input captions for OBS.
Stars: ✭ 89 (+286.96%)
Mutual labels:  captions, subtitles
Bilibili Live Barrage
🌈Bilibili_Live_Barrage实时监控B站直播弹幕并发送跟随弹幕
Stars: ✭ 28 (+21.74%)
Mutual labels:  live
pysubs2
A Python library for editing subtitle files
Stars: ✭ 174 (+656.52%)
Mutual labels:  subtitles
pysub-parser
Library for extracting text and timestamps from multiple subtitle files (.ass, .ssa, .srt, .sub, .txt).
Stars: ✭ 40 (+73.91%)
Mutual labels:  subtitles
youtube tool
Tool for extracting comments or subtitles from youtube video's
Stars: ✭ 89 (+286.96%)
Mutual labels:  subtitles
obplayer
📻 OBPlayer Streaming Automation Playout with CAP EAS Alerting
Stars: ✭ 93 (+304.35%)
Mutual labels:  live
acfundanmu
AcFun直播API
Stars: ✭ 27 (+17.39%)
Mutual labels:  live
lol-pick-ban-ui
Web-Based UI to display the league of legends champ select in esports tournaments.
Stars: ✭ 181 (+686.96%)
Mutual labels:  broadcast
electron-video-downloader
A minimal Electron application to download videos, eg from youtube, and associated captions (optional). Uses youtube-dl under the hood.
Stars: ✭ 22 (-4.35%)
Mutual labels:  captions
IMDb-Scout-Mod
Auto search for movie/series on torrent, usenet, ddl, subtitles, streaming, predb and other sites. Adds links to IMDb pages from hundreds various sites. Adds movies/series to Radarr/Sonarr. Adds external ratings from Metacritic, Rotten Tomatoes, Letterboxd, Douban, Allocine. Media Server indicators for Plex, Jellyfin, Emby. Dark theme/style for …
Stars: ✭ 177 (+669.57%)
Mutual labels:  subtitles
video-subtitle-extractor
视频硬字幕提取,生成srt文件。无需申请第三方API,本地实现文本识别。基于深度学习的视频字幕提取框架,包含字幕区域检测、字幕内容提取。A GUI tool for extracting hard-coded subtitle (hardsub) from videos and generating srt files.
Stars: ✭ 1,763 (+7565.22%)
Mutual labels:  subtitles

Build Status Build Status Coverage Status

ebu-tt-live-toolkit

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.

The project home page is at http://ebu.github.io/ebu-tt-live-toolkit/ and links to the pre-built documentation.

We have a Slack team called ebu-tt-lit for day to day communications, questions etc. Please join up!

If you would like to contribute or join the Slack team, please contact [email protected] or [email protected]

Preparing the build environment

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

To build the project you will also need node.js. Please read the instructions for your system here.

After having created the python virtual environment, having activated it and having installed node.js the package can be built by typing make if you have GNU build tooling on your system.

make

Alternatively:

pip install -r requirements.txt
python setup.py develop

pyxbgen --binding-root=./ebu_tt_live/bindings -m __init__ --schema-root=./ebu_tt_live/xsd/ -r -u ebutt_all.xsd

npm install nunjucks
node_modules/nunjucks/bin/precompile ebu_tt_live/ui/user_input_producer/template/user_input_producer_template.xml > ebu_tt_live/ui/user_input_producer/template/user_input_producer_template.js

After this you are supposed to be able to launch the command line tools this python package provides i.e.:

ebu-dummy-encoder

Windows users

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. To build the project you will also need node.js. Please read the instructions for your system here. Then run :

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 XSD

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 Python library

The library uses XSD schemas from the xsd1.1 subdirectory. 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.

Scripts

There are several scripts that emulate different components (nodes) in the infrastructure. They can be executed individually or in combinations by running ebu-run. Assuming the Makefile worked, the package is installed in a virtual environment and the virtual environment is active, the components should be available by running the ebu-run script and passing a configuration file. There are several example configuration files in examples/config. For the complete list see of scripts see docs/build/html/scripts_and_their_functions.html.

Below is a list of some of the key components. .

The simple producer is the beginning of the data pipeline. It generates EBU-TT-Live documents in a timed manner. In the repository root there is a test.html file that can be used for manual testing of the producer in any websocket capable browser. To run it use ebu-run:

`ebu-run --admin.conf ebu_tt_live/examples/config/simple_producer.json`

The simple consumer connects to the producer or later on in the pipeline, assuming there are more components inserted.

ebu-run --admin.conf ebu_tt_live/examples/config/simple_consumer.json

The User Input producer is a web page with a user interface that allows you to send subtitle documents and view the output of a downstream node. For complete documentation see docs/build/html/user_input_producer.html.

To run a configuration of components, use a configuration file with multiple nodes defined. For example, this will create 3 nodes: a distributer that listens to the UIP and two consumers that subscribe to the distributer:

ebu-run --admin.conf ebu_tt_live/examples/config/user_input_producer_dist_consumers.json

Documentation

Go straight to the pre-built documentation for the current master branch.

The documentation framework uses the popular Sphinx documentation generating engine and autodoc plugins to give developers the flexibility of writing Extra documentation interleaved with the autogenerated documentation created by autodoc.

Prerequisite: Graphviz

To display the images in the documentation, you need to have Graphviz installed and make sure the dot executable is on the PATH. For example, for users of homebrew:

brew install graphviz

Generating documentation

Documentation can be generated based on the sources in the docs/source directory. After having installed the packages in requirements.txt (which is done automatically by the make command) documentation can be generated by one of the following three ways:

1 Calling setuptools

python setup.py build_sphinx

2 Running make in the docs directory where separate makefiles and a make.bat file is giving a variety of options.

cd docs
make html

3 Calling the sphinx-build command line script that comes with sphinx. WARNING: Platform-dependent path-separators.

sphinx-build -b html docs/source/ docs/build/html

Previewing the documentation

After sphinx finished with a successful execution log the generated documentation should be accessible by opening the docs/build/html/index.html in any web browser.

Tests

The test framework is described in CONTRIBUTING.md

How to contribute

Please refer to CONTRIBUTING.md

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].