2013-02-13 24 views
3

您好我現在用的是下面的ffmpeg的命令從剪輯的開始與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分開一半。

示例代碼將不勝感激。

謝謝。

回答

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