動画共有ツール

8,330 views

Published on

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
8,330
On SlideShare
0
From Embeds
0
Number of Embeds
6,656
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

動画共有ツール

  1. 1. xxxxxxxx動画共有サイト Project名 を1日で構築しよう 本名と所属
  2. 2. この資料はBLOGと併せて読んでね @tamtam180http://mt.orz.at/archives/2012/06/3.html
  3. 3. アジェンダ• はじめに• システム概要 適当な感じで• デモ 発表していくよ• システム構成• TIPS• 問題点• 次にやること
  4. 4. モチベーション• FRAPSで撮った動画を共有したい• モーションチェックやUI確認など• 将来的にはQAの検証報告のエビデンスと して
  5. 5. 問題点• ファイルサーバ – 各個人が好き勝手にプロジェクトサーバに置 くと速攻で枯渇する。 – ファイラーがNetAppだと超高い!!• FRAPS – FRAPSで画撮した動画は再生にFRAPSコー デックが必要 • 体験版入れておけばコーデックも入るので見れる けど。
  6. 6. 高いってどれくらいよ? ぶっちゃけ おいくら万円?
  7. 7. 参考: ファイルサーバのお値段• ローエンドのファイラー(FAS2020) – XXX万円 ¥¥¥¥• HDDのお値段 – XXXX円~XXXX円/1GB (ライセンス料込) ¥¥¥¥ ¥¥¥¥ – RAIDをリアルタイムで2重化 – 50GB追加 → 100GB + パリティ + スペアお金の話なの XX万円 –→で当然カット
  8. 8. Xxさんからのお告げ 上司 金を出せばい• 何か良い方法ないかなぁ? くらでも解決 はできる – WIN鯖ならD&Dだけで配信できる • WindowsServerOSは高い – ■■■■の■■■■■■を使う ある部署 ほげシステム • WMVだし、重いし。。• 「1日あれば出来ますよ」と口を滑らす – 本当に1日で作れるか試してみた – プロトタイプは1日で完成 – 色々こだわって作ったら3日はかかった
  9. 9. プロトタイプ RED5とかも 検討したよ• 動画ファイルをSambaにコピー – エンコードプロセスがSambaを監視• 動画上にコメントが流れる• 動画上のタイムラインにお絵かきが出来 る• プレイヤーはFLEX Builder3でさくっと作 成
  10. 10. これはプロトタイプコードも残ってってな い
  11. 11. プロトタイプ問題点• Sambaの監視 – コピー中のファイルを拾ってしまう – アップロードの完了タイミングを拾えない• FLEX BUILDER3 – 個人ライセンスなので誰も保守できない
  12. 12. というわけで作り直し
  13. 13. システム概要図 AJP Apache Tomcat Queue LDAP ZFS MySQLBrowser Flash Player Samba EncodeServer 動画解析 Process サムネイル生成 エンコード
  14. 14. 動作概要• WEBからアップロードする – 共有DISKに出力 – メタデータをDBへ• エンコードサーバ – 動画情報を解析する – サムネイル画像を生成する • 共有DISKへ出力 – エンコードを行う • 共有DISKへ出力
  15. 15. エンコードサーバ フィードバック Analyze/Thumbnail Encode Main Thread Thread ThreadMySQL Item Item Item WAIT_THUMBNAIL Item Item Item WAIT_ENCODE Item Item Item SUCCESS
  16. 16. デモ 見せられないの で代わりにスク リーンショットを 貼り付けます
  17. 17. BLOGに張っておきます
  18. 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
  19. 19. システム構成(エンコード鯖)• WindowsXP(SP2) – CPU:Pen4 3.2G, Mem2GB – JDK6u13 余ってる在庫 – FFMPEG(C2D最適化ビルド) 機材 • ※Pen4用にリビルドするの面倒だった!! – FRAPSエンコーダー
  20. 20. システム構成 備考• WindowsとSolarisで分けた理由 – WindowsXPはTCP同時接続10本まで(EULA) • WindowsでWEBサーバは無理 • ファイルサーバも当然無理 – FRAPSコーデックはWindowsオンリー• SolarisだとZFSが使える – ミラーリングできる
  21. 21. システム構成(ネットワーク) DSに置くと転送量• 172. ■系に配置 やばい。 みんなの作業用 – xx系は■■■■のサーバールーム PCと同じセグメント に – xx系は個人PC – xx系とxx系の間で極端な負荷がかかると自動 で遮断する機能が入っている – 同一ネットワーク内に置いた方が他のプロ ジェクトに迷惑をかけない(はず)
  22. 22. 動画について• MP4コンテナ(H264/AAC)• FlashPlayerはMP4(H264)再生可能• H264はマルチスレッドでエンコード可能• FRAPS/1280x720 1411kbps 約3分 546MB – MP4に変換 – 劣化ほぼ無しで13MB FLV(VP6) は諸事情によ りやめた
  23. 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}
  24. 24. FLASHの制約• BASIC認証を通すことができない• クッキーを送信する事ができない• ファイルダイアログがユーザークリック をトリガーとすることが必須になった
  25. 25. FLASH制約:BASIC認証(1)• ※セッションを使えばいいが、後述する クッキーが使えないのでセッションIDの 渡し方に困る。 – ユーザー名がなりすまし対策済みでプログラ ムに渡せれば良い
  26. 26. FLASH制約:BASIC認証(2) Servlet アップロード Servlet JSP(BASIC認証あり) (認証なし) マジックナンバー checkマジックナンバー生成 ユーザー名 DBに入れる DB
  27. 27. FLASH制約:COOKIE• COOKIEを送信できない – セッションが使えない – リクエストパラメータにIDを渡せば良い
  28. 28. FLASH制約:セキュリティ• JavaScriptから直接ファイルダイアログ が開けなくなった。• ユーザーのクリックイベント必須。 Button• Z-Index指定してかぶせてしまえば良い• もしくはFlashボタンを用意する
  29. 29. 社内向けに• 残りのDISK容量がわかる• エンコードサーバのステータスがわかる• ユーザ管理はBASIC認証任せ• 動画の解像度を指定できる• 帯域制限無し• オリジナルの動画も一定期間参照可能• 動画ファイルのダウンロードリンク• エンコードサーバが非力な場合でもパラパラサ ムネイルで早期に概要を確認可能
  30. 30. 問題点• Solarisでオールインワンサーバ – ZFSはメモリをもりもり食べる食いしん坊 • デフォルトで総メモリの75%持って行く – MySQLを快適に動かすにはメモリが(ry – Javaプロセスはメモリが(ry 後日、私物の INTEL-NICを• Solarisの蟹NICドライバ 刺しました – ■■さんがなんとかするんだと思います 上司• LDAP認証 – ■■さんがなんとかするんだと思います。 上司
  31. 31. 既知の不具合/問題 最終版では 直ってます• ファイルアップロード中に別タブで閲覧 するとanonymousがアップしたことに なってしまう• 動画をHTTPサーバ上に置いているためス トリーム配信ができていない• サムネイル生成に失敗してもエンコード を開始する• AVIファイルが前提になっている
  32. 32. 次に向けて コメント流しは 用途的に合 わないので入 れてません• 動画上にコメントを流す機能の復活• 動画上にお絵かきや吹き出しを入れる機 能の復活• RSS• 古い動画を自動で削除する(NO削除フラ グも)• 誰が見たかわかるようにする等
  33. 33. 謝辞• ■■のプロジェクトサーバをあさって勝 手に素材を使いました(ノ∀`)(一応デザイナに許可はとったよ)
  34. 34. ここから、後から追加した資料
  35. 35. 前置き• 本業がタスク量的に死にかけてた時なの で、基本的には対応しない方針だった。 – 数字書くとどこぞに怒られるくらい – 対応するにしても、2,3時間とかでできない とやってはいけない• という前提があります – こんなやっつけ対応はよろしくないです。
  36. 36. HDDの容量が!• 無くなる度に、近所のソフマップで購入• ZFSなので追加は楽ちん• その後、スロット不足によりHDDが足り なくなったのでSATAスロットが多いPCへ 変更• この作業は全て上司がやってた。 最後に見たとき には、8000くら い動画があった 気がする
  37. 37. タグ機能と検索• タイトルにブラケットを入れるとタグ化 – [VFX][xxx] 新しい魔法のエフェクトだよ • タグ: VFX • タグ: xxx• タグの入力欄を作るのが面倒だった
  38. 38. サウンドカット機能• iTuneで音楽流しながら動画撮るとそっち の曲が入ってしまうらしい – やっぱり聞きながら作業したいよね・・?• よろしい。ならばサーバにアップした時 に、サウンドを消しましょう – オプション機能です – オリジナルファイルには当然残ってるので注 意
  39. 39. 最終兵器機能• XXXの形式がアップできない! – ffmpegだとコーデックの種類に限界が• ならば最後の手だ – DirectShow経由でエンコードする • Windowsサーバなので出来ること – 一般的な形式ならこのオプションは要らない • いったい何で撮影してるんだろう。。

×