在javascript中获取视频的帧速率[关闭]

问题描述 投票:2回答:1

如何使用HTML5视频播放器获取视频或当前帧的帧速率?

javascript html5 html5-video
1个回答
2
投票

您需要一个服务器端脚本,<video>对象中的元数据支持有限 - 而且大多数都是特定于浏览器的。

var xhr = new XMLHttpRequest();
var q = "?file=http://mediafiles.tld/playme.avi";
xhr.open("GET", "/path/to/identify.php" + q, true);
xhr.send();
var videodata = eval("("+xhr.responseText+")");

然后在服务器端创建一个类似于第一帧的播放器 - 并且不显示任何内容或播放音频。下面的功能只是通过'-identify'启动相关的编解码器和后退信息。通过使用mplayer,服务器必须具有此功能,并且能够解码电影/音频以提供有效数据。

<?php

ob_start();
system('mplayer -identify -frames 1 -vo null -ao null '.$_GET['file'].' 2>/dev/null|egrep "[A-Z_]+="');
$out = ob_get_clean();
$data = array();
foreach(explode("\n", $out) as $line) {
    list($k, $v) = explode("=", trim($line));
    $data[trim($k)] = trim($v);
}
header("Content-Type: application/x-json");
header("E-Tag: " . substr(0,16,md5($_GET['file']));
print json_encode($data);

?>
© www.soinside.com 2019 - 2024. All rights reserved.