我正在为ffmpeg开发一个php shell_exec,
我想选择一个文件夹中的所有 mp3 文件,然后将它们修剪为 30 秒,并以与输入相同的名称输出它们,但后面有一个 2。
这是我到目前为止所拥有的:
shell_exec('ffmpeg -ss 5 -t 30 -i *.mp3 *+2.mp3');
另外,我只是将php文件放在目录中还是必须指定目录?
用于修剪前 30 秒:
ffmpeg -ss 30 -i inputfile.mp3 -acodec copy outputfile.mp3
保留前 30 秒并修剪其余部分:
ffmpeg -t 30 -i inputfile.mp3 -acodec copy outputfile.mp3
他们不是您可以在 ffmpeg 中应用的直接方法来修剪目录中的每个文件,因此,您需要使用一些逻辑来循环访问文件夹中的每个文件并应用 FFMPEG 命令,
或者编写批处理文件来执行相同的操作并从shell_exec调用它将是更好的选择。
希望这有帮助
为此,
您必须创建一个批处理文件命令来运行这些文件。
在记事本中,我创建了以下命令并将其保存为 batch.bat:
for %%a in ("*.*") do ffmpeg -ss 5 -t 30 -i "%%a" -acodec copy "newfiles'%%~na.mp3"
我在包含文件的文件夹中有一份 ffmpeg 的副本,还有一个名为 newfiles 的新文件夹
感谢csharpcoder,LongNeckbeard和以下链接:http://forum.videohelp.com/threads/356314-How-to-batch-convert-multiplex-any-files-with-ffmpeg
(我最终只是在家用Windows PC与ubuntu服务器上执行此操作以节省一些资源。此外,以下命令将复制原始名称 v.s. 添加两个,之后实际上更适合我想做的事情)