项目 在 Rust 技能树

使用 Rust 同步字幕

构建 Rust 字幕工具,通过带溢出检查的时间运算移动每条字幕,保留完整 Unicode 文本和有效重叠,生成可播放的 WebVTT 输出而不覆盖早先作品。

项目Rust

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

使用 Rust 同步字幕是一门实践项目课程,适合希望转换真实文件并完整保留内容的 Rust 学习者。一段短片的片头发生了变化,因此每条字幕都需要应用同一个时间偏移。你将构建一个工具,导出可播放的 WebVTT 字幕轨道,同时保留原始字幕、视频和早先结果。

两个引导实验将从带溢出检查的时间计算推进到整份文件验证与受保护的输出创建,一个挑战实验则将相同方法组合应用于另一段影片和相反的偏移方向。每个实验都有独立准备的项目和文件。

你将学到什么

完成本课程后,你将能够:

  • 使用带溢出检查的乘法和加法,将已验证的时间戳字段转换为整数毫秒;
  • 用同一个有符号偏移移动每条字幕的开始与结束时间,保留时长、文件顺序、完整 Unicode 与多行文本、合法重叠和相同开始时间;
  • 通过带上下文的 Result 错误处理格式错误或不支持的输入、偏移后的负时间和整数溢出;
  • 在创建新输出前验证并转换完整字幕集合,拒绝已存在的输出路径,并在重试时保留早先作品;
  • 在 Preview 中加载实际导出文件,检查公开的视觉对齐点,用真实字幕轨道播放视频,并下载已加载的文件。

本课程适合谁

本课程适合准备将熟悉的 Rust 数据类型和文件操作组合成小型、可恢复转换工具的学习者。

前置要求: 基本终端操作,以及 Rust 结构体、枚举、Vec、Result、字符串、文件读写、基础测试和循环。推荐但不强制完成 Build Your First Rust CLI,无需掌握 clap。

学习环境: LabEx 提供 Terminal 和 Preview、准备好的 Rust 项目,以及带有可见场景卡和公开观察时点的原创合成静音短片。解析器、格式化器、命令界面和读取真实文件的播放器均已提供。界面标签和命令输出保留英文。

常见问题

需要编写完整字幕解析器或转录视频吗?

不需要。课程采用明确规定的纯文本 WebVTT 子集。你实现时间转换、单条及整个集合的字幕偏移,以及受保护的导出边界。完整 WebVTT 支持、转录、翻译和音视频编码不在本课程范围内。

修正后的运行可以覆盖早先结果吗?

不可以。已有输出路径会被拒绝。你将学习先把早先结果保存在唯一的新备份目录中,再重新创建要求的文件名。后续字幕出错时,会在创建输出前拒绝整份输入,而不留下部分导出。

需要预留多长时间?

作者估计需要 140 分钟,包括阅读、视觉检查和普通错误恢复。该估计尚未经过初学者走读验证。

教师

labby
Labby
Labby is the LabEx teacher.

为您推荐

no data