ffmpeg文档23-元数据(metadata)

摘要:
23元数据(metadata)FFmpeg能够提取媒体文件元数据,并转储到一个简单的utf-8编码的类INI文本文件中,然后在分离器/混合器中再次使用转储的文件格式为:文件包含一个头,以及一些元数据标签,元数据放置在各自子节的行中文件头有一个‘;FFMETADATA’字符串,紧接着版本号(目前为1)元数据标签以‘key=value’形式给出头紧跟着是全局元数据在全局元数据后可能有分部的元数据(每个

23 元数据(metadata)

FFmpeg能够提取媒体文件元数据,并转储到一个简单的utf-8编码的类INI文本文件中,然后在分离器/混合器中再次使用

转储的文件格式为:

  1. 文件包含一个头,以及一些元数据标签,元数据放置在各自子节的行中

  2. 文件头有一个 ‘;FFMETADATA’ 字符串,紧接着版本号(目前为1)

  3. 元数据标签以‘key=value’ 形式给出

  4. 头紧跟着是全局元数据

  5. 在全局元数据后可能有分部的元数据(每个流/每个章)

  6. 分节元数据从分节名,由(‘[’, ‘]’)括起的大写字符串(STREAM 或者 CHAPTER),直至下一节或者文件结束

  7. 在一章的开始部分可能有一个可选的时基用于开始/结束值(start/end),其形如TIMEBASE=num/den,这里numden是整数。如果没有设置,则开始/结束 时间以milliseconds为单位

    下一章(节)的元数据描述包含了开始结束时间的(形如 ‘START=num’, ‘END=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,混合器和分离器可以从输入的ffmetadata文件中导出元数据,也可以编辑ffmetadata文件以转换输出到输出文件中

利用ffmetadata导出元数据:

ffmpeg -i INPUT -f ffmetadata FFMETADATAFILE

从FFMETADATAFILE 文件中加载元数据信息输出到输出文件中:

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

免责声明:文章转载自《ffmpeg文档23-元数据(metadata)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇.netcore在linux下使用P/invoke方式调用linux动态库点击li获取下标的几种方式(原生JS实现)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【转】FFmpeg采集设备

ffmpeg在linux下支持的采集设备的种类比较多。 在操作设备之前,我们可以查看当前系统可以支持的操作设备: ffmpeg -hide_banner -devices Devices: D. = Demuxing supported //输入的设备 .E = Muxing supported //输出的设备 -- DE alsa ALSA audio...

数据挖掘的几种经典方法论

 目录 CRISP-DM方法 SEMMA方法 DMAIC方法 AOSP-SM模型 5A模型 数据挖掘与分析的“七步法” 一、CRISP-DM方法(最流行) CRISP-DM - Data Science Project Managementhttps://www.datascience-pm.com/crisp-dm-2/ 在老外的这个网站中,我们可以了可...

前端本地存储后端传来的json格式数据

有些时候需要在A页面进行请求发送,但是在B界面对这些数据进行渲染 在这种情况下就需要一个页面之间的通讯,也就是暂时的本地存储 但是无论是loca还是session还是cookie都是存储的字符串类型 我们需要通过一些方法对返回的数据进行处理 JSON.parse()和JSON.stringify()方法 var jsonData = {'name': '张...

MySQL Workbench 怎么创建数据库

第1步:单击MySQLWorkbench.exe快捷方式,弹出MySQLWorkbench界面 第2步:单击菜单栏Database按钮,弹出下拉菜单,单击Connect to Database,第3步:单击OK按钮,输入数据库密码第4步:单击工具栏按钮(第四个,即鼠标放在 上面显示Create a new schema in the connected s...

全球疫情实时监控——约翰斯·霍普金斯大学数据大屏实现方案

霍普金斯大学的全球疫情分布图 根据约翰斯·霍普金斯大学的最新数据显示,截止北京时间4月5号9时,全球累计报告确诊病例已达 134万+,死亡74000+ 。 在霍普金斯大学的全球疫情分布图中,非常直观的呈现了全球疫情的分布情况,数据也非常的实时准确。最近一段时间约翰斯·霍普金斯大学发布的数据也经常出现在各媒体报道中,那么这些数据来源是哪里呢?这么炫酷的实时...

Flink RichSourceFunction应用,读关系型数据(mysql)数据写入关系型数据库(mysql)

1. 写在前面 Flink被誉为第四代大数据计算引擎组件,即可以用作基于离线分布式计算,也可以应用于实时计算。Flink的核心是转化为流进行计算。Flink三个核心:Source,Transformation,Sink。其中Source即为Flink计算的数据源,Transformation即为进行分布式流式计算的算子,也是计算的核心,Sink即为计算后的...