忘却めも


準備

インストールを流してみて、必要な作業をリスト。

パッケージ

  • FLVtool2
$ sudo apt-get install flvtool2
  • MP4Box
gpacに付属している。
$ sudo apt-get install gpac
$ MP4Box -version
MP4Box - GPAC version 0.4.5 (build 33)
GPAC Copyright: (c) Jean Le Feuvre 2000-2005
                (c) ENST 2005-200X
  • cURL
分からなかったので"libcurl4-dev" "libghc6-curl-dev" "curl"パッケージを適当にインストし、apache再起動でClipBucketが認識した。
  • PHPShield
"ttp://www.phpshield.com/loaders/"からダウンロードし展開。
$ wget http://www.phpshield.com/loaders/ixed4.lin.x86-64.tar.gz
$ gunzip ixed4.lin.x86-64.tar.gz
$ tar xvf ixed4.lin.x86-64.tar
"/usr/lib/php5/20090626"ディレクトリに"ixed.5.3.lin"ファイルをコピー(環境に合わせてコピーする)また、ディレクトリは、"$ php -i | grep extension_dir"コマンドで表示される。
$ sudo cp ./ixed.5.3.lin /usr/lib/php5/20090626/
"/etc/php5/apache2/conf.d"ディレクトリで"phpshield.ini"ファイルを新規作成し、下記を記述する。最後にapacheを再起動する。
extension=ixed.5.3.lin

パーミッション

$ sudo chmod -R 777 cache files images includes

DB設定

$ mysql -u root -p
Enter password:

mysql> grant all privileges on clipb.* to clipbuser@localhost identified by 'clipbuser00';
Query OK, 0 rows affected (0.00 sec)

mysql> create database clipb;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| clipb              |
| mysql              |
+--------------------+
3 rows in set (0.00 sec)

mysql> use mysql
mysql> select host,user from user;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| 127.0.0.1 | root             |
| celg530   | root             |
| localhost | clipbuser        |
| localhost | debian-sys-maint |
| localhost | root             |
+-----------+------------------+
5 rows in set (0.00 sec)

mysql> exit
  • データベース名:clipb
  • データベースユーザー名:clipbuser
  • パスワード:clipbuser00

php

"/etc/php5/apache2/php.ini"ファイルで下記を記述し、apacheを再起動。
;post_max_size = 8M
post_max_size = 250M

;upload_max_filesize = 2M
upload_max_filesize = 250M

インストール

zipファイルの展開し、"upload"ディレクトリを"DocumentRoot"へコピーする。
$ unzip ./clipbucket-2.6-r738.zip -d ./clipbucket-2.6-r73
$ sudo cp -R ./clipbucket-2.6-r738/upload/ /var/www/

"./cb_install/sql/structure.sql"ファイルの文字列"ucs2"を"utf8"に変更

ブラウザから"ttp://IPアドレス/upload/cb_install/index.php"へアクセス


モジュールの確認が始まる。
エラーになっているモジュールをインストールする必要がある。

ここでは、必要なモジュールは、下記のとおり。
  • FLVtool2
  • MP4Box
  • cURL
  • PHPShield

ディレクトリのパーミッションの確認が始まる。
エラーになっているディレクトリのパーミッションの変更が必要である。


DB設定の項目を記述する。


admin設定


WEBサイトのタイトル記述


登録完了し終了する。


管理画面へ進む


ログイン


パス設定は、自分の環境に合わせる


モジュールを確認

ffmpeg

Clipbucketが使用するffmpegエンコーダでlibfaacというコーデックが必要になる。libfaacのリビルドの再配布は禁止されているため、各自でリビルドする必要がある。
libx264
$ export LD_LIBRARY_PATH="/usr/lib:/usr/local/lib"
$ wget ftp://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20111027-2245.tar.bz2
$ tar xvjf ./x264-snapshot-20111027-2245.tar.bz2
$ cd ./x264-snapshot-20111027-2245/
$ ./configure --disable-asm --enable-shared --enable-pthread
$ make
$ sudo make install

libfaac
$ sudo apt-get install libfaac-dev

ffmpeg
$ sudo apt-get install subversion
$ svn co svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
$ cd ffmpeg
$ ./configure --enable-libx264 --enable-libfaac --enable-gpl --enable-pthreads --enable-nonfree --disable-yasm
$ make
$ sudo make install
参考
導線log 2009-01-04 ←感謝!
ttp://nicovideo.g.hatena.ne.jp/maraigue/20090104/1231066450

x264のエンコードでエラー

libx264側でFFmpegのデフォルト値を判定しているそうです。詳細は、下記の参考URLへ。
Error while opening encoder for output stream #0.0 - maybe incorrect parameters such as bit_rate, rate, width or height
オプションに、以下を追加すれば解決
-g 150 -qcomp 0.7 -qmin 10 -qmax 51 -qdiff 4 -subq 6 -me_range 16 -i_qfactor 0.714286
参考
お気に入りの動画を携帯で見よう 2010年01月07日 ←感謝!
ttp://blog.k-tai-douga.com/article/34604396.html

その際に、エンコードスクリプトが記述されている"./upload/includes/classes/conversion/ffmpeg.class.php"ファイルを編集する。
181行目を下記の様に修正した。(新しいffmpegは、padcolorやpadtopなどのオプションが削除されているので、phpソース側も削除する)
181 $opt_av .= " -s {$width}x{$height} -aspect $ratio -padcolor 000000 -padtop $pad_top -padbottom $pad_bottom -padleft $pad_left -padright $pad_right ";
↓修正
181 $opt_av .= " -s {$width}x{$height} -aspect $ratio -g 150 -qcomp 0.7 -qmin 10 -qmax 51 -qdiff 4 -subq 6 -me_range 16 -i_qfactor 0.714286 ";
  • "-vpre"オプション
148行目のあたりのデフォルト "normal"から"fast"へ変更するとエンコードできた。(オプションにデフォルト値を追加しなくてもよい)
                if($p['video_codec'] == 'libx264')
                #       $opt_av .= " -vpre normal ";
                        $opt_av .= " -vpre fast ";

ビデオビットレートが設定値に反映されない

正常にエンコードが完了しても、ビデオビットレートがffmpegのデフォルト値"200kbps"になっている。"./upload/includes/classes/conversion/ffmpeg.class.php"ファイルを見た限り、165行目と171行目の変数名が2箇所、間違っていると思われるので修正した。
165                 if($p['use_video_bitrate'])
↓修正
165                 if($p['use_video_bit_rate'])

171                         if(!empty($vrate))
↓修正
171                         if(!empty($vbrate))

構成

稼動実績がある構成
ubuntu server 11.04 64bit
Apache 2.2.17 (Ubuntu)
Mysql 5.1.54-1ubuntu4
PHP Version 5.3.5-1ubuntu7.3
clipbucket-2.6-r738.zip
FLVTool2 Version 1.0.6
curl 7.21.3 (x86_64-pc-linux-gnu)
MP4Box Version 0.4.5
FFMPEG Version Svn 26402

気になったこと

  • 不具合が多いので、subversion で最新版を入れた方がいいかも
  • テンプレート  ttp://clip-bucket.com/free-themes
  • アップロードでエンコードが終了するまで、ホームにアクセスしてもエンコード処理でphpが返ってこない。仕様?
  • ホームへアクセスするとWarning timezone が以下のように出力される。
Warning: date() [function.date]: It is not safe to rely on the system's timezone settings
"index.php"ファイルにtaimezoneを追記。
date_default_timezone_set('Asia/Tokyo');
もしくは、"php.ini"ファイルに以下を追記する。
date.timezone = Asia/Tokyo

.

カウンタ

カウンター

管理人/副管理人のみ編集できます