playvideo plugin
playvideo.inc.pl
Copyright(c) 2012 Nanami.
for PyukiWiki(http://pyukiwiki.sourceforge.jp/)

Usage: 
&playvideo(filename [, option youtube video ID]...);
#playvideo(filename [, option youtube video ID]...)

拡張子はいれないでください！
Windows Media Video 及び、変換してあれば、HTML5ビデオ
または、Flashビデオが再生できます。

最低でも、WMV形式があれば、Windows Media Playerをサポートしている
ブラウザー（一部のみ）、最低でもMP4形式にエンコードしておけば
多くのブラウザーをサポートできます。

変更する場所・・・

plugin/playvideo.inc.pl を参考にして

info/setup.cgi を

$::playvideo_plugin_usedownload=0; 		# ダウンロード機能を使わない場合
$::playvideo_plugin_ziptmp="/tmp"; 		# テンポラリディスクスペースに
										# 別HDDが割り当てられていると
										# 速くなります。
$::playvideo_plugin_videopath="video";	# ビデオの配置してある./ からのパス
										# または絶対パス
$::playvideo_plugin_playsite="http://$ENV{HTTP_HOST}/v.cgi"
										# デフォルトプレイサイト
$::playvideo_plugin_videourl="http://$ENV{HTTP_HOST}/$videopath"
										# 実際に配信したいビデオのホスト名
										# 〜パス
$::playvideo_plugin_videourl{flv}="http://...";
$::playvideo_plugin_videourl{mp4}="http://...";
$::playvideo_plugin_videourl{ogv}="http://...";
$::playvideo_plugin_videourl{webm}="http://...";
										# 各拡張子を、PyukiWikiを設置してある
										# サーバー以外に置く場合に指定する。
										# (PyukiWiki 0.2.0-alpha15以降対応）
										# また、設置するサーバーは、HEAD
										# リクエストでファイルの存在を確認
										# できる必要がある。

$::playvideo_plugin_downloadfilename_inwmv=0
										# wmvのタイトルをzipに埋め込む
$::playvideo_plugin_downloadfilename_inwmv_withauthor=0
										# wmvの作者をzipに埋め込む



$::playvideo_plugin_usedownload=1		# 使わない時は0にする。
$::playvideo_plugin_plain_download=0	# 生のwmvをダウンロードできるようにする
$::playvideo_plugin_zipflags="-0";		# zipのオプション
$::playvideo_plugin_ziptmp="/tmp"		# zipファイルのテンポラリの位置
$::playvideo_plugin_videopath="video"
$::playvideo_plugin_playsite="http://$ENV{HTTP_HOST}/v.cgi"
$::playvideo_plugin_videourl="http://$ENV{HTTP_HOST}/$::playvideo_plugin_videopath"
# wmv または、MP4以外の再生サイトを設定する。
# 注：wmvまたはMP4は必ずマスタサイトに設置して下さい。
$::playvideo_plugin_videourl{flv}="http://...";
$::playvideo_plugin_videourl{mp4}="http://...";
$::playvideo_plugin_videourl{ogv}="http://...";
$::playvideo_plugin_videourl{webm}="http://...";

$::playvideo_plugin_downloadfilename_inwmv=0	# wmvのタイトルをzipに埋め込む
$::playvideo_plugin_downloadfilename_inwmv_withauthor=0
												# wmvの作者をzipに埋め込む
$playvideo::usefakeyoutubeurl=0	# Youtubeの偽物（ニコニコ動画）を使用する

に書き込んで下さい。

サンプルイメージ・・・

&playvideo(2pctest);
↓
[Windows Media Player] [ダウンロード] (15.46 s) 
TOTAL: 6 TODAY: 0 YESTERDAY:1 
---

&playvideo(hisui3,1bQrBC-lpao,sm???????);
[Windows Media Player] [ブラウザーで再生] [Youtube] [ニコニコ動画] [ダウンロード] (06:46) 
TOTAL: 18 TODAY: 2 YESTERDAY:2

（注：上記のＩＤは、http://www.youtube.com/watch?v=1bQrBC-lpao のものです）
（注：ニコニコ動画のものはダミーです）

まぁ、ぶっちゃけいえば、時間取得をして、wvxを自動的に生成するか
HTML5を生成してプログレッシブ再生するためのものです。

主な使い方

 &playvideo(name, [options...]);
 #playvideo(name, [options...])

  name : ビデオファイル名
    拡張子を指定しないと、リンクとして新しいウィンドウで開きます。
    拡張子を指定すると（wmv、または html）その画面で開きます。
　　インナープレイヤーで、拡張子にYouTubeかニコニコ動画のIDを指定すると
　　そのサイトの動画を表示します。

  オプション :
    image=filename.jpg または gif または png
      動画のサムネイル画像（一部のみ指定可能）添付でもURLでも可
    inline, inline=yes
      拡張子を指定しなくても、その画面にプレイヤーを開く
    autoplay, autoplay=yes, autostart, autostart=yes
      その画面にプレイヤーを開いた時に、自動再生をする
    loop, loop=yes
      繰り返し再生をする
     （新しいウィンドウのWMV/HTML5か、インナーウィンドウのHTML5のみ）
    notime, notime=yes
      時間を表示しない（プレイヤーでは時間が表示されます）
    nodownload, nodownload=yes
      ダウンロードリンクを設置しない
    size=(0-100)%
      インナープレイヤーのサイズを指定する。
    width=xxx height=xxx or 640x480
      インナープレイヤーのサイズを指定する。
    youtube=ID
      YouTubeのIDを指定する。
    niconico=ID
      ニコニコ動画のIDを指定する。

なお、Windows Media エンコーダーにおいて、以下のものを設定すれば
自動的に反映されます。

題名：
作成者：
著作権：

MP4エンコード時に、タイトルと作成者が設定できます。

Windows Media エンコーダーは以下からダウンロードできます。
(Windows Vista までのサポート、４スレッド同時までの動作ですが、
 Windows 7 でも動作します）

32bit版
http://www.microsoft.com/downloads/ja-jp/resultsForCategory.aspx?displaylang=ja&categoryid=4

64bit版
http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=cc41218d-7e37-4546-bf0b-1276959ee3ef

また、新しいバージョンとして、Microsoft Expression Encoder シリーズがサポートされています。

http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=75402BE0-C603-4998-A79C-BECDD197AA79

主に、Windows Media エンコーダーで固定サイズであったのが、自由なサイズで
作成できるようになっていたり、より多くのスレッドで高速にエンコードをすることが
できます。

（注：Windows XP以前のWindows Media 9プレイヤー以前では、VC-1 シンプル以外
　再生できません）

また、HTML5ビデオ、及び、フラッシュビデオは Windows Media形式
ファイルがないと再生できませんが、変換することにより
再生することができます。
HTML5ビデオ、及び、フラッシュビデオ（FLV)の変換は、以下のソフトを利用すると
良いでしょう。

※ HTML5ビデオファイル形式は３種類ありますが、最低限、現在
噂となっている、IE10のMetroスタイル版に最低限対応するために、
MPEG4-AVC/H.264だけ対応しておけば良いと思います。

（同じ動画複数本をサーバーに設置するにも、負担がかかると思います）

XMedia Recode (日本語対応)
http://www.xmedia-recode.de/
※ 注意点：フレームレートをそのままである「オリジナルを保持」を選択すると、
　 非常に巨大なファイルが出来ます。
　 適時、29.97もしくは 30 あたりを選択してみて下さい。

現在、FLVだけではなく、HTML5ビデオに必要な、
MPEG4-AVC/H.264、OGV、WebMにも変換できます。
※ 注：MPEG4等の作成方法は、プロフィールからカスタムを選択して、
形式、MP4、コーディック、MPEG4 AVC / H.264
その他、OGVは、カスタムのまま、OGV、及び、WebMも同様に、WebM で
変換できます。

また、添付してある、flowplayerにおいて、MPEG4-AVC/H.264に対応していますので
FLVに変換しなくても、そのまま閲覧することができますが、flowplayerでの再生は
多少遅延が生じるため、容量に余裕があれば、FLVも変換しておくとよいでしょう。

ffmpeg
http://ja.wikipedia.org/wiki/FFmpeg

色々なOSに移植されているビデオコンバータです。

無難な設定として、以下の物が利用できます。（入力元：wmv）

ビットレートには、500k や 1.5M 5M 等を指定してみて下さい。

.flv

ffmpeg -y -i "入力ファイル名" -acodec libfaac -ar 44100 -ab 128k -vcodec libx264 -level 41 -b ビットレート -bufsize 20000k -maxrate 25000k -g 250 -r 29.97 -coder 1 -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -me_method umh -subq 7 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -rc_eq 'blurCplx^(1-qComp)' -bf 16 -b_strategy 1 -bidir_refine 1 -refs 6 -deblockalpha 0 -deblockbeta 0 -threads 2 "出力ファイル名.flv"

.mp4

ffmpeg -y -i "入力ファイル名" -acodec libfaac -ar 44100 -ab 128k -vcodec libx264 -level 41 -b ビットレート -bufsize 20000k -maxrate 25000k -g 250 -r 29.97 -coder 1 -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -me_method umh -subq 7 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -rc_eq 'blurCplx^(1-qComp)' -bf 16 -b_strategy 1 -bidir_refine 1 -refs 6 -deblockalpha 0 -deblockbeta 0   -threads 2 "出力ファイル名.mp4"

.webm

ffmpeg -y -i "入力ファイル名" -f webm -vcodec libvpx -acodec libvorbis -ab 128k -r 29.97 -aq 90 -b ビットレート  -threads 2 "出力ファイル名.webm"

.ogv

ffmpeg -y -i "入力ファイル名" -acodec libvorbis -ab 128k -r 29.97 -aq 90  -b ビットレート  -threads 2 "出力ファイル名.ogv"

iWisoft Free Video Converter (英語のみ)
http://www.easy-video-converter.com/

以前、紹介していましたが、現在お勧めできません。

注意点：
アップデート時、及び、フラッシュビデオを使用するには、
一度 deletecacheプラグインでplayvideoを全て削除する必要があります。

以前からの更新点
ダウンロードにwmv埋め込みタグの日本語が含まれる場合、
一部ブラウザーでファイル名が文字化けするのを修正した。

Bug ?
このバージョンにアップデートする場合、必ず、
deletecacheで、playvideo 拡張子を全て一度削除して下さい。

HTML5ビデオの、Android、iPad、iPhoneでは動作確認できていませんが
以前のバージョンより動作しやすいようになっています。
しかし、未サポート状態になっています。

カウンターがV2でないとうまく昨日のが取得できないかもしれない。汗
多分ですが、PyukiWiki Classic では動作しません。

また、あえてやってないのですが、
v.cgi の外部からのアクセスの制限は行っていません。
そのため、他の人のyoutube IDやニコニコ動画のIDの
ビデオが再生される可能性があります。

なお、このプラグイン作成において、
Image::ExifTool ver 8.50 及び、flowplayer 3.2.7、video.js 3.0.7を
使用しています。

Image::ExifTool
http://search.cpan.org/~exiftool/Image-ExifTool-8.50/

flowplayer
http://flowplayer.org/

HTML5 Video Player | VideoJS
http://videojs.com/

video.js
http://videojs.com/

その為、ライセンスは、LGPLとなります。

(c) 2012 nanami.
