【发布时间】:2014-10-08 09:09:10
【问题描述】:
我在 Udacity 中下载了课程 How to Use Git and Github 的视频和字幕,发现视频播放器中只显示时间戳而不是字幕VLC.
VLC 似乎不完全支持 Udacity 的 srt 文件格式。那么有什么方法可以转换这些 srt 文件的格式,让 VLC 可以读取它们吗?
【问题讨论】:
标签: bash subtitle video-player
我在 Udacity 中下载了课程 How to Use Git and Github 的视频和字幕,发现视频播放器中只显示时间戳而不是字幕VLC.
VLC 似乎不完全支持 Udacity 的 srt 文件格式。那么有什么方法可以转换这些 srt 文件的格式,让 VLC 可以读取它们吗?
【问题讨论】:
标签: bash subtitle video-player
在检查了VLC's Wiki的SubRip/srt文件格式语法和下载的srt文件格式后,我发现了两个不同点:
h1:m1:s1 --> h2:m2:s2定义时间,但下载的文件使用h1:m1:s1,h2:m2:s2。经过一些测试,我发现第一个区别并不重要,但第二个很重要。于是我在下面写了一个bash脚本来转换格式,
#!/usr/bin/env bash
#convert-srt-for-udacity
srt=$1
dos2unix "$srt" 2>/dev/null
sed -ie "s/^\([[:digit:]:.]*\),\([[:digit:]:.]*\)[[:blank:]]*$/\1 --> \2/" "$srt"
最后使用这个命令批量转换所有字幕
for i in *.srt; do ./convert-srt-for-udacity "$i"; done
【讨论】:
curl --header 'Host: zips.udacity-data.com' --header 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0' --header 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' --header 'Accept-Language: en-US,en;q=0.5' --header 'Connection: keep-alive' 'http://zips.udacity-data.com/2969618657/Lesson%202%20Subtitles.zip' -o 'Lesson 2 Subtitles.zip' -L,然后解压包进去,运行for i in *.srt; do ../convert-srt-for-udacity "$i"; done,你会发现格式已经改变了。