Shell ffmpeg-元数据中的多行文本(注释标记)

Shell ffmpeg-元数据中的多行文本(注释标记),shell,ffmpeg,mp3,m4a,Shell,Ffmpeg,Mp3,M4a,我使用ffmpeg以如下方式更新元数据标记: ffmpeg -i "in.m4a" -acodec copy -metadata artist="artist text" -metadata comment="comment text" "out.m4a" “艺术家文本”和“注释文本”通常是纯文本,但注释字段允许放置多行文本。每行必须有新行字符才能执行此操作。大概是这样的: -metadata comment="source: lastfm \r\n tags: tag1, tag2 \r\n

我使用ffmpeg以如下方式更新元数据标记:

ffmpeg -i "in.m4a" -acodec copy -metadata artist="artist text"
-metadata comment="comment text" "out.m4a"
“艺术家文本”和“注释文本”通常是纯文本,但注释字段允许放置多行文本。每行必须有新行字符才能执行此操作。大概是这样的:

-metadata comment="source: lastfm \r\n tags: tag1, tag2 \r\n ..."
但是我使用的所有字符(\r\n,%nl%,^n)都不会产生结果

我使用shell\u exec()函数从PHP脚本在Windows上运行ffmpeg.exe


请有人帮忙,或者告诉我这真的有可能吗?..

您可以使用PowerShell使用新行和可选的
`r
用于回车

ffmpeg-i in.m4a-metadata comment=“hello`nworld”out.m4a
Windows默认shell是
cmd.exe
,因此您可能需要这样调用

powershell ffmpeg -i in.m4a -metadata comment="hello`nworld" out.m4a
输出

Output #0, ipod, to 'out.m4a': Metadata: major_brand : M4A minor_version : 512 compatible_brands: isomiso2 comment : hello : world encoder : Lavf55.1.100 输出#0,ipod,至'out.m4a': 元数据: 主要品牌:M4A 次要版本:512 兼容品牌:isomiso2 评论:你好 :世界 编码器:Lavf55.1.100
是的,是的!为了使它工作,我使用ffmpeg的完整路径。result命令右下一个:powershell D:\folder\ffmpeg.exe-i'in.m4a'-acodec copy-metadata comment=“first line`nsecond line”'out.m4a'-y所以,史蒂文·佩妮非常感谢!如果路径或值如
comment=“my album(mix)”
包含
[
]
等括号,则应使用单引号对双引号:
comment='my album(mix)
。如果需要使用换行符,那么命令将是:comment='my album''n'(mix)'