利用FFmpeg 转换课程vtt 字幕到 srt字幕

字幕转换工具

经常学习udemy 视频课程的,可能知道,从网络下载的udemy 课程文件里面有时候字幕是vtt 格式的,有时候想导入到百度网盘里面,怎奈百度网盘,不支持vtt 字幕格式。有字幕的时候,会比较好多了。既可以学习技术,又可以学习外语。

首先我们先看下这两种格式的不同。

VTT(WebVTT)

VTT(WebVTT)和SRT(SubRip)是常见的字幕格式,用于在视频或音频中显示文字。

VTT(WebVTT)格式:

  • VTT是一种基于文本的字幕格式,用于在HTML5视频播放器中显示字幕。
  • 它支持更多的文本样式和布局选项,如字体样式、位置和对齐方式。
  • VTT格式还支持以毫秒为单位的时间码,提供更高的时间精度。
  • 它可以包含更多的元数据信息,如章节标记和语言标签。
  • VTT格式的文件可以直接在Web页面中嵌入,无需额外的转换工具。
SRT(SubRip)格式:
  • SRT是一种简单的文本格式,用于在各种媒体播放器中显示字幕。
  • 它是一种较早的字幕格式,因此在广泛使用的播放器和编辑工具中都得到支持。
  • SRT格式具有简洁的结构,易于创建和编辑。
  • 它是一种纯文本格式,可以直接在文本编辑器中打开和修改。
  • SRT文件通常较小,适用于网络传输和存储。
优缺点总结

两者的优缺点总结如下

VTT格式的优点:

  • 支持更多的文本样式和布局选项。
  • 提供更高的时间精度。
  • 能够包含更多的元数据信息。
  • 可以直接在Web页面中嵌入。

VTT格式的缺点:

  • 由于其较新的特性,不是所有的播放器和编辑工具都对VTT格式提供完全支持。

SRT格式的优点:

  • 得到广泛支持,适用于各种播放器和编辑工具。
  • 结构简洁,易于创建和编辑。
  • 是一种纯文本格式,易于处理和存储。

SRT格式的缺点:

  • 不支持一些高级的文本样式和布局选项。
  • 时间精度较低。
  • 包含的元数据信息较少。

汇总起来,如下表格所示

|-----|-----------------------------------------------------------------|----------------------------------------------|
| | 优点 | 缺点 |
| VTT | * 支持更多的文本样式和布局选项。 * 提供更高的时间精度。 * 能够包含更多的元数据信息。 * 可以直接在Web页面中嵌入。 | 由于其较新的特性,不是所有的播放器和编辑工具都对VTT格式提供完全支持。 |
| SRT | * 得到广泛支持,适用于各种播放器和编辑工具。 * 结构简洁,易于创建和编辑。 * 是一种纯文本格式,易于处理和存储。 | * 不支持一些高级的文本样式和布局选项。 * 时间精度较低。 * 包含的元数据信息较少。 |

这就涉及到转换,如何高效自动转换 vtt 格式到 srt 格式。我网上找了下发现FFmpeg支持,我思考了下,写了个批量脚本进行转换,这里分享给大家。

到家使用的的时候,下载一个ffmpeg 包就可以。

复制代码
@echo off
setlocal enabledelayedexpansion

set "ffmpeg_path=C:\D_Drive\software\ffmpeg-4.3.1-2021-01-01-essentials_build\bin\ffmpeg.exe"
set "source_dir=C:\D_Drive\udemy\os\The Big Picture 2023-8\"

for /r "%source_dir%" %%i in (*.vtt) do (
    set "input_file=%%i"
    set "output_file=%%~dpni.srt"
    "%ffmpeg_path%" -i "!input_file!" "!output_file!"
)


cmd /k

大家使用需要注意

1.下载最新的ffmpeg 包,解压,上述脚本ffmpeg_path 目录改为自己的目录工具地址,指定到可执行文件

2.更改source_dir 为自己的资源目录,这个目录里面有你需要转换的vtt 字幕文件

3.文件名称保存为 transfervtt_srt.bat

4.双击运行transfervtt_srt.bat 文件,既可转换

脚本主要原理,调用目录里面的每个.vtt文件,执行转换,并且保存文件名称为 对应文件名称.srt

cmd /k 主要效果是,保证脚本执行完,不立即关闭屏幕,这样用户可以查看执行日志。

运行效果

同目录下文件:

相关推荐
liyi_hz20081 小时前
企业信创落地深水区:O2OA(翱途)平台的国产化适配实践与技术思考
java·开源软件
性感博主在线瞎搞3 小时前
【神经网络】超参调优策略(二):Batch Normalization批量归一化
人工智能·神经网络·机器学习·batch·批次正规化
daidaidaiyu14 小时前
FFmpeg 关键的结构体
c++·ffmpeg
扶尔魔ocy1 天前
【QT window】ffmpeg实现录音功能之无损格式--PCM
ffmpeg·pcm
小孟的CDN1 天前
使用pytorch进行batch_size分批训练,并使用adam+lbfgs算法——波士顿房价预测
pytorch·算法·batch·代码·adam+lbfgs
止礼1 天前
FFmpeg8.0.1 源代码的深入分析
ffmpeg
小曾同学.com1 天前
音视频中的“透传”与“DTS音频”
ffmpeg·音视频·透传·dts
vivo互联网技术1 天前
数字人动画云端渲染方案
前端·ffmpeg·puppeteer·web3d
Hello.Reader1 天前
Flink SQL 的 TRUNCATE 用法详解(Batch 模式)
sql·flink·batch