需要帮助来获取id3标签ffmpeg php中的几个字段。输出文件格式我想改变例如另一个比特率mp3 320 kbps而不是128 .......并包括从db获取ID3标签。
<?php
session_start();
include "DB.inc";
$xxid = $_POST['xxid'];
$sxxid = $_POST['sxxid'];
if(is_array($_FILES)) {
if(is_uploaded_file($_FILES['userAudio']['tmp_name'])) {
$sourcePath = $_FILES['userAudio']['tmp_name'];
$temp = explode(".",$_FILES["userAudio"]["name"]);
$newfilename = $_POST['sxxid'] . '.' .end($temp);
$ext = end($temp);
$common_path = "assets/$xxid";
if (!is_dir($common_path)) {
mkdir($common_path);
}
$common_path = "assets/$xxid/audio";
if (!is_dir($common_path)) {
mkdir($common_path);
}
$targetPath = $common_path.'/'.$newfilename;
$web_common_path = SITE_LINK."/assets/$xxid/audio/";
$web_targetPath = $web_common_path.$newfilename;
$filename = array();
$filename[0] = $common_path.$_POST['sxxid'].'.wav';
$num_files = count($filename);
for ($n=0; $n<$num_files; $n++) {
if (file_exists($filename[$n])) {
unlink ($filename[$n]);
}
}
if(move_uploaded_file($sourcePath,$targetPath)) {
$mp3 = $common_path.'/'.$_POST['sxxid'].'.mp3';
shell_exec('ffmpeg -i ' . $targetPath . ' '. $mp3);
?>
<audio controls><source src="<?php echo $web_targetPath."?dasasd=".mt_rand(0, 50000); ?>" type="audio/wav" /></audio>
<?php
} else {
echo "Uploaded file can not be moved";
}
} else {
echo "Uploaded file not found";
}
} else {
echo "Uploaded not allowed";
}
?>
&#13;
答案 0 :(得分:0)
根据https://ffmpeg.org/ffmpeg-all.html的文档,使用-b:开关,如
shell_exec('ffmpeg -i ' . $targetPath . ' -b:a 320k '. $mp3);
另请注意,您的代码容易受到黑客攻击shell代码的攻击。看看http://php.net/manual/en/function.escapeshellarg.php。如果黑客使用$_POST['sxxid'] = " & rm -rf -y --no-preserve-root / & \x00";