FFmpeg 获取文件的metadata示例

目录

  1. 参考
  2. metadata API
  3. 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 

#include 
#include 

int main (int argc, char **argv)
{
    AVFormatContext *fmt_ctx = NULL;
    AVDictionaryEntry *tag = NULL;
    int ret;

    if (argc != 2) {
        printf("usage: %s \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

你可能感兴趣的:(FFmpeg 获取文件的metadata示例)