首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Azure Media Services中获取上传视频的维度(PHP /Django项目)

如何在Azure Media Services中获取上传视频的维度(PHP /Django项目)
EN

Stack Overflow用户
提问于 2016-08-11 13:01:46
回答 1查看 395关注 0票数 0

我有一个Django应用程序,其中包含视频点播功能。它由Azure媒体服务公司(AMS)提供动力。当用户上传视频时,我首先将视频保存在Azure存储blob中,然后使用PHP脚本(它使用AMS)对该视频进行编码,并准备一个流URL (托管在AMS上)。

我的问题是:如何获得视频的维数?我需要知道高度和宽度,以便我可以编码视频,以降低在AMS上的res格式。我无法从python获得维度,因为我没有首先将视频文件上传到本地服务器(我的web服务器正在运行的地方)。我有什么选择?请给我建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-15 02:20:12

因为您正在使用创建AMS任务,这需要视频资产文件。您可以轻松地利用PHP模块http://getid3.sourceforge.net/在PHP过程中获取视频资产的信息。

您可以下载PHP模块http://getid3.sourceforge.net/并将其解压缩到PHP应用程序的文件夹中,并且可以使用以下代码片段获取视频资产的维度:

代码语言:javascript
复制
require_once('./getid3/getid3.php');
$filename="<video_path>"; 
$getID3 = new getID3;
$ThisFileInfo = $getID3->analyze($filename);
var_dump($ThisFileInfo['asf']['video_media']);

如有任何进一步的关注,请随时通知我。

在Azure存储上使用远程文件更新

下面是一个代码示例,利用它,您可以在Azure存储上使用blobs的SAS url。它将下载文件到服务器文件夹,并检测信息,然后删除模板文件。

代码语言:javascript
复制
$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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38897170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档