PHPでサムネイル操作1
ジャンル考えねーとなぁ(;_;
サンプルファイルを毎回無くすのでメモ代わり。
FFMPEGとGDとImageMagick使ってサムネイル作り関数サンプルの壱。
実際はオプションとかエラーチェックとかconstとか細かくやるべきなのだけど
あくまでもサンプルなのでさくっと。
こういう風になる予定。(出典リンク)

<?php
//動画ファイル(パス込み)
$file_name = "./Video/rc2_miku.mp4";
//出力画像ファイル(パス込み)
$img_name = "./Video/img.jpg";
//1分の1フレーム目をサムネイル化、、だと思う。
$result=convThumbnail($file_name, $img_name, 1, "00:01:00.00", "160x128", $output);
if($result==0){
echo "<img src='".$img_name."'>";
}else{
echo "Error:".$result." 画像の取得に失敗しました。<br />";
echo $output."<br />";
}
/**
* convThumbnail.
* FFMPEGでサムネイルを作成する。入力時のエラーチェックは呼び出す前に終わらせる。
*
* @access private
* @param string $file_path パスを含んだ元になる動画名
* @param string $img_path パスを含んだ出力するサムネイル名
* @param string $vframes サムネイル化するフレーム(default=1)
* @param string $ss サムネイル化する時間(default=1)
* @param string $size サムネイルのサイズ(横幅x高さ)(default=160x128)
* @param string &$output 結果を取得したい場合に使用する。変換時にエラーの場合コマンドが戻る。
*
* @return 結果コード
*/
function convThumbnail($file_path, $img_path, $vframes=1, $ss=1, $size="160x128", &$output=null){
$COMMAND_FFMPEG = "/usr/local/bin/ffmpeg";
//オプションの指定
$com_video = " -i " . $file_path;
$com_extension = " -f image2";
$com_vframes = " -vframes " . $vframes;
$com_ss = " -ss " . $ss;
$com_size = " -s " . $size;
$com_img = " -an -deinterlace " . $img_path;
//サムネイル作成
$command = $COMMAND_FFMPEG . $com_video . $com_extension . $com_vframes . $com_ss . $com_size . $com_img . " 2>&1";
exec($command, $output, $result);
if($result!=0){
$output=$command;
}
return $result;
}
?>
ジャンル考えねーとなぁ(;_;
サンプルファイルを毎回無くすのでメモ代わり。
FFMPEGとGDとImageMagick使ってサムネイル作り関数サンプルの壱。
実際はオプションとかエラーチェックとかconstとか細かくやるべきなのだけど
あくまでもサンプルなのでさくっと。
こういう風になる予定。(出典リンク)

<?php
//動画ファイル(パス込み)
$file_name = "./Video/rc2_miku.mp4";
//出力画像ファイル(パス込み)
$img_name = "./Video/img.jpg";
//1分の1フレーム目をサムネイル化、、だと思う。
$result=convThumbnail($file_name, $img_name, 1, "00:01:00.00", "160x128", $output);
if($result==0){
echo "<img src='".$img_name."'>";
}else{
echo "Error:".$result." 画像の取得に失敗しました。<br />";
echo $output."<br />";
}
/**
* convThumbnail.
* FFMPEGでサムネイルを作成する。入力時のエラーチェックは呼び出す前に終わらせる。
*
* @access private
* @param string $file_path パスを含んだ元になる動画名
* @param string $img_path パスを含んだ出力するサムネイル名
* @param string $vframes サムネイル化するフレーム(default=1)
* @param string $ss サムネイル化する時間(default=1)
* @param string $size サムネイルのサイズ(横幅x高さ)(default=160x128)
* @param string &$output 結果を取得したい場合に使用する。変換時にエラーの場合コマンドが戻る。
*
* @return 結果コード
*/
function convThumbnail($file_path, $img_path, $vframes=1, $ss=1, $size="160x128", &$output=null){
$COMMAND_FFMPEG = "/usr/local/bin/ffmpeg";
//オプションの指定
$com_video = " -i " . $file_path;
$com_extension = " -f image2";
$com_vframes = " -vframes " . $vframes;
$com_ss = " -ss " . $ss;
$com_size = " -s " . $size;
$com_img = " -an -deinterlace " . $img_path;
//サムネイル作成
$command = $COMMAND_FFMPEG . $com_video . $com_extension . $com_vframes . $com_ss . $com_size . $com_img . " 2>&1";
exec($command, $output, $result);
if($result!=0){
$output=$command;
}
return $result;
}
?>
スポンサーサイト