使用PHP shell_exec和ffmpeg合并2个音频文件

时间:2016-01-24 01:03:50

标签: php audio ffmpeg

我正在开发一个php脚本,它将使用ffmpeg' s amix feature和$ variables将两个音频文件合并为一个。它被设置为自动将最终输出的持续时间调整为第一个输入持续时间。 (如持续时间=第一次所见)

当我运行此脚本时,它不会创建mixtest.mp3

mix.php:

<?php

$input1 = 'original.mp3'; // Original Track
$input2 = 'tagoverlay.mp3'; // Audio Tag Overlay
$output = 'mixtest.mp3';

shell_exec('ffmpeg -i ' . $input1 . ' -i ' . $input2 . ' -filter_complex amix=inputs=2:duration=first:dropout_transition=3 ' . $output . '');
echo 'Done';

?>

我已经在服务器上使用ffmpeg将wav&#39; s转换为mp3,效果很好。我也见过sox can do this as well with -m,我已经安装并尝试过,因为某些原因它没有导出mixtest.mp3。

1 个答案:

答案 0 :(得分:0)

在搞乱并切换变量后,我得到了它的工作,它可能是文件权限问题,我也摆脱了dropout_transition,according to ffmpeg documentation它默认为2:

    $file_path = 'beats/' . $timecode . '.' . $file_extn;
    $overlay = 'beats/tagoverlay.mp3';
    shell_exec('ffmpeg -i ' . $file_path . ' -i ' . $overlay . ' -filter_complex amix=inputs=2:duration=first beats/' . $timecode . 'tagged.mp3');