3

こんにちは私は次のffmpegコマンドを使用して、ffmpegでクリップの先頭からサムネイルを抽出しています。

/usr/local/bin/ffmpeg -ss 00:00:1 -i $fileName.flv -s 150x100 -vframes 1 $fileName.jpg

ffmpegだけでクリップの長さの中央からサムネイルを抽出することは可能ですか?

各クリップの長さは異なります。

ffmpegがこのオプションを提供しない場合、クリップの長さをこのタイプの形式00:00:01.26に変換できることはわかっています。それから、半分に分割できると思いますが、これが最善のアプローチかどうかはわかりません。 、そして私も(言うのが恥ずかしいですが)PHPでそのフォーマットを半分に分割する方法が完全にはわかりません。

サンプルコードをいただければ幸いです。

ありがとうございました。

4

1 に答える 1

3

あなたはこのように真ん中を得ることができます:

<?php
// get duration
$time =  exec("/local/bin/ffmpeg -i $fileName.flv 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//");   

// duration in seconds; half the duration = middle
$duration = explode(":",$time);   
$durationInSeconds = $duration[0]*3600 + $duration[1]*60+ round($duration[2]);
$durationMiddle = $durationInSeconds/2;

// recalculte to minutes and seconds
$minutes = $durationMiddle/60;
$realMinutes = floor($minutes);
$realSeconds = round(($minutes-$real_minutes)*60);
?>

そして、コマンドを$realMinutesとで使用します$realSeconds

/usr/local/bin/ffmpeg -ss $realMinutes:$realSeconds:1 -i $fileName.flv -s 150x100 -vframes 1 $fileName.jpg
于 2013-02-13T20:36:55.867 に答える