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

Posted

技术标签:

【中文标题】ffmpeg - 元数据中的多行文本(注释标签)【英文标题】:ffmpeg - multiline text in metadata (comment tag) 【发布时间】:2013-04-11 13:18:46 【问题描述】:

我使用 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) 都没有结果。

我在 Windows 上使用 shell_exec() 函数从 PHP 脚本运行 ffmpeg.exe

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

【问题讨论】:

【参考方案1】:

适用于 Linux 的工作解决方案:

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

vlcbash 都带有ffmpeg -i output 显示两行。

【讨论】:

【参考方案2】:

您可以使用 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,ipod,到“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 非常感谢! 如果路径或像comment="my album (mix)" 这样的值包含像()[] 等括号,那么你应该使用单引号而不是双引号:comment='my album (mix)'。如果需要使用换行符,则命令为:comment='my album'"`n"' (mix)'

以上是关于ffmpeg - 元数据中的多行文本(注释标签)的主要内容,如果未能解决你的问题,请参考以下文章

使用 ffmpeg 将 .flac 转换为 .mp3,保留所有元数据

使用 ffmpeg 复制 GoPro 元数据 - 找不到编解码器的标签无

ffmpeg 在 php 或 python 中获取元数据

如何从 .mp3 文件中获取元数据并使用 FFmpeg 将其作为文本放入视频中?

使用 FFmpeg 检索和保存媒体元数据

HTML中的语义标签和元信息标签(整理)