2010 年度卒業研究論文 Multi Media Player 制作 岡山理科大学 総合情報学部 情報科学科 澤見研究室 I07I024 川木進吾 I07I033 河口英寛 I07I057 坂野裕一
目次 1 はじめに 2 2 Multi Media Player 概要 3 3 コーデック 4 4 再生方法 5 4.1 フィルタグラフ 6 4.2 フィルタグラフ内の処理について 7 5 DirectShow でサポートされているフォーマット 8 6 制作したプレイヤーの説明 9 7 映像を用いた比較 16 8 まとめ 17 参考文献 18 1
1 はじめに ハードウェアとソフトフェアの進歩及びインターネットの普及と性能向上により, パーソナルコンピュータを使ってマルチメディアを利用するのが一般的になってきた. 本研究では, Multi Media Player( マルチメディアプレイヤー, メディアプレイヤー ) の仕組みについて調べ, それらを参考にして仕様を決め, これに基づいて新規にマルチメディアプレイヤーを制作し, 従来の Microsoft 社の Windows Media Player と簡単な比較評価を行うことにより, より使いやすいメディアプレイヤーにするにはどうすればよいのかを考察した. 2
2 Multi Media Player 概要 パソコンで音楽を聴いたり, 動画などを再生したりするために使用するアプリケーションをマルチメディアプレイヤーと呼ぶ. マルチメディアプレイヤーを使うことで音楽ファイルや CD,DVD ビデオ, パソコンに保存されている各種フォーマットのムービーファイルなどを再生利用することができる. Microsoft 社が開発した Windows Media Player です ( 図 1). 図 1 Windows Media Player 3
3 コーデック コーデックとは, 音声や映像の符号化 (encoding) や復号化 (decoding) のアルゴリズムを実行するためのプログラムのことである. コーデックは本来, データをデジタル通信回路で送受信するための装置を意味している. 動画像ファイルは, データを圧縮されていない動画ファイルをコーデックによってデータ圧縮してからコンテナへと格納するようになっている. コンテナにどのようなものを入れることができるかは, コンテナの種類によって決まる. 例えば.avi 形式の場合, 格納できる映像は,WMV,DV,H.264 などとなる. 音声データに関しては,WMA,MP3 など様々なコーデックに対応して格納することができる. 4
4 再生方法 動画像ファイルを再生するプログラムを制作するためには様々な方法があるが, ここでは DirectShow を使用することにした.DirectShow とは, マルチメディア拡張 API 群である DirectX に含まれる API の一つである. DirectShow を使うための手順は, まずフィルタグラフを作成し, 次にフィルタグラフをレンダリングしてから最後にビデオサイズなどを調整し, 動画像を出力し再生するようになっている ( 図 2). 図 2 再生方法 5
4.1 フィルタグラフ DirectShow を用いて音声や動画像を再生するにあたって, まずフィルタグラフと呼ばれるものを作成する ( 図 3). フィルタは入力されたデータを処理し, 出力する. フィルタ同士は, ピンと呼ばれるインタフェースでつながれ, つなぎ合わせてできたものをフィルタグラフと呼ぶ. DirectShow のフィルタは, 主にソースフィルタ, 変換フィルタ, レンダラフィルタの三つに分類される. ソースフィルタはデータを作成し, 次のフィルタに送り込む. 変換フィルタは, データを受け取り転送する. レンダラフィルタは, データの受け取りをして表示を行う. 図 3 フィルタグラフ 6
4.2 フィルタグラフ内の処理について 実際に動画像ファイルを再生する場合, まずソースフィルタで HDD などの記憶装置からデータを読み込み, 変換フィルタへ流す. ソースフィルタは, グラフの最初に位置することになる. 次に変換フィルタにより, 動画像 音声がそれぞれ別にデコード処理され, レンダリングファイルへと送られる. 最後にレンダリングファイルによりデータを視聴可能な実際の映像, 音声へと変換する ( 図 4). 図 4 フィルタグラフ内の処理 7
5 DirectShow でサポートされているフォーマット DirectShow でサポートされているファイルフォーマットの映像コーデック, 音声コーデックの一覧を表している ( 表 1). 表 1 DirectShow でサポートされているファイルフォーマットの一覧 ファイルフォーマット 映像コーデック 音声コーデック MPEG-4 LPCM WMV7/WMV8/WMV9 WMA DV(DVSD/DVIS) ADPCM.avi Motion JPEG (MJPG) MP3 LossLess JPEG (LJPG) AC-3 H.264 (DAVC/H264) AAC H.263 (H263/S263) HE-AAC H.261 (H261) MS-MPEG4 WMA9 ISO MPEG-4 G.726.asf.asx.wmv WMV7 LPCM.wvx.wma.wax WMV8 MP3 WMV9 H.261 MP3 H.263 AAC MPEG-4 Video AppleLossles.mov H.264 DVCPRO HD DV Pixlet FLV1:Sorenson H.263 PCM.swf FLV4:VP62 ADPCM On2 Flix MP3 Sorenson Squeeze MPEG-2 Video PCM H.264/MPEG-4 AVC Mpeg Audio.m2t VC-1 Advanced Profile Dolby Digital(AC-3) MPEG-1 Audio Layer-2 非圧縮 LPCM MPEG-4 Video AAC,mp4 MPEG-4 AVC HE-AAC TwinVQ PCM.m2p MPEG-2 Video Dolby Digital(AC-3) Digital Theater Systems(DTS) 8
6 制作したプレイヤーの説明 マルチメディアプレイヤー制作には VisualC++ を使用し, 動作確認には Windows XP, Windows Vista, Windows 7 を使用した. 今回制作した Multi Media Player の機能を以下に列記する. (1) メディアファイルの操作実行ファイル直下に再生ファイルを置くか, オープンファイルダイアログ, ドラッグ & ドロップ, プレイリストに追加した動画像ファイル 音声ファイルの再生を行う. 各操作はキーボード, マウスによるウインドウのクリック, ソフト上に表示されているアイコンの操作によって行う ( 図 5). 図 5 メディアファイルの操作 (2) 音量調整設定されている上限と下限の範囲内で音量を調整することができる. 制作したソフトウェアでは再生画面右下にアイコンが表示されている ( 図 6 の赤枠部分 ). 図 6 音量調整 9
(3) ドラッグ & ドロップ再生したいファイルを再生画面内 ( 下図の赤枠部分 ) にドラッグ & ドロップをして再生する ( 図 7). 図 7 ドラッグ & ドロップ (4) シークバー動画の再生時間と現在の経過時間を取得し, 表示する. 再生しているファイル再生時間のうちどこまで再生しているかをスライダーの位置によって視覚的に把握することができる ( 図 8). 図 8 シークバー 10
(5) 動画像サイズの変更動画像のサイズをファイル本来のサイズで表示, ウインドウサイズに合わせる, アスペクト比を無視してウインドウサイズに合わせるなどの変更ができる ( 図 9). 図 9 サイズ変更 (6) フルスクリーン機能再生させるファイルをソフトのメニューバー, ソフト上に表示されているアイコンやタスクバーを隠ぺいして画面全体に拡大して表示する. 図 10 は, カーソル操作をしてわざとソフトのメニューバーを表示させている ( 通常ならば操作をしなければ消える ). 元に戻す場合は, 図 10 の赤枠部分をクリックするか,ESC キーを押す. 図 10 フルスクリーン状態 11
(7) プレイリスト機能通常の再生手順を踏むと自動的にプレイリストに登録される. また, ドラッグ & ドロップを行うこと追加することもできる. プレイリストに追加されたファイルは, そのファイルの再生が終わると次に登録されているファイルの再生を行う. さらに再生中にプレイリスト内の再生したいファイルを選択することによって現在のファイルを停止し, 指定ファイルを再生する. 四つの.mp4 ファイルをプレイリストに登録した場合の表示例を示す ( 図 11). 図 11 プレイリスト 12
(8) プレイヤーの透過機能プレイヤーを透過して下の画面を見るときなどに使うのを想定して実装した機能である. 全画面で再生中に他のソフトの進捗状況を確認する際に有効である. 透過機能実行時のプレイヤーである ( 図 12). プレイヤーが透過され, 下のマイコンピュータを見ることができる. プレイヤーの透過のボタンをクリックすると以下のようになる ( 図 12). 図 12 透過機能 13
(9) 貫通色指定機能指定色を完全に消滅させて動画, 画像を表示させる機能である. 貫通機能を実行中のプレイヤーの表示画面を示す ( 図 13). この図では,#000000( 黒 ) を貫通した下のアイコンをクリックすることも可能である. プレイヤーの貫通色のボタンをクリックして黒を指定することができる ( 図 13). 図 13 貫通機能 14
(10) 機能の説明以下が制作したプレイヤーである ( 図 14). 図 14 機能の説明 15
7 映像を用いた比較 ここでは,自作のプレイヤーと一般的なプレイヤー,Microsoft 社の Windows Media Player で 動画像と静止画像の比較を行った. 動画像による比較を以下に示す 図 15. 図 15 動画像を用いた比較 静止画像による比較を以下に示す 図 16. 図 16 静止画像を用いた比較 作成したプレイヤーと Windows Media Player で動画像と静止画像を比較したところ,作成 したプレイヤーの方がコントラストが低く,明るい部分や暗い部分がはっきりしなかった.理由 として作成したプレイヤーは再生時,ガンマの設定が実装されていないので,ガンマの設定がで きる Windows Media Player と色の違いが出たのだと思われる. 16
8 まとめ 作成したプレイヤーと一般的なプレイヤー,Microsoft 社の Windows Media Player を比較した結果, 再生などの機能は満足いく出来であったが, プレイリストなどのユーザーの補助的な機能が使いにくかった. 今後の課題として, 操作性向上などがあげられる. 17
参考文献 [1] MSDN ホームページ http://msdn.microsoft.com/ja-jp/default.aspx [2] finalstream ホームページ http://codec.finalstream.net/index.htm [3] 情報科学科 2009 年度卒業研究論文 マルチメディアプレイヤーについて 片山祐輔, 山田大志, 野崎祥志 (2010) 18