利用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 主要效果是,保证脚本执行完,不立即关闭屏幕,这样用户可以查看执行日志。

运行效果

同目录下文件:

相关推荐
猫头虎4 小时前
如何在浏览器里体验 Windows在线模拟器:2026最新在线windows模拟器资源合集与技术揭秘
运维·网络·windows·系统架构·开源·运维开发·开源软件
blog.pytool.com12 小时前
LVGL 驱动地址自动变更为32 位的问题
ffmpeg
猫头虎13 小时前
2026最新|GitHub 启用双因素身份验证 2FA 教程:TOTP.app 一键生成动态验证码(新手小白图文实操)
git·开源·gitlab·github·开源软件·开源协议·gitcode
知南x14 小时前
【物联网视频监控系统----韦东山老师视频总结】(4)流媒体方案的实现之ffmpeg
ffmpeg·音视频
kkoral14 小时前
FFmpeg 零基础入门教程
ffmpeg
「、皓子~17 小时前
AI创作系列35 海狸IM桌面版:本地数据库的设计艺术
数据库·golang·毕业设计·开源软件·im·社交软件
「、皓子~18 小时前
AI 创作系列(34)海狸IM桌面版 v1.1 正式发布:Vite + Electron 性能优化与体验升级
前端·人工智能·electron·开源·开源软件·im
小Tomkk2 天前
⭐️ StarRocks Web 使用介绍与实战指南
前端·ffmpeg
aqi003 天前
FFmpeg开发笔记(九十八)基于FFmpeg的跨平台图形用户界面LosslessCut
android·ffmpeg·kotlin·音视频·直播·流媒体
一条咸鱼_SaltyFish3 天前
[Day16] Bug 排查记录:若依框架二次开发中的经验与教训 contract-security-ruoyi
java·开发语言·经验分享·微服务·架构·bug·开源软件