- 1 命令语法
- 2 描述/概览
- 3 详细说明
- 4 流的选择(指定)
- 5 选项
- 6 例子
- 7 语法
- 8 表达式计算/求值
- 9 OpenCL选项
- 10 编码选项
- 11 解码器
- 12 视频解码
- 13 音频解码
- 14 字幕解码
- 15 编码
- 16 音频编码器
- 17 视频编码器
- 18 字幕编码器
- 19 比特流滤镜(过滤器)
- 20 格式选项
- 21 分离器(解复用)
- 22 混合器
- 23 元数据
- 24 协议
- 25 设备选项
- 26 输入设备
- 27 输出设备
- 28 重采样(resampler)选项
- 29 放缩选项
- 30 滤镜入门
- 31 graph2dot
- 32 滤镜链图描述
- 33 时间线编辑
- 34 音频滤镜
- 35 音频源
- 36 音频槽
- 37 视频滤镜
- 38 视频源
- 39 视频槽
- 40 多媒体滤镜
- 41 多媒体源
- 42 参考
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
23 元数据
23 元数据(metadata)
FFmpeg能够提取媒体文件元数据,并转储到一个简单的utf-8编码的类INI文本文件中,然后在分离器/混合器中再次使用
转储的文件格式为:
- 文件包含一个头,以及一些元数据标签,元数据放置在各自子节的行中
- 文件头有一个 ‘;FFMETADATA’ 字符串,紧接着版本号(目前为1)
- 元数据标签以‘key=value’ 形式给出
- 头紧跟着是全局元数据
- 在全局元数据后可能有分部的元数据(每个流/每个章)
- 分节元数据从分节名,由(‘[’, ‘]’)括起的大写字符串(STREAM 或者 CHAPTER),直至下一节或者文件结束
在一章的开始部分可能有一个可选的时基用于开始/结束值(start/end),其形如
TIMEBASE=num/den
,这里num
和den
是整数。如果没有设置,则开始/结束 时间以milliseconds为单位下一章(节)的元数据描述包含了开始结束时间的(形如 ‘START=num’, ‘END=num’)则时间值(这里的
num
)必须是正整数- 空行(无效),开始字符是”;”或者”#”的行被忽略
- 如果元数据标签或者值中包含特殊字符(‘=’, ‘;’, ‘#’, ‘\’和 回车/换行),必须由’\’进行转义
- 注意空格在元数据中(例如‘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,混合器和分离器可以从输入的ffmetadata文件中导出元数据,也可以编辑ffmetadata文件以转换输出到输出文件中
利用ffmetadata导出元数据:
ffmpeg -i INPUT -f ffmetadata FFMETADATAFILE
从FFMETADATAFILE 文件中加载元数据信息输出到输出文件中:
ffmpeg -i INPUT -i FFMETADATAFILE -map_metadata 1 -codec copy OUTPUT
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论