動画共有ツール
- 3. アジェンダ
• はじめに
• システム概要 適当な感じで
• デモ 発表していくよ
• システム構成
• TIPS
• 問題点
• 次にやること
- 5. 問題点
• ファイルサーバ
– 各個人が好き勝手にプロジェクトサーバに置
くと速攻で枯渇する。
– ファイラーがNetAppだと超高い!!
• FRAPS
– FRAPSで画撮した動画は再生にFRAPSコー
デックが必要
• 体験版入れておけばコーデックも入るので見れる
けど。
- 8. Xxさんからのお告げ
上司
金を出せばい
• 何か良い方法ないかなぁ? くらでも解決
はできる
– WIN鯖ならD&Dだけで配信できる
• WindowsServerOSは高い
– ■■■■の■■■■■■を使う
ある部署 ほげシステム
• WMVだし、重いし。。
• 「1日あれば出来ますよ」と口を滑らす
– 本当に1日で作れるか試してみた
– プロトタイプは1日で完成
– 色々こだわって作ったら3日はかかった
- 9. プロトタイプ RED5とかも
検討したよ
• 動画ファイルをSambaにコピー
– エンコードプロセスがSambaを監視
• 動画上にコメントが流れる
• 動画上のタイムラインにお絵かきが出来
る
• プレイヤーはFLEX Builder3でさくっと作
成
- 13. システム概要図
AJP
Apache Tomcat
Queue
LDAP ZFS MySQL
Browser
Flash Player
Samba
EncodeServer
動画解析 Process
サムネイル生成
エンコード
- 14. 動作概要
• WEBからアップロードする
– 共有DISKに出力
– メタデータをDBへ
• エンコードサーバ
– 動画情報を解析する
– サムネイル画像を生成する
• 共有DISKへ出力
– エンコードを行う
• 共有DISKへ出力
- 15. エンコードサーバ
フィードバック
Analyze/Thumbnail Encode
Main Thread
Thread Thread
MySQL
Item Item Item WAIT_THUMBNAIL
Item Item Item WAIT_ENCODE
Item Item Item SUCCESS
- 16. デモ 見せられないの
で代わりにスク
リーンショットを
貼り付けます
- 18. システム構成(フロント)
• Solaris10, CPU???, Mem2GB
• Apache-2.2, Tomcat-6.0.18, JDK6u13
• MySQL-5.1.33 余ってる在庫
– InnoDB, MyISAM 機材
• Samba, LDAP-Auth
• ZFS(500GB ミラーリング)
– Sofmapで8000円程度*2
- 21. システム構成(ネットワーク)
DSに置くと転送量
• 172. ■系に配置 やばい。
みんなの作業用
– xx系は■■■■のサーバールーム
PCと同じセグメント
に
– xx系は個人PC
– xx系とxx系の間で極端な負荷がかかると自動
で遮断する機能が入っている
– 同一ネットワーク内に置いた方が他のプロ
ジェクトに迷惑をかけない(はず)
- 22. 動画について
• MP4コンテナ(H264/AAC)
• FlashPlayerはMP4(H264)再生可能
• H264はマルチスレッドでエンコード可能
• FRAPS/1280x720 1411kbps 約3分
546MB
– MP4に変換
– 劣化ほぼ無しで13MB FLV(VP6)
は諸事情によ
りやめた
- 23. 参考:FFMPEGオプション
• -threads 2 -i %{inputFile} -qmin 1 -qmax
20 -bf 3 -crf 21 -sc_threshold 54 -partitions
"parti4x4+partp8x8+partp4x4+partb8x8" -
level 13 -flags2
"bpyramid+dct8x8+wpred+mixed_refs-
fastpskip" -g 30 -keyint_min 1 -b 768k "-
maxrate" "2000k" -me_range 64 -trellis 2 -
vcodec libx264 -acodec libfaac -ar 44100 -
ab 128k -async 1 -y -
s %{size} %{outputFile}
- 26. FLASH制約:BASIC認証(2)
Servlet アップロード Servlet
JSP
(BASIC認証あり) (認証なし)
マジックナンバー check
マジックナンバー生成
ユーザー名
DBに入れる
DB
- 29. 社内向けに
• 残りのDISK容量がわかる
• エンコードサーバのステータスがわかる
• ユーザ管理はBASIC認証任せ
• 動画の解像度を指定できる
• 帯域制限無し
• オリジナルの動画も一定期間参照可能
• 動画ファイルのダウンロードリンク
• エンコードサーバが非力な場合でもパラパラサ
ムネイルで早期に概要を確認可能
- 30. 問題点
• Solarisでオールインワンサーバ
– ZFSはメモリをもりもり食べる食いしん坊
• デフォルトで総メモリの75%持って行く
– MySQLを快適に動かすにはメモリが(ry
– Javaプロセスはメモリが(ry 後日、私物の
INTEL-NICを
• Solarisの蟹NICドライバ 刺しました
– ■■さんがなんとかするんだと思います
上司
• LDAP認証
– ■■さんがなんとかするんだと思います。
上司
- 31. 既知の不具合/問題 最終版では
直ってます
• ファイルアップロード中に別タブで閲覧
するとanonymousがアップしたことに
なってしまう
• 動画をHTTPサーバ上に置いているためス
トリーム配信ができていない
• サムネイル生成に失敗してもエンコード
を開始する
• AVIファイルが前提になっている
- 32. 次に向けて コメント流しは
用途的に合
わないので入
れてません
• 動画上にコメントを流す機能の復活
• 動画上にお絵かきや吹き出しを入れる機
能の復活
• RSS
• 古い動画を自動で削除する(NO削除フラ
グも)
• 誰が見たかわかるようにする等
- 35. 前置き
• 本業がタスク量的に死にかけてた時なの
で、基本的には対応しない方針だった。
– 数字書くとどこぞに怒られるくらい
– 対応するにしても、2,3時間とかでできない
とやってはいけない
• という前提があります
– こんなやっつけ対応はよろしくないです。
- 39. 最終兵器機能
• XXXの形式がアップできない!
– ffmpegだとコーデックの種類に限界が
• ならば最後の手だ
– DirectShow経由でエンコードする
• Windowsサーバなので出来ること
– 一般的な形式ならこのオプションは要らない
• いったい何で撮影してるんだろう。。