问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

ffmpeg 给音频添加封面,ffmpeg对音视频metadata 相关操作

发布网友 发布时间:2022-10-01 20:49

我来回答

1个回答

热心网友 时间:2024-09-29 23:16

ffmpeg 给音频添加封面,ffmpeg对音视频metadata 相关操作

ffmpeg给音频添加封面的功能找了很久。在官网的文档中找到了方法。

但是因为各种原因,失败了很多次。

这次终于完全理解了这个命令的使用。

首先我们看到这个选项 **-disposition[:stream_specifier]** value **(***output,per-stream***)**

这个disposition选项是用来调整文件布局用的,有以下这些选项:

我们可以看到,其中有一个attached_pic选项,这个就是我们加封面的时候要用的。

先看看官网给的其他例子

For example, to make the second audio stream the default stream:

To make the second subtitle stream the default stream and remove the default disposition from the first subtitle stream:

然后就是添加封面的命令了

To add an embedded cover/thumbnail:

Not all muxers support embedded thumbnails, and those who do, only support a few formats, like JPEG or PNG.

可以看到,只支持很少的图片格式,比如jpeg和png,webp就不知道了,以后有机会试一试。

这个方法可以给视频和音频加封面。

上面给的例子是给视频加封面。

如果我把后面视频的格式变成m4a,结果发现效果只是单纯拷贝一个视频而已。

然后使用的过程中各种红色的找不到codec错误。

首先我对map命令不是很熟悉。这个场景就是map命令的一个应用。视频和图片作为输入,只取视频中的音频。所以我们就要定位到音频的位置。如果不用map,按照默认配置来的话,音频和视频和图片都会加入到新的文件里,可以看到video stream有两个,分别是视频和图片。

用map就是手动选择stream。

ffmpeg -i in.mp4 -i IMAGE -map 0 -map 1 -c copy -c:v:1 png -disposition:v:1 attached_pic out.mp4

上面这个例子, map 0是第一个整个视频,map1则是第二个图片,和不用map的结果差不多。

估计,用map是为了后面的disposition选择对应的图片流更稳定。

在我的需求里,就不一样了。我的需求是把一个视频和封面合成成具有封面的音乐,这样等于删除了视频流。节省空间,封面只是起到美化作用而已。

所以我的map是下面这样的
ffmpeg -i input.flv -i input.png -map 0:a -map 1:v

map后面的第一个数字代表 ffmpeg -i 输入的顺序,也就是程序实际读入stream的顺序。后面还可以定位,第一个是定位了stream文件,冒号后面的第二个则是定位具体的steam。可以用1,2之类的数字,用a,v则分别表示视频和音频,在只有一个视频和音频的情况下就等于选中一个特定的stream

再往后看, -c:v:1 png 选项,指定第二个视频的处理方式是png。 -c:v 就是用来指定视频编码器,后面再跟的数字,就是指定具体stream。这里1指的是第二条stream流。第一条指的是第一个视频的视频流了。如果要指定第一个视频的视频流则是 -c:v:0 。这里我们通常不指定也可以,反正ffmpeg也会有一些自动化处理的。

-disposition 后面冒号跟的也是一个steam选择的功能。

​ -disposition:v:1 attached_pic

然后我的实际转化命令就变成

这样就能达成目的了。

经过测试opus格式也是不支持,估计也就只有mp3和aac这两种格式能支持吧?

加过封面后,用播放器加载能够正确使用封面了,并且mp3tag这类的工具也可以看到。

关于metadata的修改,网上发现一份很不错的文档,这里就放在下面了。方便查看。

首先修改metadata关键看标签名对应到ffmpeg里面是什么键值,wiki上有这样一张表

The following table shows the metadata keys that FFmpeg honors when muxing a QuickTime file. The low-level identifier column lists the atom name that the format uses to encode the data on disc, which is not interesting to most readers. For the interested but uninitiated, the notation, e.g., '\251nam' indicates a 4-byte code consisting of the byte A9 in hexadecimal (or 251 in octal) followed by the ASCII characters 'n', 'a', and 'm'.

I have received so many requests from my previous article, “ID3 tags on Windows using ffmpeg”, asking how to add, create or write ID3 tags with ffmpeg that I wrote this article in response.

The option to write ‘tags’ to a file, known as metadata, is -metadata key=”value”. Here is a basic example:

You repeat the option once for each key/value pair you want to add to your file like this:

If you want to clear or delete a certain key/value pair, include the key but leave the value blank like this:

The examples shown above are the very basic. While they will work and will proce a file, there are more options that need to be included to achieve the desired results.

Adding, creating, deleting, or clearing ID3 tags in ffmpeg is very simple. The hard part is figuring out what items you want and what the ‘key’ names are. For example, in Windows you can right-click on the audio file, select ‘Properties’, then click on the ‘Details’ tab. There are several Property/Value pair items listed; “Title”, “Subtitle”, “Comments”, “Contributing artists”, “Album artist”, “Album”, etcetera. Similar information is available in iTunes by right-clicking on a name, choose ‘Get Info’, then click on the ‘Info’ tab. The following table may help you decide:

I suggest you experiment with the different keys to find what works best for you.

Lets look at some more advanced options you can use to manipulate metadata. For example, if you want to clear or delete all the global metadata in a file. You could use the examples above and include the key and a blank value for each item but that could make your command line very long. Instead you can use -map_metadata -1 instead. Here it is in a command line:

Setting -map_metadata to -1 (negative one) tells ffmpeg to use a non-existent input thereby clearing or deleting all the global metadata.

You can get the metadatainformation for a media file by including a input file with no output file like this:

FFmpeg is also able to mp metadata from media files into a simple UTF-8 encoded INI-like text file and then load it back using the metadata muxer/demuxer. Use a command line like the following to create the text file:

The file format is as follows:

A ffmetadata file might look like this:

You can edit the ffmetadata text file to include, change, or remove metadata by loading it into your media file.

To load the file and include the metadata in the output file, use -map_metadata like this:

The inputs -i in ffmpeg are counted zero-based. What that means is the first input from the command line example above -i in.mp3 is input number zero. The next input -i metadata.txt is input number one. So using -map_metadata 1 we are telling ffmpeg to map the metadata from input one, our text file, to the global metadata of the output file.

If you are planning on using the media files with metadata on Windows, DO NOT forget to use these options in your command line:

As shown in Example 7 above.
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
适合玩剑三的电脑配置剑网3配置要求是什么 唐·璜(第三场) 净水器哪个牌子好质量好又安全?苏泊尔净水器质量怎么样 苏泊尔(SUPOR)净水器-适用对象 苏泊尔超滤净水器-适用对象 净水器苏珀尔和美的哪个好一点?净水器苏珀尔和美的哪个牌子好_百度知 ... 苏泊尔净水器怎么样 苏泊尔三百块的净水器怎么样 苏泊尔净水器质量怎么样 网签有哪些材料 给MP3文件添加封面 运动会适合穿什么衣服那天应该热我报了4乘1接力和100米 赞扬运动会穿衣服比赛项目 怎么写运动会赞穿衣比塞报道稿 一年级关于劳动的名言 每天坚持跑十公里能不能瘦下来? 天麻的功效与吃法 天麻的功效与食用方法 蚊香片加热器能从晚上一直开到天亮吗 请问一下信用卡多少岁可以办理 请问室内潮湿能开热空调除湿吗? 放松一下心情你会发现生活如此美好什么意思 一个人的世界如此美好的翻译是:什么意思 手机淘宝怎么查找以前的购买记录 寻秦记剧情简介 电视剧寻秦记简介 柿子蒂的功效作用 伤寒胀气吃它准没错 我怀疑我的电工证被人盗用了,因为之前他跟我借我没借,过了一段时间我... 维修电工被别人备案 电工证资格证被用在物业公司怎么拿回来? 电工证被别的单位盗用怎么办? 我的电工证让别家公司给用了怎么办 眼线怎么画好看 注意以下几点即可画出美美的眼线 每天跑十公里会不会瘦 每天跑十公里一个月能瘦多少斤 QQ仙灵中万兽岭,使用游龙群秒后,需要休息一回合,请问这休息的一回合内... qq仙灵 万兽岭等于梦幻狮驼岭不 有什么差别??? QQ仙灵怎么加入门派 在哪里加入门派 QQ仙灵兽王领怎么加点 QQ仙灵所有门派和梦幻西游的门派一一对应,有谁知道? 一次性外科口罩能用多久?要注意什么? 我只有一个手机号码可以微信分身吗?分身后是同一个吗? 梦到黑色长尾金鱼 梦见去世老公说他调到不好的地方? 疯狂猜成语一条白色长尾鱼 衣服上的锈剂怎么去除啊 玫瑰花露的做法 玫瑰花露的做法步骤 孩子为什么不愿意写作业 孩子不愿意写作业的原因 微信给别人发红包了在哪里存在记录 在钱包右上角账单里 怎么用自己的手机差别人发过的红包和转账记录 山东潍坊干法脱硫/脱硝/除尘/VOC企业有哪些? 为什么干法除尘系统禁止采用粉尘沉降室除尘