FFmpeg - 元数据(评论标签)中的多行文本

6

我使用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_exec() 函数在 Windows 上从 PHP 脚本中运行 ffmpeg.exe

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

2个回答

5
你可以使用PowerShell实现此功能,使用`n进行换行,并可选地使用`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

输出

输出 #0,导出到'out.m4a':
  元数据:
    主要品牌:M4A
    次版本:512
    兼容品牌:isomiso2
    注释:你好
                    :世界
    编码器:Lavf55.1.100

是的,没错!为了让它正常工作,我使用了完整路径来调用ffmpeg。正确的命令如下:powershell D:\folder\ffmpeg.exe -i 'in.m4a' -acodec copy -metadata comment="first line`nsecond line" 'out.m4a' -y 所以,非常感谢Steven Penny! - Yaroslav
1
如果路径或值(例如comment="my album (mix)")包含括号,如()[]等,则应使用单引号而非双引号:comment='my album (mix)'。如果需要使用换行符,则命令将为:**comment='my album'"`n"' (mix)'**。 - Yaroslav

0

Linux的工作解决方案:

ffmpeg ... -metadata comment='https://www.youtube.com/watch?v=text1'$'\n''https://www.youtube.com/watch?v=text2' ... output

VLCBash都可以使用ffmpeg -i output命令显示两行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接