サーバーにflvファイルをアップロードしています。その期間を「分:秒」の形式で表示したいと思います。誰かがこれで私を助けることができますか?
ありがとうございました
FFMPEGPHP拡張機能もあります。apt-get install php5-ffmpeg
それから
$ movie = new ffmepg_movie( "path / to / movie.flv"); $ duration_in_seconds = $ movie-> getDuration();
これは以前私のために働いていました。この拡張子は、メタデータを取得したり、アップロードされたファイルがFLVであるかどうかをテストしたりするのに適しています。
これがフレームを取得してビデオから画像を生成するための私のコードです...
// get the duration and a random place within that
$cmd = "ffmpeg -i " . $videoPath . " 2>&1";
if (preg_match('/Duration: ((\d+):(\d+):(\d+))/s', `$cmd`, $time)) {
$total = ($time[2] * 3600) + ($time[3] * 60) + $time[4];
$second = rand(1, ($total - 1));
}
exec($cmd);
// get the screenshot
exec("ffmpeg -i " . $videoPath . " -deinterlace -an -ss $second -t 00:00:01 -r 1 -y -vcodec mjpeg -f mjpeg " . $imageOutput . " 2>&1");
$ second変数は、0から合計期間までの乱数です。2番目のexec()は、選択したフレームから画像ファイルを作成することです。
$ imageOutputは、生成された画像への絶対パスの場所です。例:/home/ariawan/image-generated.jpg
getID3 PHP library
依存関係のないプレーンな古いPHPで書かれたを使用します。
.flv
それはあなたに秒単位で映画の長さを与えるだけでなく、それをminute:seconds
すでにフォーマットに変換します。v。1.7.9(の最新の安定バージョンgetid3
)のコードサンプルを次に示します。
<?php
// getId3 library uses deprecated eregi_* functions
// which generate errors under PHP 5.3 - so I excluded them
error_reporting(E_ALL ^ E_DEPRECATED);
// just for debugging/sample
header('Content-Type: text/plain');
// include the getid3 base class in order to use the lib
require_once('./lib/getid3.php');
// path to your .flv file
$filename = './sample.flv';
$getID3 = new getID3();
$fileInfo = $getID3->analyze($filename);
// echoes something like 127.8743
print 'Playtime in seconds: ' . $fileInfo['playtime_seconds'];
print chr(10);
// echoes something like: 2:07
print 'Playtime in minute:seconds format: ' . $fileInfo['playtime_string'];
私はビデオの長さを取得するためにphpとffmpegを使用しています。
$cmd = "ffmpeg -i " . $videoPath . " 2>&1";
if (preg_match('/Duration: ((\d+):(\d+):(\d+))/s', `$cmd`, $time)) {
$total = ($time[2] * 3600) + ($time[3] * 60) + $time[4];
}
exec($cmd);
print_r()表示する$time変数。ffmpegがマシンにインストールされていることを確認してください。これが役立つことを願っています。