《FFmpeg Basics》中文版-14-元数据和字幕

写在前面

如果您对音视频技术感兴趣,可以订阅我的专题:音视频专辑
也可以关注我的简书账户: 张芳涛,我后期会发布更多的音视频以及图像处理方面的文章。

正文

媒体文件中的元数据包含艺术家,作者,日期,流派,发布者,标题等附加信息,并且不会显示在视频帧中。 字幕是文本数据,通常包含在单独的文件中,并显示在视频帧底部附近,尽管一些容器文件格式(如VOB)支持包含字幕文件。

元数据介绍

元数据通常用于MP3文件,媒体播放器通常在其中显示诸如歌曲标题,艺术家,专辑等的项目。例如,要显示位于Windows 7的Sample Music文件夹中的文件Kalimba.mp3的元数据( 具有其他操作系统的用户可以选择具有始终存在于官方发布的音乐和视频中的元数据的其他媒体文件),我们可以使用该命令

ffplay -i "/Users/Public/Music/Sample Music/Kalimba.mp3"

控制台输出包括表单中的元数据:

我的测试命令:

ffplay -i /Users/zhangfangtao/Desktop/DYZDJ.mp3

显示的结果如下图:

测试结果

创建元数据

元数据被包含在带有-元数据选项的媒体文件中,后跟一个键=值对,其中的键或值必须是双引号,如果包含空格。当需要输入更多的密钥时,可以使用几个元数据选项,例如:

ffmpeg -i input -metadata artist=FFmpeg -metadata title="Test 1" output

我的测试命令:

ffmpeg -i /Users/zhangfangtao/Desktop/DYZDJ.mp3 -metadata artist=FFmpeg -metadata title="zhangfangtao" -metadata age="22" -metadata sex="man"  /Users/zhangfangtao/Desktop/DYZDJ2.mp3 

显示的效果如下图:

自己定义了很多字段

ASF、FLV、Matroska、WMA和WMV文件格式都支持任何元数据键,而其他格式只支持某些键,细节在下面的表中(源:MultimediaWiki、wiki.multimedia.cx的FFmpeg元数据文章)。



用户定义的元数据可以包含表中未列出的键,例如添加信息

我们可以使用这个命令:
ffmpeg -i video.avi -metadata location="London, United Kingdom" ^ -metadata "camera type"="SONY DSC" -metadata "camera mode"=movie ^ -metadata weather="sunny" video.wmv

我的测试命令:

ffmpeg -i /Users/zhangfangtao/Desktop/DYZDJ.mp3 -metadata location="shandongsheng" -metadata "camera type"="SONY DSC" -metadata "camera mode"=movie -metadata weather="sunny" /Users/zhangfangtao/Desktop/DYZDJ2.mp3

显示的结果如下图:

保存和加载文件的元数据

为了保存媒体文件中包含的元数据,我们可以使用-f选项指定的ffmetadata格式,在该文本文件的名称之前存储元数据。例如,从视频中保存元数据。在前面的示例中创建的wmv文件,我们可以使用该命令。

ffmpeg -i video.wmv -f ffmetadata data.txt

输出文件dats.txt包含以下几行(最后一行将包含当前的编码器版本):
;FFMETADATA1
weather=sunny
location=London, United Kingdom
camera type=SONY DSC
camera mode=movie
encoder=Lavf54.33.100

测试命令:

ffmpeg -i /Users/zhangfangtao/Desktop/DYZDJ2.mp3  -f ffmetadata /Users/zhangfangtao/Desktop/data.txt 

txt文本里面显示的信息有:

从data.txt加载元数据到其他相关的媒体文件,我们可以简单地把它作为第一个输入文件,在媒体文件之前,例如:

ffmpeg -i data.txt -i video1.avi video1.wmw

我的测试命令:

ffmpeg -i /Users/zhangfangtao/Desktop/data.txt  -i /Users/zhangfangtao/Desktop/test.mp4  /Users/zhangfangtao/Desktop/test2.wmv 

生成的新的视频信息:

现在文件video1.wmv包含与data.txt文件传输的文件video.wmv相同的元数据。 Loaded不仅可以是由ffmpeg保存的元数据文件,还可以创建具有特殊格式的全新文件。 在这些文件中,第一行是包含文本的标题; FFMETADATA1,下一行是包含所需内容的key = value对,如上例所示。

删除元数据

要删除不是实际的元数据,我们可以使用设置为负值的-map_metadata选项,例如从文件input.avi中删除所有元数据,我们可以使用以下命令:

ffmpeg -i input.avi -map_metadata -1 output.mp4

我的测试命令:

ffmpeg -i /Users/zhangfangtao/Desktop/test2.wmv  -map_metadata -1 /Users/zhangfangtao/Desktop/newtest2.wmv

生成的视频信息:

啥信息都没了

关于字幕的介绍

字幕是包含在视频帧底部附近的文本数据,用于提供附加信息,如将口语外语翻译为本地语言,提高识字率的相同语言字幕等。字幕可以分为两种主要类型:

  • 外部媒体播放器在播放期间包含在独立文件中并且包含在视频帧中的优点是可以在没有视频的情况下进行编辑和分发
  • 内部的,包含在具有视频和音频流的媒体文件容器中

其他部分包括在实况视频广播期间同时创建的准备好的字幕和实况字幕。 其他排序将字幕分为打开和关闭 - 打开或关闭字幕和字幕等关闭字幕时,不能关闭打开的字幕。

支持的字幕编解码器和文件格式列表位于表格中,支持列D表示此格式可以解码,E表示编码的可用性(dvb_teletext和eia_608尚未指定)。 例如,要将SRT格式的字幕转换为ASS格式,我们可以使用以下命令:

ffmpeg -i subtitles.srt subtitles.ass

可用解码器字幕

编解码器 支持 描述
dvb_subtitle DE DVB字幕(解码器:dvbsub)(编码器:dvbsub)
dvb_teletext DVB电子文本
dvd_subtitle DE DVD字幕(译码器:dvdsub)(编码器:dvdsub)
eia_608 eia - 608关闭字幕
hdmv_pgs_subtitle D HDMV表示图形流字幕(解码器:pgssub)
jacosub D JACOsub字幕
microdvd D MicroDVD字幕
mov_text DE MOV文本
realtext D RealText字幕
sami D SAMI 字幕
srt DE 带有嵌入式计时的SubRip字幕
ssa DE SSA (SubStation Alpha) / ASS(高级SSA)字幕(解码器:ASS)(编码器:ASS)
subrip DE SubRip字幕
subviewer D 子视图字幕
text D 生utf - 8的文本
webvtt D WebVTT字幕
xsub DE XSUB
可用文件格式(支持列:D=demuxing yes, E=muxing yes)
文件格式 支持 描述
ass DE SSA (SubStation Alpha)字幕
jacosub DE JACOsub字幕格式
microdvd DE MicroDVD字幕格式
realtext D RealText字幕格式
sami D SAMI字幕格式
srt DE SubRip字幕
subviewer D 子视图字幕格式
vobsub D VobSub字幕格式
webvtt D WebVTT字幕

直接编码到视频的字幕

例如,如果我们想要将一个字幕视频包含到网页中,我们需要将字幕编码到视频流中,2个过滤器可以做到:ass(只编码ass格式)和在表中描述的字幕过滤器:
视频过滤器:字幕

描述 包括使用libass库的输入视频的字幕
语法 subtitles=filename[:original_size]
描述的选项
f, filename 包含字幕的文件的名称
original_size 原始视频的大小,当输入被调整时需要

为了防止Windows上的错误消息,需要指定可以从http://ffmpeg.tv/fonts.conf下载的fontconfig配置文件的位置。

请保存字体。conf文件到相同的目录,其中是文件ffmpeg。exe(或f.exe),通过点击环境变量模态对话框中系统变量部分的按钮,添加3个新的环境变量(如何显示它,在第一章,分段路径设置):

新的系统变量模态对话框

变量名 变量值(ffmpeg_dir是ffmpeg.exe的位置)
FC_CONFIG_DIR C:\ffmpeg_dir
FONTCONFIG_FILE fonts.conf
FONTCONFIG_PATH C:\ffmpeg_dir

请注意,并非所有的字幕格式都由所有的容器支持,大多数容器(AVI, Matroska, MP4, MPG,等等)支持ASS和SRT。例如,从文件标题将字幕编码到视频流。srt到文件视频。mp4,我们可以使用这个命令(其他例子在图片上显示):

ffmpeg -i video.avi -vf subtitles=titles.srt video.mp4
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349

推荐阅读更多精彩内容

  • 1.简介 ffmpeg [global_options] {[input_file_options] -i inp...
    你家旭哥阅读 6,575评论 1 4
  • 各大字幕组常用的时间轴软件:time machine(人人)、popsub(凤凰天使)、aegisub,简单的字幕...
    朱细细阅读 44,100评论 3 25
  • 视频编码与封装方式详解 1.编码方式和封装格式 2.视频编码标准两大系统 MPEG-1 MPEG-2 MPEG-3...
    latthias阅读 6,356评论 0 22
  • 题目 给出一个不含重复数字的排列,求这些数字的所有排列按字典序排序后该排列的编号。其中,编号从1开始。样例例如,排...
    六尺帐篷阅读 383评论 0 1
  • 提问: 请问雪漠老师,在《无死的金刚心》中,莎尔娃蒂对于琼波朗觉算不算是一种女难?如何看待爱情与情关? 雪漠Xue...
    作家雪漠阅读 563评论 0 4