如何在 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包含语言及其代码,似乎就是这样我需要。但我不知道如何使用它。我找不到任何关于它的用法的例子。 AVStream
和 AVCodecContext
.
中均未提及 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
}
}
我正在使用 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包含语言及其代码,似乎就是这样我需要。但我不知道如何使用它。我找不到任何关于它的用法的例子。 AVStream
和 AVCodecContext
.
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
}
}