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

运行效果

同目录下文件:

相关推荐
Mister Leon14 小时前
FFmpeg - Jetson Orin 实战部署
ffmpeg
飞猪~2 天前
Langchain python版本 LLM 重要函数invoke,ainvoke,stream,astream,batch,abatch
python·langchain·batch
阿拉斯攀登2 天前
售货柜实战:IPC 拉流 → 抽帧 → YOLO 识别完整流水线
yolo·ffmpeg·音视频·webrtc·视频编解码
阿拉斯攀登2 天前
RTSP 拉流与录制:IPC 摄像头本地录像完整方案
ffmpeg·音视频·webrtc·实时音视频·视频编解码
坐望云起3 天前
FFmpeg.wasm 纯浏览器端视频压缩与格式转换实战:零服务器、零上传、100% 隐私
服务器·ffmpeg·wasm
阿拉斯攀登3 天前
FFmpeg 转码详解:封装格式、编码器、码率控制
ffmpeg·音视频·webrtc·实时音视频·视频编解码
阿拉斯攀登3 天前
FFmpeg 入门:命令行的 20 个常用场景
ffmpeg·音视频·webrtc·视频编解码
luoyayun3614 天前
Qt + FFmpeg 音频工具:重采样实现
qt·ffmpeg·重采样
薄荷椰果抹茶5 天前
计算机导论_第6章_笔记
笔记·ffmpeg
满怀冰雪6 天前
22_Runnable接口源码拆解_LCEL管道语法背后_invoke_stream_batch究竟做了什么
python·batch