fc2ブログ

PHPでサムネイル操作

PHPでサムネイル操作1

ジャンル考えねーとなぁ(;_;

サンプルファイルを毎回無くすのでメモ代わり。
FFMPEGとGDとImageMagick使ってサムネイル作り関数サンプルの壱。

実際はオプションとかエラーチェックとかconstとか細かくやるべきなのだけど
あくまでもサンプルなのでさくっと。

こういう風になる予定。(出典リンク)
img.jpg


<?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;
}
?>
スポンサーサイト



コメントの投稿

非公開コメント

プロフィール

黒猫館

Author:黒猫館
ひびつらつらつらと。
なんか技術日記になっちまたヨw;

カテゴリ
最新記事
最新コメント
リンク