32 lines
1.2 KiB
PHP
32 lines
1.2 KiB
PHP
|
<?php
|
|||
|
header('Content-Type: application/json');
|
|||
|
|
|||
|
unlink("uploads/myaudiofile.mp3");
|
|||
|
unlink("uploads/ffmpeg_myaudiofile.mp3");
|
|||
|
if ($_FILES['file']['error'] === UPLOAD_ERR_OK) {
|
|||
|
$tempFile = $_FILES['file']['tmp_name'];
|
|||
|
$targetPath = 'uploads/';
|
|||
|
$targetFile = $targetPath . basename($_FILES['file']['name']);
|
|||
|
|
|||
|
if (move_uploaded_file($tempFile, $targetFile)) {
|
|||
|
// 输入文件路径
|
|||
|
$inputFilePath = 'uploads/myaudiofile.mp3';
|
|||
|
// 输出文件路径
|
|||
|
$outputFilePath = 'uploads/ffmpeg_myaudiofile.mp3';
|
|||
|
// FFmpeg命令(使用完整路径,注意在Windows下要使用双引号)
|
|||
|
$ffmpegCommand = 'C:\ffmpeg\bin\ffmpeg.exe -i ' . $inputFilePath . ' -b:a 128k ' . $outputFilePath . ' 2>&1';
|
|||
|
// 执行FFmpeg命令,并获取标准错误输出
|
|||
|
exec($ffmpegCommand, $output, $resultCode);
|
|||
|
// 检查转码是否成功
|
|||
|
if ($resultCode === 0) {
|
|||
|
echo json_encode(array('status' => 1, 'msg' => '音频转码成功'));
|
|||
|
} else {
|
|||
|
echo json_encode(array('status' => 0, 'msg' => "错误信息:" . implode(PHP_EOL, $output)));
|
|||
|
}
|
|||
|
} else {
|
|||
|
echo json_encode(array('status' => 0, 'msg' => '移动上传文件错误'));
|
|||
|
}
|
|||
|
} else {
|
|||
|
echo json_encode(array('status' => 0, 'msg' => '文件上传错误'));
|
|||
|
}
|