ttconv:强大的时间文本格式转换工具
项目介绍
ttconv
(Timed Text Conversion)是一个用纯Python编写的库和命令行应用程序,专门用于在各种时间文本格式之间进行转换。这些格式广泛应用于字幕、副标题、卡拉OK等内容的展示。ttconv
的核心工作原理是将输入文档映射到一个内部标准模型,然后将该模型映射到输出文档的格式。该标准模型严格遵循TTML 2数据模型,并受IMSC 1.1 Text Profile规范的约束。
项目技术分析
ttconv
的技术架构设计精巧,主要包括以下几个模块:
- Reader模块:负责验证并转换输入文件为标准模型实例。
- Filter模块:对标准模型实例进行转换,例如去除文本样式和定位以适应下游设备的有限能力。
- Writer模块:将标准模型实例转换为输出文件。
此外,ttconv
还利用Python的logging
模块来报告非致命事件,并通过单元测试来验证库的使用,例如src/test/python/test_imsc_writer.py
中的ReaderWriterTest.test_imsc_1_test_suite
。
项目及技术应用场景
ttconv
适用于多种场景,包括但不限于:
- 多媒体内容制作:在视频制作过程中,可能需要将字幕或副标题从一种格式转换为另一种格式。
- 跨平台内容分发:不同的平台和设备支持不同的字幕格式,
ttconv
可以帮助内容提供商轻松转换格式以适应不同平台。 - 内容本地化:在进行多语言内容本地化时,可能需要将字幕从一种语言的格式转换为另一种语言的格式。
项目特点
- 多格式支持:
ttconv
支持多种输入和输出格式,包括CEA 608/.scc、IMSC 1.1 Text Profile/.ttml、EBU STL、SubRip/.srt和WebVTT等。 - 灵活配置:通过命令行参数和配置文件,用户可以灵活地调整转换过程中的各种参数,如进度条显示、日志级别、文档语言等。
- 易于集成:作为一个Python库,
ttconv
可以轻松集成到现有的Python项目中,提供强大的时间文本格式转换能力。 - 持续开发:项目持续更新,支持更多的输入和输出格式,并欢迎社区的建议和贡献。
快速开始
要安装最新版本的ttconv
,包括预发布版本,可以使用以下命令:
pip install --pre ttconv
然后,可以使用以下命令进行格式转换:
tt convert -i <input .scc file> -o <output .ttml file>
在线演示
您可以通过在线演示体验ttconv
的功能。
文档
详细的文档和参考资料可以在项目的doc
目录中找到。
依赖
运行时依赖
开发依赖
项目使用pipenv管理依赖。
开发
本地设置
- 运行
pipenv install --dev
- 设置
PYTHONPATH
环境变量为src/main/python
,例如export PYTHONPATH=src/main/python
- 使用
pipenv run
命令
Docker设置
docker build --rm -f Dockerfile -t ttconv:latest .
docker run -it --rm ttconv:latest bash
示例
从项目根目录运行以下命令:
mkdir build
pipenv install --dev
export PYTHONPATH=src/main/python
python src/main/python/ttconv/tt.py convert -i src/test/resources/scc/mix-rows-roll-up.scc -o build/mix-rows-roll-up.ttml
代码覆盖率
单元测试代码覆盖率由scripts/coverage.sh
脚本提供。
持续集成
概述
自动化测试由scripts/ci.sh
脚本提供。
本地运行
运行./scripts/ci.sh
GitHub Actions
查看.github/workflows/main.yml
Docker运行
运行docker run -it --rm ttconv:latest /bin/sh scripts/ci.sh
ttconv
是一个功能强大且易于使用的时间文本格式转换工具,无论您是多媒体内容制作人员、跨平台内容分发者还是内容本地化专家,ttconv
都能为您提供极大的便利。立即尝试,体验其强大的转换能力吧!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考