如何在 Azure 媒体服务中获取上传视频的尺寸(PHP SDK/Django 项目)
How to get dimensions of an uploaded Video in Azure Media Services (PHP SDK/Django project)
我有一个包含视频点播功能的 Django 应用程序。它由 Azure 媒体服务 (AMS) 提供支持。当用户上传视频时,我首先将视频保存在 Azure 存储 blob 中,然后使用 PHP 脚本(利用 AMS php sdk)对所述视频进行编码并准备流式传输URL(托管在 AMS 上)。
我的问题是:如何获取视频的尺寸?我需要知道高度和宽度,以便我可以将视频编码为 AMS 上的低分辨率格式。我无法从 python 获取尺寸,因为我没有先将视频文件上传到本地服务器(我的 Web 服务器是 运行)。我有哪些选择?请指教。
因为您正在使用 PHP 的 AMS SDK 创建 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']);
如有任何疑问,请随时告诉我。
使用 Azure 存储上的远程文件更新
这是一个代码示例,利用它,您可以在 Azure 存储上使用 blob 的 SAS url。它将文件下载到服务器文件夹,并检测信息,然后删除模板文件。
$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);
}
我有一个包含视频点播功能的 Django 应用程序。它由 Azure 媒体服务 (AMS) 提供支持。当用户上传视频时,我首先将视频保存在 Azure 存储 blob 中,然后使用 PHP 脚本(利用 AMS php sdk)对所述视频进行编码并准备流式传输URL(托管在 AMS 上)。
我的问题是:如何获取视频的尺寸?我需要知道高度和宽度,以便我可以将视频编码为 AMS 上的低分辨率格式。我无法从 python 获取尺寸,因为我没有先将视频文件上传到本地服务器(我的 Web 服务器是 运行)。我有哪些选择?请指教。
因为您正在使用 PHP 的 AMS SDK 创建 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']);
如有任何疑问,请随时告诉我。
使用 Azure 存储上的远程文件更新
这是一个代码示例,利用它,您可以在 Azure 存储上使用 blob 的 SAS url。它将文件下载到服务器文件夹,并检测信息,然后删除模板文件。
$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);
}