我正在处理如下所示的php代码,该代码使用ffmpeg 将 mp4文件转换为mp3。转换后,所有内容都会进入 outgoing_folder 。
<?php
const DS = '/';
$src_dir = 'incoming_folder'; /* Place where mp4 file is present */
$destination = 'outgoing_folder'; /* Place where mp3 files come after conversion from mp4 */
$mp3_processed = 'podcast_mp3_processed'; /* Place where I also want mp3 files */
foreach ($mp4_files as $f)
{
$parts = pathinfo($f);
switch ($parts['extension'])
{
case 'mp4' :
$filePath = $src_dir . DS . $f;
system('ffmpeg -i ' . $filePath . ' -map 0:2 -ac 1 ' . $destination . DS . $parts['filename'] . '.mp3', $result); /** Place where mp3 file goes after conversion from mp4 **/
if ($result)
{
// Do something with result if you want
// log for example
}
break;
case 'mp3' :
// copy($f, $destination. DS . $parts['filename']. '.' . $parts['extension']);
copy($f, $destination . DS . $parts['filename'] . '.mp3');
copy('outgoing_folder', 'podcast_mp3_processed'); /* Line #A */
break;
}
}
?>
问题陈述:
我想知道我需要在上面的php代码中进行哪些更改,以便当所有mp4文件都转换为mp3时,它也应该转到 podcast_mp3_processed 文件夹。
此刻它正在运行outgoing_folder,但我也希望它进入 podcast_mp3_processed 文件夹。我在 Line#A 上尝试了该代码,但似乎不起作用。
答案 0 :(得分:0)
您正在尝试复制目录,PHP复制功能仅处理文件。 参考:https://www.php.net/manual/en/function.copy.php
您可以通过复制行#A 来更改行号,然后只需使用$destination
更改目录变量$mp3_processed
。
copy($f, $mp3_processed. DS . $parts['filename'] . '.mp3');