我正在为ffmpeg,
开发一个php shell_exec我想选择文件夹中的所有mp3文件,然后将它们修剪为30秒并输出它们与输入相同的名称,但后面加上2。
这是我到目前为止所做的:
shell_exec('ffmpeg -ss 5 -t 30 -i *.mp3 *+2.mp3');
另外,我只是将php文件放在目录中,还是必须指定目录?
答案 0 :(得分:1)
前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调用它将是一个更好的选择。
希望这有帮助
答案 1 :(得分:1)
为此,您必须创建批处理文件命令以运行文件。
在记事本中,我创建了以下命令并将其保存为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服务器上执行此操作以节省一些资源。此外,以下命令将复制原始名称vs添加两个,之后实际上更适合我想要做的事情)< / p>