HTML5ビデオプレーヤーを使用して、ビデオのフレームレートまたは現在のフレームを取得するにはどうすればよいですか?
質問する
4512 次
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);
?>
于 2012-05-31T17:28:56.603 に答える