ijkplayer秘籍FFPlay专辑

FFplay文档解读-10-元数据,协议选项

2018-11-15  本文已影响19人  张芳涛

前言

Github地址:Github
简书地址:简书
专辑地址:FFplay专辑

14.元数据

FFmpeg能够将媒体文件中的元数据转储为简单的UTF-8编码的类似INI的文本文件,然后使用元数据复用器/解复用器将其加载回来。

文件格式如下:

  1.一个文件由一个标题和许多元数据标签组成,这些标签分为几个部分,每个部分都在各自的行上。

  2.标题是FFMETADATA字符串,后跟版本号(现在为1)。

  3.元数据标签的形式为key = value

  4.在标题跟随全局元数据之后。

  5.在全局元数据之后,可能存在具有每个流/每章元数据的部分。

  6.部分以括号('[',']')中的大写部分名称(即STREAMCHAPTER)开头,以下一部分或文件结尾结束。

  7.在章节开头,可能有一个可选的时基用于开始/结束值。它必须是TIMEBASE = num / den形式,其中numden是整数。如果缺少时基,则假定开始/结束时间以毫秒为单位。
接下来章节部分必须包含START = numEND = num形式的章节开始和结束时间,其中num是正整数。

  8.以;开头的空行和行将被忽略。

  9.包含特殊字符(=;\和换行符)的元数据键或值必须使用反斜杠\进行转义。

  10.请注意,元数据中的空格(例如foo = bar)被认为是标记的一部分(在上面的示例中,键是foo,值是bar)。

ffmetadata文件可能如下所示:

;FFMETADATA1
title=bike\\shed
;this is a comment
artist=FFmpeg troll team

[CHAPTER]
TIMEBASE=1/1000
START=0
#chapter ends at 0:01:00
END=60000
title=chapter \#1
[STREAM]
title=multi\
line

通过使用ffmetadata muxerdemuxer,可以将元数据从输入文件提取到ffmetadata文件,然后使用编辑的ffmetadata文件将文件转码为输出文件。

使用ffmpeg提取ffmetadata文件如下:

ffmpeg -i INPUT -f ffmetadata FFMETADATAFILE

FFMETADATAFILE文件重新插入已编辑的元数据信息可以完成如下:

ffmpeg -i INPUT -i FFMETADATAFILE -map_metadata 1 -codec copy OUTPUT

15.协议选项

libavformat库提供了一些通用的全局选项,可以在所有协议上设置。 此外,每个协议可以支持所谓的私有选项,这些选项特定于该组件。

可以通过在FFmpeg工具中指定-option值,或通过在AVFormatContext选项中显式设置值或使用libavutil / opt.h``API进行编程来设置选项。

支持的选项列表如下:

protocol_whitelist list(input)

设置, - 允许的协议的分隔列表。 ALL匹配所有协议。 以-为前缀的协议被禁用。 默认情况下允许所有协议,但另一个协议(嵌套协议)使用的协议仅限于每个协议子集。

上一篇下一篇

猜你喜欢

热点阅读