FFmpeg 获取文件的metadata示例

作者: smallest_one | 来源:发表于2019-02-20 21:33 被阅读4次

目录

  1. 参考
  2. metadata API
  3. API方式获取metadata

1. 参考

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

相关文章

网友评论

    本文标题:FFmpeg 获取文件的metadata示例

    本文链接:https://www.haomeiwen.com/subject/dstkyqtx.html