当编码未知时,如何以非UTF-8编码转换包含的字幕



我正在尝试自动转换媒体文件(视频、音频、字幕(

我主要使用ffmpeg。

我想把字幕转换成UTF-8 WebVTT文件,但我面临着如何转换非UTF-8编码的问题。

ffmpeg说:

[srt @ 0x559e9f111dc0] Invalid UTF-8 in decoded subtitles text; maybe missing -sub_charenc option
Error while decoding stream #0:8: Invalid data found when processing input

当我事先不知道编码时该怎么办?(我应该使用其他程序吗?如果是,你会建议一些技巧吗?(

输入是任何媒体文件-MKV,MP4。。。带有捆绑字幕

第1版:

带错误的完整命令:

ffmpeg -i input.mkv -c:s srt -map 0:s:3 3.srt

这个通行证可以:

ffmpeg -sub_charenc CP1250 -i input.mkv -c:s srt -map 0:s:3 3.srt

通常,根据WebVTT规范,WebVTT必须始终为UTF-8。这也是FFmpeg不尝试检测和转换编码本身的部分原因。

您可以使用这个超级用户问题中建议的工具之一来猜测文本文件的编码和iconv来转换文件。(如果你希望它自动发生,可以编写脚本。(如果你对此有其他问题,它们可能更适合超级用户。

最新更新