FFmpeg 获取文件的metadata示例

目录

  • 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文件时的输出结果。