Ver.1.40:動画のサムネイル表示実現
MyHome Portal Ver.1.40を リリースしました。
http://ok2nd.web.fc2.com/download.html
アルバムで動画のサムネイル表示ができるようにしました。
サーバーPCのローカルディスクの任意のフォルダの動画のサムネイル表示ができます。サムネイル画像の拡大/縮小もできます。
Windows XPフォルダの縮小版表示でサムネイル表示されないflvなどもサムネイル表示できます。
動画のサムネイル画像生成には、ffmpegを使っています。
ffmpegは、「お気に入りの動画を携帯で見よう(http://blog.k-tai-douga.com/)」から、Windows用バイナリをダウンロードしてインストールしてください。
対象の動画は、拡張子「avi,flv,mpg,mov,swf,wmv」を設定しています。
サムネイルをダブルクリックまたはクリックで動画再生または動画ダウンロードできます。ただし、動画の種類によって、エラーになるなど、動画再生が出来ない場合もあります。とくにIEが再生できない場合が多いようです。
実現方法をソースの抜粋(?)で示します。
【index.php】
.....<a href="video-view.php?file=xxx.flv">
<img src="video-jpeg.php?file=xxx.flv">
</a>
.....
ffmpegでJPEGを生成して標準出力に出したものをpassthruでブラウザに送っています。
.....$cmd = 'ffmpeg -vframes 1 -i "'.$file_name.'" -f image2 -';
header("Content-Type: image/jpeg");
【video-view.php】
IEはheaderで指定するファイル名をエンコードではなくShift-JISにした方が問題が少ないようです。
.....$file_SJIS = mb_convert_encoding($file_name, 'SJIS-win', 'UTF-8');
$fp = fopen($file_SJIS, "rb");
if ($fp) {
if (strstr($_SERVER['HTTP_USER_AGENT'], "MSIE")) {
$filename = mb_convert_encoding(substr($file_name,strrpos($file_name,'/')+1), 'SJIS-win', 'UTF-8');
} else {
$filename = urlencode(substr($file_name,strrpos($file_name,'/')+1));
}
header('Content-type: '.$mime_type.'; name='.$filename);
header('Content-Disposition: inline; filename='.$filename);
fpassthru($fp);
}