Привет, друзья! У меня возникла небольшая загвоздка с программой для загрузки видео. Я пытаюсь сделать так, чтобы видео сначала сжималось с помощью JavaScript, а потом загружалось на сервер через PHP.
Сжатие вроде бы работает нормально. Я могу просмотреть сжатое видео в браузере, и все выглядит отлично. Но когда я пытаюсь сохранить этот файл на сервере, куда-то пропадает звук!
Я использую jQuery для отправки данных на сервер и PHP для обработки загрузки. Вот примерный код:
$('#uploadBtn').click(function() {
let data = new FormData();
data.append('video', сжатоеВидео, 'video.mp4');
$.ajax({
url: 'upload.php',
type: 'POST',
data: data,
processData: false,
contentType: false,
success: function() {
alert('Загружено!');
}
});
});
А вот PHP-скрипт для сохранения:
<?php
if ($_FILES['video']) {
move_uploaded_file($_FILES['video']['tmp_name'], 'uploads/video.mp4');
echo 'OK';
}
?>
Может кто-нибудь подсказать, почему пропадает звук и как это исправить? Буду очень благодарен за помощь!
По опыту, проблема скорее всего в кодировании видео при сжатии. JavaScript может использовать кодек, несовместимый с PHP. Попробуй использовать WebM вместо MP4 - он лучше поддерживается в браузерах. Еще вариант - отправлять видео и аудио отдельно, а потом объединять на сервере. И обязательно проверь, что PHP правильно обрабатывает MIME-тип загружаемого файла. Если ничего не поможет, можно попробовать серверное сжатие через FFmpeg.
Хм, а ты пробовал использовать MediaRecorder API для захвата видео и аудио? Он обычно лучше работает с мультимедиа. Еще можно попробовать отправлять видео как Blob, а не FormData. И проверь настройки сжатия - может, слишком агрессивные параметры убивают звук. Кстати, какой браузер используешь? В некоторых есть баги с обработкой аудио при сжатии видео.
слушай, у меня была похожая проблема когда я делал загрузку видео. попробуй проверить формат сжатого видео - возможно при сжатии аудио дорожка кодируется в формат, который php не поддерживает. еще советую посмотреть на размер файла после сжатия, если он сильно уменьшился, то аудио могло просто потеряться. можно попробовать использовать ffmpeg на сервере для перекодирования видео после загрузки, чтобы точно сохранить звук. удачи с решением, дай знать если получится!