← |
2024年11月 |
→ |
日 |
月 |
火 |
水 |
木 |
金 |
土 |
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
|
26 |
27 |
28 |
29 |
30 |
|
今日はとある人に向けた私信30%でお送りします。
未だに、 A「AVIファイルの再生が出来ない><」 自分「AVIといっても色々あるから見てみないと分からないよ」 A「AVIはAVIでしょ?」 みたいな会話をすることがあるので、 動画ファイルについての簡単な説明。
AVIファイルというか、動画ファイルというか、 おおよそ、世の中のデータファイルというのは、 ・ファイル構造 ・データフォーマット(フォーマットは書式とか形式の意味の方) に分けることが出来る。
先のAVIファイルの場合には RIFFファイルフォーマットというモノに準拠していて、 たとえば、以下(外部サイト)のようなファイル構造になっている。 →http://www.usagi-goten.com/jp/AVI_structure.html
つまり、どこに画面サイズの情報が有って、 どこにfpsの情報が格納されていて・・・ という動画ファイルの基本の構造を定義しているわけだ。 この、データを格納するファイルなどの形式のことを「コンテナ」と呼ぶこともある。
ただ、動画というのは、非常に大きくて、 DVDの画像サイズや色深度で2時間の動画を、 何も圧縮せずに保存すると200GBぐらいになってしまう。 なので、動画の圧縮というモノが必要になってくる。
そして、AVIファイルでは 「動画のサイズが格納する場所」とか、 「「動画全体の何秒目が、どこに格納されているか?」の情報を格納する場所」とかが 定義されているけど、 実際に、動画がどのような形で圧縮されているかは、定義されてない。 ※正確には、どういう名前の圧縮を使って圧縮されたかの情報までは持っている。 でも、その圧縮の名称は分かるけど、それがどのような圧縮アルゴリズムか? はAVIコンテナの担う範囲を超えている。
というわけで、圧縮の形は細かく別途定義されていて、それがデータフォーマット。 これには、非圧縮BMPをはじめ、DivXやら、RLE、Ycc=411、Indeo、Cinepackなど 様々なモノが世の中には存在する。
たとえば、AVIファイルコンテナに、 ・動画フォーマット:非圧縮BMP/音声フォーマット:PCM整数16bitStereo が格納されている動画もあれば、 ・動画フォーマット:DivX/音声フォーマット:Mpeg1AudioLayer3-128kbps-JointStereo が格納されている動画もある。
その他、世の中でよく見られるモノとしては ・コンテナ:AVI/フォーマット:DivX ・コンテナ:AVI/フォーマット:wmv ・コンテナ:wvm/フォーマット:wmv ・コンテナ:qt/フォーマット:MotionJpeg ・コンテナ:mpeg/フォーマット:MPEG1 ・コンテナ:mpeg/フォーマット:MPEG2 ・コンテナ:mp4/フォーマット:MPEG4 ・コンテナ:mp4/フォーマット:MPEG-4 AVC 等、様々な組み合わせが可能だ。
なので、動画を再生するためには、 そのコンテナを読み出せて、その動画フォーマットを読み出せるという、 2つの条件が必要なわけだ。
Wnidowsにおいては、AVIやAMV、MPEGのコンテナは、 WindowsMediaPlayerがあれば読み出すことが出来る。 ※というか、WindowsMediaPlayerが利用している DirectShowAPIやMCI-APIが知っている。
また、データフォーマットとしてのMPEGやWMVは WindowsにおいてはDirectShowが展開方法を知っている。
なので、拡張子MPGやWMVのファイルについては おおよそWindowsで再生する場合には、気にする必要がない。 ※これらの拡張子で一般的じゃない、データフォーマットで保存されていたら話は別だけど。
ところが、AVIファイルの場合のフォーマットは、 そのフォーマットを解析できるためのドライバ的なソフト、 〜Codec〜が無いと、再生することが叶わない。
なので、動画の再生が出来ないときには、 どのようなコンテナに、どのようなフォーマットが詰め込まれているかを調べるため、 真空波動研などのフリーソフトがあったりもする。 →http://www.kurohane.net/
ところで冒頭で
世の中のデータファイルというのは、 ・ファイル構造 ・データフォーマット(フォーマットは書式とか形式の意味の方) に分けることが出来る。 こんな事を書いたけど、 これらの説明は別に、動画ファイルに限った話ではない。
たとえば、画像ファイルは、 BMPやjpegのコンテナがある。 BMPのコンテナは、画像の画面サイズや印刷時の大きさなどの定義がされていて、 フォーマットは色々と選べる。 通常は非圧縮DIBフォーマットで画像が格納されているけれど、 ランレングス圧縮DIBというものもあれば、JPEGを格納することだって可能だ。
そんな感じに、データのフォーマットというのは、 「ある分野のデータはこの形」とコンテナを決めて 「コンテナ内の格納データ書式」は別途定義されているわけだ。
ところで、拙作ソフトにAVI Bitrate Analyzerがあるんだけど、 これは、Codecが無くても、 AVIファイルのフレームあたりのデータサイズを出力することが出来る。
これは、何も難しい話ではなく、 AVIコンテナの中に「動画開始からnフレーム目のデータは、ファイルの何バイト目」 という情報が格納されている領域がある。 これは、動画の早送りや頭出しなどに利用されるための情報だけど、 この拙作ソフトはそれを、単に抽出しているだけだ。 ※なので、一部で紹介をされていてちょっと恥ずかしい限り。
|
00:26, Friday, Jul 29, 2011 ¦ 固定リンク
¦ 携帯
■コメント
■コメントを書く
※コメントの受け付けは終了しました
|
|