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

问题描述 投票:0回答:3

我使用 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 ..."

但是我使用的所有字符( 、%nl%、^N) 没有结果。

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

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

shell ffmpeg mp3 m4a
3个回答
6
投票
您可以使用 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
    

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

 都显示两行。


0
投票
我是新来的。感谢并问候所有人以及所有的答案;它帮助了我。无法发表评论。添加: 如果文件本身包含特殊或转义字符,则可以在 CMD 中使用“””...名称的...”“”进行屏蔽。示例:

powershell [X:\PATH\]ffmpeg.exe -i """inName's.mp4""" -metadata comment='my album'"`n"' (mix)' -c copy """outName's.mp4""" [-y]
    
© www.soinside.com 2019 - 2024. All rights reserved.