澤見研究室 I04I021 片山祐輔 I05I095 山田大志 I06I040 野崎祥志 マルチメディアプレイヤーについて 澤見研究室 I04I021 片山祐輔 I05I095 山田大志 I06I040 野崎祥志
目次 1 はじめに 2 マルチメディアプレイヤーの概要 3 ファイルフォーマットについて 4 再生方法について 4.1 フィルタグラフについて 4.2 レンダリングについて 4.3 フィルタグラフ内の処理について 5 Directshowについて 6 作成したプレイヤーの機能について 7 コーデックの拡張について 8 一般的なプレイヤーとの比較 9 まとめ 参考文献
1 はじめに マルチメディアとは、複数の情報をひとまとめにして扱う媒体 インターネットの普及と発達によりマルチメディアを利用することが一般的 マルチメディアを利用するためにはアプリケーションが必要 マルチメディアは一般的に音楽・動画の意味を持ち、インターネットの普及と発達により身近なものになった。 今回の研究ではマルチメディアプレイヤーの仕組みを調べ、マルチメディアプレイヤーをVisual Basic6.0で作成することを目標とする。 図1 Windows Media Player 3
2 マルチメディアプレイヤーの概要 音楽,動画の再生 複数のファイルフォーマットに対応 様々な圧縮方法 機能拡張,対応フォーマットの拡張など 音楽や動画を再生するにはまずファイルフォーマットに対応できなければならない。CDの音楽などまったく圧縮されていないファイルもあるが、PC上で扱う音楽や動画は圧縮されているものが多い。特に動画は無圧縮の場合ファイルサイズが膨大なものになる。 圧縮には様々な種類があり、少なくとも一般的なものには対応している必要がある。また、既存のプレイヤーにはその他の機能がついていたり、拡張できたりするものがある。 例、ストリーミング配信など。 図2 C++で作成したフォーム (Visual Studio2008で作成) 4
3 ファイルフォーマットについて 映像 音声 コーデック コンテナ 字幕情報など 動画ファイル 図3 ファイルフォーマットについて 例 WMV,DivX,H.264 例 WMA,mp3 コーデック 例 AVI,MOV,MP4 ファイルフォーマットとはファイルの保存形式であり、 ファイル形式にはコンテナとコーデックがある。 コンテナとはAVIやmp3などの拡張子を指し、データの入れ物である。 コーデックとは音声や映像の符号化/復号化のアルゴリズムやそれを行うためのファイル・プログラムを指す。 動画では無圧縮動画をコーデックで圧縮しコンテナへと入れる。 コンテナには音声や字幕情報も入る。 コンテナ 字幕情報など 動画ファイル 図3 ファイルフォーマットについて
4 再生方法について 動画ファイル フィルタ フィルタグラフの作成 レンダリング 視聴可能状態にする サイズ調整 ビデオサイズの調整等 動画を再生する方法は様々な方法があるが、今回はまずDirectShowを使用した。再生手順は 1.フィルタグラフを作成する 2.フィルタグラフをレンダリングする。 3.ビデオサイズなどを調整し出力する。 以上のことをプログラムで動作させる。 サイズ調整 ビデオサイズの調整等 DirectShowを使用 図4 再生方法について
4.1 フィルタグラフについて 図5 フィルタグラフ内の構造 DirectShowで再生するにあたって、まずフィルタグラフと呼ばれるものを作成する。 フィルタとは入力データを処理し出力することで、DirectShowではこのフィルタを細かく別ける。 フィルタグラフとはフィルタ同士をピンと呼ばれるインターフェースでつなぎ合わせ出来たものです。DirectShowのフィルタは、ソース、変換、レンダラの三つに分類される。 *図.3を参照 図5 フィルタグラフ内の構造
4.2 レンダリングについて 図6 レンダリングについて レンダラフィルタ 映像ファイル 動画ファイル 音声ファイル レンダリングとは、コンピューターから画像・映像・音声を作りだすことである。 これらを行うソフトフェアなどをレンダラという。 動画ファイル 音声ファイル 図6 レンダリングについて
4.3 フィルタグラフ内での処理について ① 動画ファイルを読み込む ② スプリッタで音声と映像にわける ③ デコーダでそれぞれ処理する ④ レンダラフィルタを通し出力を行う。 実際に動画を再生する場合、図4のように、まず(1)のソースフィルタでHDDなどの記憶装置からデータを読み込み次へ流す。グラフの最初に位置することとなる。次に(2)変換フィルタにより、映像・音声がそれぞれ別にデコード処理され、レンダリングフィルタへと送られる。最後に(3)レンダリングフィルタによりデータを視聴できる実際の映像・音声へと変換する。 *図.4を参照 図7 フィルタグラフ内の処理手順
5 Directshowについて IGraphBuilder ビデオレンダリングや出力などの機能 IMediaControl 再生・停止・一時停止などの操作する機能 IVideoWindow ビデオファイルの大きさなどの機能(フルスクリーン機能など) IBasicAudio 音量の取得と音量調整の機能 IMediaPosition ストリーム内のシークする機能
4.ドラッグ&ドロップ 5.繰り返し再生 6.再生リスト 7.フルスクリーン 6 作成したプレイヤーの機能について (1) (2) (3) (5) (7) (6) (4) 1.動画・音楽の再生 2.シークバー 3.音量の調整 4.ドラッグ&ドロップ 5.繰り返し再生 6.再生リスト 7.フルスクリーン 図8 作成したプレイヤーの機能
オープンファイルダイアログまたはドラッグ&ドロップによりファイルを選択 (1) 1.動画・音楽の再生 オープンファイルダイアログまたはドラッグ&ドロップによりファイルを選択
(2) 2.シークバー 動画の再生時間を取得し、シークバーの最大値に設定 一定時間ごとに現在の再生時間を取得し、シークバーを動かす 手動の場合は動かした場所の時間を取得し、その位置から再生
手動でバーを動かした場所が音量の数値となる (3) 3.音量調整 最大値と最小値は決まっている 手動でバーを動かした場所が音量の数値となる
(4) 4.ドラッグアンドドロップ ドラッグしたときウィンドウ上におかれているか判断 ドロップしたファイル名を読み取り再生リストに追加
(5) 5.繰り返し再生 再生が終了した場合最初から再生を開始する チェックが入っていないとき、次の動画があれば再生 次の動画がなければ停止する
(6) 6.再生リスト ファイルが選択されたら再生リストに追加される 再生が終了したら次の動画が再生される 項目の最後まで再生されたら最初の項目から再度再生を開始する
キーボードショートカットまたは(7)の表示部分から切り替え (7) 7.フルスクリーン 再生中の動画を全画面で表示する キーボードショートカットまたは(7)の表示部分から切り替え 解除はEscキーで行う
7 コーデックの拡張について 標準対応 Mpeg-1,MP3,WMA,WMV,MIDI AVI,ASF,WAV 未対応 再生 未対応 Mepg-4,ogg,etc… スプリッター 未対応用コーデック 図9 コーデックの拡張について
8 一般的なプレイヤーとの比較 視覚・聴覚からの画質・音質の比較 音飛びや画質の乱れは見られないことから差はほとんどないと言える。 作成したプレイヤーの機能 繰り返し再生・音量調整・ファイル選択・再生リスト・フルスクリーン切り替え
9まとめ このマルチメディアプレイヤーの研究をとおしてプレイヤーの仕組みや構成などを学習できた。 しかし、一般的なプレイヤーと比べると必要と思われる機能しか作成できていないことがわかった。 今後の課題は再生リストの保存などが挙げられる。
参考文献 MSDN http://msdn.microsoft.com/ja-jp/default.aspx