« 「DivX 7」に入っているH.264やAACのデコーダーフィルター等について | トップページ | 「H.264/AVCのFLV」を「FLV5」と呼んではいけない理由 »

2009年10月22日 (木)

「映像がH.264/AVCでエンコードされたFLV」を「FLV5」と呼ぶのは間違い

2007年12月3日にリリースされた
  「Flash Player 9 Update 3 (v 9.0.115.0)」
から、FLV(Flash Video)コンテナでも、映像用のH.264/AVCコーデックと、
音声用のAACコーデックがサポートされました。
例えばYoutubeでURLの最後に「&fmt=34」又は「&fmt=35」をつけると、
  「映像がH.264/AVC、音声がAACでエンコードされた、FLVコンテナのファイル」
が落ちてきます。
このファイルを真空波動研で見ると、以下のようになります。

   640x480 AVC/H.264 Main @ 3 29.97fps 802.52kb/s
   AAC 44.10kHz 16Bit 2ch 126.10kb/s
   [FlashVideo] 00:00:29.929 (29.929sec) / 3,514,962Bytes
   Sinku.DLL 090902

   ※ちなみに、この形式のFLVファイルは、ニコニコ動画にはアップロードできません。
     ニコニコ動画にアップできるH.264/AVC+AACの動画は、MP4コンテナです。
     MP4コンテナとFLVコンテナは、互いに全く異なるものです。混同しないようにしましょう。

さて、問題はここから。
どうやら、上のような形式のFLVファイルを「FLV5」と呼んでる人が結構いるようです
ググればそういう記事が結構出てきますし、GOMプレイヤーのサポートページなんかでもそう書かれてますね。

この呼び方は明らかに間違っているので、やめたほうがよいと思います。


後述しますが、「FLV5」と言った場合、全く別のものを指すことがあります。

 
おそらく、「FLV5」という間違った呼び方が広まってしまったのは、
Wikipedia(日本語版)の「Flash Video」の項目に、

    Flv5_wiki_2

という間違った記述があるのが原因だと思われます。
英語版のWikipediaの「Flash Video」の項目を見ると、
「FLV1」「FLV4」「VP6F」という表現は出てきますが、「FLV5」という表現は全く出てきません。
つまり間違った認識が広まってるのは日本だけってことになると思います。
近いうちに修正したいところですが、Wikipediaって編集したことないや・・・。

とりあえず間違っていると述べた根拠とか、そもそも「FLV1」「FLV4」とかいう
表記はなんなのかといった内容をまとめてみたのですが、なんだか長くなってしまったので、
このエントリでは先にまとめの概要だけを書いてみます。
もう少し細かい内容については、別のエントリでまとめようと思います。

---------------------------------------------------------------------
 「FLV1」「FLV4」といった呼び方は一体なんなのか。
 また、何故H.264/AVCのFLVを「FLV5」と呼んではいけないのか。

---------------------------------------------------------------------

 ●FLVの仕様を決めているのはAdobe社だが、
   「FLV1」「FLV4」「VP6F」「VP6A」といった呼び方を決めたのはAdobe社ではない。

 ●「FLV1」「FLV4」というのはFLVのバージョンを表すものではなく、
     「FLVをDirectShowなどで再生する場合に
      映像コーデックを識別するためにつけられた
      便宜的なFourCC(Four Character Code)」
   のことである。「VP6F」「VP6A」についても同様。

 ●FLVで利用される「Sorenson H.263(Sorenson Spark)」コーデックについては、
   他のH.263コーデックとは少し仕様が異なるため、DirectShowなどで再生するためには
   新たに専用のFourCCを用意する必要があった。それが「FLV1」である。

 ●通常のVP6 VFWコーデックでは「VP60」「VP61」「VP62」というFourCCが使われており、
   FLVで利用されるVP6コーデックはそれとほぼ同等のものだが、
   おそらくはVP6コーデックの仕様に起因する理由から、
     「FLVコンテナでVP6コーデックを使う場合は、
      映像を上下反転させたVP62の映像ストリームを格納する」
   という決まりになっている模様。
   したがって、FLVから取り出した映像ストリームに「VP62」というFourCCをそのままつけて
   デコードしてしまうと、上下逆さまのまま再生されてしまう。
   これでは困るということで、上下を正しく再生するために新たなFourCCを用意する必要があった。
   それが「FLV4」や「VP6F」である。
   また、「VP6A」は、FLV仕様で規定されている
     「On2 VP6 with Alpha Channel」 (アルファチャンネルつきのVP6)
   のために用意されたFourCCである。

 ●H.264/AVC映像コーデックには、既に「AVC1」というFourCCが規定されている。
   H.264/AVCの場合は、VP6の場合とは違って上下が反転することもないため、
   FLVでもそのFourCCをそのまま使えばよい。
   つまり、FLVのH.264/AVCのために新たなFourCCを用意する必要はない。
   したがって、H.264/AVCのFLVを「FLV5」とする規定はどこにも存在しない。

 ●VP6コーデックを開発したOn2社の製品である「On2 Flix Pro」に含まれている
   「On2 Flv Splitter Filter」では、以下のようなFourCCを使っている。

On2 Flix Pro v8.545(Demo版)に付属している
「On2 Flv Splitter Filter」が対応している
FLVのコーデックIDと、そのFourCC
FLV規定の
CodecID
コーデック名FourCC
1 JPEG (currently unused)
2 Sorenson H.263 FLV1
3 Screen video FLV3
4 On2 VP6 FLV4
5 On2 VP6 with alpha channel  FLV5
6 Screen video version 2 未対応
7 AVC 未対応

   この表のとおり、On2 Flix Proでは、
   「FLV5」は「On2 VP6 with Alpha Channel」のFourCCとして使われている。

 ●結論
   「H.264/AVCのFLV」を「FLV5」と表現してはいけない。
   もし「FLV5」という表現を使うなら、
      「On2 VP6 with Alpha Channel のFLV」
   を表すほうが正しいと言えるが、混乱を避けるためにも
   「FLV5」という表現はなるべく使わないほうが望ましいと思う。

色々と調べた上での結論ですが、FLV1,FLV4の命名経緯については具体的な情報が見つからなかったので推測です。
例によって、間違っている部分があれば指摘をお願いします。

|

« 「DivX 7」に入っているH.264やAACのデコーダーフィルター等について | トップページ | 「H.264/AVCのFLV」を「FLV5」と呼んではいけない理由 »

コメント

こんにちは
調べ物をしていてこのページにたどり着きました。
FLV(H264/AAC)をFLV5と呼称するのは誤りというのはわかりましたが、ではなんと呼ぶのでしょう?
flv5という規定はないようですが、おそらくavc1も現在h264/avc(mp4)の事を指すと思うので、それも違うと思いました。
少ない情報の中あえて情報開示されているようでしたので、その辺を明記された方が情報として役に立つ物と思いましたので書き込みさせていただきました。

投稿: | 2012年2月 9日 (木) 00時16分

>ではなんと呼ぶのでしょう?

明確な呼び方は見当たらないようです。
「AVC1」はH.264/AVCのFourCCの1つですが、FLVのコーデック規定では「AVC」という表記が使われています。

この記事の続きである
  「H.264/AVCのFLV」を「FLV5」と呼んではいけない理由
  http://goldenhige.cocolog-nifty.com/blog/2009/10/h264avcflvflv-1.html
の最後に
  「AVC-FLVとでも呼んだほうがいいかもしれませんね」
と書きましたが、これは私が勝手に書いただけのものなので
一般の場所でこう書いても「何それ?w」と言われるだけだと思いますw

動画の話をする場合、コーデックだけでなくコンテナを明示するのも重要ですから、
  「映像コーデックがAVC(H.264)のFLV」
でよいのではないかと思います。
もっと簡単な表現方法があれば便利ですが、見つからない以上仕方ないかなあと。

投稿: 金の髭 | 2012年2月12日 (日) 18時05分

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: 「映像がH.264/AVCでエンコードされたFLV」を「FLV5」と呼ぶのは間違い:

« 「DivX 7」に入っているH.264やAACのデコーダーフィルター等について | トップページ | 「H.264/AVCのFLV」を「FLV5」と呼んではいけない理由 »