gpt4 book ai didi

c++ - 使用 avcodec_decode_subtitle2 (FFmpeg) 提取(解复用)字幕

转载 作者:行者123 更新时间:2023-12-02 10:39:27 27 4
gpt4 key购买 nike

我找到了一些代码,对其进行了一些编辑以打印字幕文本,但我不确定如何将字幕保存到文件中(从视频文件中提取,例如 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, &pkt);
if (ret >= 0 && got_frame) {
AVSubtitleRect **rects = subtitle->rects;
for (i = 0; i < subtitle->num_rects; i++) {
AVSubtitleRect rect = *rects[i];
if (rect.type == SUBTITLE_ASS) {
printf("ASS %s", rect.ass);
} else if (rect.x == SUBTITLE_TEXT) {;
printf("TEXT %s", rect.text);
}
}
// it just writes some big file (similar to videofile size)
//out.write((char*)pkt.data, pkt.size);
}
}
out.close();
//...

最佳答案

您正在对照 SUBTITLE_TEXT 检查“rect.x”,此时应该是“rect.type”,如上面的条件所示。

关于c++ - 使用 avcodec_decode_subtitle2 (FFmpeg) 提取(解复用)字幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50433119/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com