在这种shell_exec()情况下,正确的语法和命令是什么


What is the correct syntax and command in this shell_exec() case?

请帮助我在此行中找到正确的语法和命令,以获取指定行和列的一些元数据:

shell_exec('ffmpeg -i ' . $targetPath . -metadata album={echo $row_release['release_title'];} ' -b:a 320k '. $mp3);

我很困惑,尤其是这部分

-metadata album={echo $row_release['release_title'];} ' -b:a

echo括号是否正常,因为它不执行它。

谢谢各位!

删除"echo"并尝试以下操作:

shell_exec('ffmpeg -i ' . $targetPath . ' -metadata album="' . $row_release['release_title'] . '" -b:a 320k ' . $mp3);

另一个问题可能是ffmpeg的某些版本不支持MP3作为编码器/输出格式。在这种情况下,您必须使用另一种格式。使用-acodec选项指定此新格式。可以使用ffmpeg -codecs检索有效格式的列表。所有带有E的条目都是有效的编码器。

因此,例如,您可以使用MPEG1/Layer2(MP2):

shell_exec('ffmpeg -i ' . $targetPath . ' -metadata album="' . $row_release['release_title'] . '" -acodec mp2 -b:a 320k ' . $mp3);

这将设置"相册"元数据,并将文件转换为MP2。

当然,如果支持的话,MP3也是如此。