我用字幕编码了一个视频,得到了一个错误,“解码字幕文本中无效的UTF-8;可能缺少-sub_charenc选项。解码流时出错”,但视频还是被编码了。忽略这个错误的后果是什么?谷歌的搜索结果显示,一名男子说,它跳过了潜艇,因此最终的视频将有丢失的潜艇。有人能确认一下吗?
我知道如何修复它,但我已经转换了50+视频的字幕,我相当肯定其中一些有这个错误。我只是想要有人告诉我,忽略是可以的,这样我就不用看200小时的视频了。
修复字幕错误的解决方案:
创建一个批处理文件并使用以下内容进行编辑:
for %%a in ("*.srt") do ffmpeg -v 9 -loglevel
我找到了一些代码,稍微编辑了一下,以打印字幕文本,但我不确定如何将字幕保存到文件中(从视频文件中提取,例如mkv)
接下来的代码只是打印了很多行,并不是所有的行都包含字幕文本
std::ofstream out ("/path/to/extracted/subtitles.srt");
while(av_read_frame(pFormatCtx, &pkt) == 0) {
int got_frame = 0;
int ret = avcodec_decode_subtitle2(aCodecCtx, subtitle, &got_frame