如何在 ffmpeg 中获取音频 AVStream 的字符串表示形式?

How to get a string representation of an audio AVStream in ffmpeg?

我正在使用 ffmpeg。考虑以下代码:

for(i=0; i<pFormatCtx->nb_streams; i++) {
        if (pFormatCtx->streams[i]->codec->codec_type==AVMEDIA_TYPE_AUDIO) {
            //how do I get the language of the stream?          
        }
}

我发现libavformat中有一个LangEntry结构(avlanguage file),还有一个table包含语言及其代码,似乎就是这样我需要。但我不知道如何使用它。我找不到任何关于它的用法的例子。 AVStreamAVCodecContext.

中均未提及 LangEntry

LangEntry 与您objective检测语言无关。
事实上,LangEntry table 是用 List of ISO 639-2 codes

做的

语言代码被编码为元数据,因此您应该按照以下方式尝试识别语言

AVDictionaryEntry *lang;  
for(i=0; i<pFormatCtx->nb_streams; i++) 
{
    if (pFormatCtx->streams[i]->codec->codec_type==AVMEDIA_TYPE_AUDIO) 
    {
       lang = av_dict_get(pFormatCtx->streams[i]->metadata, "language", NULL,0);
       // Check lang->value, it should give 3-letter word matching to one of the LangEntry Table
    }
}