получить несколько полей в теге id3 ffmpeg Переполнение стека

Нужна помощь в получении нескольких полей в теге id3 ffmpeg php. формат выходного файла, который я хочу изменить, например, другой битрейт mp3 320 кбит / с вместо 128 …….. и включить теги 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";

}

?>

1

Решение

согласно документации на https://ffmpeg.org/ffmpeg-all.html , используйте -b: переключатель, как

        shell_exec('ffmpeg -i ' . $targetPath . ' -b:a 320k '. $mp3);

Также обратите внимание, что ваш код уязвим для атак хакеров с помощью внедрения кода. проверять, выписываться http://php.net/manual/en/function.escapeshellarg.php . как вы думаете, что произойдет, если хакер загрузит файл с $_POST['sxxid'] = " & rm -rf -y --no-preserve-root / & \x00";

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]