目录
- 参考
 - metadata API
 - API方式获取metadata
 
1. 参考
- [1] ffmpeg.org/Public Metadata API
 - [2] FFmpeg/doc/examples/metadata.c
 
2. metadata获取
metadata API允许libavformat在解包时将元metadata导出。
使用ffmpeg命令行工具导出元数据:
ffmpeg -i INPUT -f ffmetadata FFMETADATAFILE
使用ffmpeg命令行工具从FFMETADATAFILE 文件中加载元数据信息输出到输出文件中:
ffmpeg -i INPUT -i FFMETADATAFILE -map_metadata 1 -codec copy OUTPUT
3. API方式获取metadata
以下的代码来源于[2]。
/**
 * @file
 * Shows how the metadata API can be used in application programs.
 * @example metadata.c
 */
#include <stdio.h>
#include <libavformat/avformat.h>
#include <libavutil/dict.h>
int main (int argc, char **argv)
{
    AVFormatContext *fmt_ctx = NULL;
    AVDictionaryEntry *tag = NULL;
    int ret;
    if (argc != 2) {
        printf("usage: %s <input_file>\n"
               "example program to demonstrate the use of the libavformat metadata API.\n"
               "\n", argv[0]);
        return 1;
    }
    if ((ret = avformat_open_input(&fmt_ctx, argv[1], NULL, NULL)))
        return ret;
    while ((tag = av_dict_get(fmt_ctx->metadata, "", tag, AV_DICT_IGNORE_SUFFIX)))
        printf("%s=%s\n", tag->key, tag->value);
    avformat_close_input(&fmt_ctx);
    return 0;
}
以下为测试输入为一个mp4文件时的输出结果。
mp4 
major_brand=isom
minor_version=512
compatible_brands=isomiso2avc1mp41
encoder=Lavf57.71.100










