Как получить размеры загруженного видео в службах мультимедиа Azure (проект PHP SDK / Django)

У меня есть приложение Django, которое содержит функцию видео по запросу. Он работает на Azure Media Services (AMS). Когда пользователь загружает видео, я сначала сохраняю видео в BLOB-хранилище Azure, а затем использую сценарий PHP (который использует SDK AMS php) для кодирования упомянутого видео и подготовки URL-адреса потоковой передачи (размещенного в AMS).

Моя проблема заключается в следующем: как я могу получить размеры видео? Мне нужно знать высоту и ширину, чтобы я мог кодировать видео в форматах с более низким разрешением в AMS. Я не могу получить размеры из Python, так как я не загружаю видеофайл сначала на локальный сервер (где работает мой веб-сервер). Какие у меня варианты? Пожалуйста, порекомендуйте.

0

Решение

Поскольку вы используете AMS SDK для PHP для создания задачи AMS, для которой требуется файл видео актива. Вы можете использовать модуль PHP http://getid3.sourceforge.net/ чтобы получить информацию о видео активе во время процесса PHP с легкостью.

Вы можете скачать модуль PHP http://getid3.sourceforge.net/ и извлеките в папку вашего php-приложения, и вы можете использовать следующий фрагмент кода, чтобы получить размеры видео актива:

require_once('./getid3/getid3.php');
$filename="<video_path>";
$getID3 = new getID3;
$ThisFileInfo = $getID3->analyze($filename);
var_dump($ThisFileInfo['asf']['video_media']);

Любое дальнейшее беспокойство, пожалуйста, не стесняйтесь, дайте мне знать.

Вот пример кода, используя который, вы можете использовать SAS-URL больших двоичных объектов в хранилище Azure. Он загрузит файл в папку на сервере, обнаружит информацию и затем удалит файл шаблона.

$remotefilename = '<SAS Url>';
if ($fp_remote = fopen($remotefilename, 'rb')) {
$localtempfilename = tempnam('/tmp', 'getID3');
if ($fp_local = fopen($localtempfilename, 'wb')) {
while ($buffer = fread($fp_remote, 8192)) {
fwrite($fp_local, $buffer);
}
fclose($fp_local);
// Initialize getID3 engine
$getID3 = new getID3;
$ThisFileInfo = $getID3->analyze($localtempfilename);
// Delete temporary file
unlink($localtempfilename);
}
fclose($fp_remote);
var_dump($ThisFileInfo);
}
0

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

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

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