Answers:
字幕perl瑞士军刀(滚动到页面结尾)。
在这里您可以找到更多选项。
另外,mplayer / mencoder有一些dumpXXXsub选项,可能会起作用。我从没有尝试过,但是读这个人,它应该可以工作。例:
-dumpmpsub (MPlayer only)
Convert the given subtitle (specified with the -sub option) to MPlayer's subtitle format, MPsub. Creates a dump.mpsub file in the current directory.
开源程序Subtitle Edit具有命令行转换器,可用于Windows和Linux。
语法:
SubtitleEdit /convert "pattern" "name-of-format-without-spaces"
示例1:
SubtitleEdit /convert sub1.srt sami
结果:将sub1.srt转换为sub1.sub转换为SAMI格式示例2:
SubtitleEdit /convert *.srt adobeencore
结果:将所有.srt文件转换为Adobe Encore格式
对于Linux,命令行需要稍长一些…
语法:
mono SubtitleEdit.exe /convert "pattern" "name-of-format-without-spaces"
…但是可以很容易地包装成脚本。
libmono-winforms
GUI才能工作(如README中所述)...也许CLI需要一些额外的东西才能工作...我得到一个AttachConsole...
错误。使用Ubuntu 10.04 ...
.ass
以SubRip(.SRT)......只有一件事我notieced:它产生\r\n
(CRLF)行结束,即使源行结束是\n
...但很少会成为一个问题,很容易固定sed
,如果需要。
您要确切转换什么?如果介于字幕格式之间,则取决于您所讨论的格式。那些基于位图的将需要OCR转换为文本格式,并且通常始终需要用户输入以确认OCR的准确性
使用sed重命名文件名
for i in ./*.ass ; do ffmpeg -i "$i" "$( echo "$i"|sed 's/\.ass//g' ).srt" ; done
如果要.srt
在转换后删除文件,则只需在之后添加rm命令即可。
for i in ./*.ass ; do ffmpeg -i "$i" "$( echo "$i"|sed 's/\.ass//g' ).srt" && rm -f "$i" ; done
big.assassins.assured
(加上扩展名)怎么办?您sed
将为其命名bigassinsured
。没有sed
缺陷也没有缺陷:"${i%.ass}.srt"
。
#!/bin/bash
file="*.srt" # Find file
ffmpeg -i "$file" "${file%.*}.vtt" # Convert file
rm "$file" # Remove file .srt from your dir