如何使用FFmpeg获取歌词?

时间:2018-02-14 06:28:38

标签: c++ ffmpeg media

FFmpeg版本:3.3.2

我尝试使用流来获取歌词,但那不可能。

代码:

AVFormatContext* fmt_ctx = NULL;
int ret;
av_register_all();

if ((ret = avformat_open_input(&fmt_ctx, "media path", NULL, NULL))){
    printf("Fail to open file");
    return;
}
if (fmt_ctx->iformat->read_header(fmt_ctx) < 0) {
    printf("No header format");
    return;
}
for (uint i = 0; i < fmt_ctx->nb_streams; i++){
    auto stream=fmt_ctx->streams[i];
    if(stream->disposition==AV_DISPOSITION_LYRICS){
        printf("lyrics!");//"will not print"
    }
}

1 个答案:

答案 0 :(得分:0)

disposition是一个位字段,因此尝试没有严格的相等性。条件应该是:

stream->disposition & AV_DISPOSITION_LYRICS