コラム

【ちょこっと豆知識】BWFって何?

BWFファイルはWAVファイルの一種

映像コンテンツ制作の技術にかかわる皆様に、ちょっと業務に役立つ知識などをお伝えする【ちょこっと豆知識】。今回は、BWFについて解説します。

古くから音声ファイルのやりとりでは、マイクロソフトが開発したwavファイルが利用されていました。ですが、元々タイムコードなどの放送で用いるために必要な情報を付与できませんでした。

そこでwavファイルと互換性を保ちつつ、開始タイムコードやメタデータなどを付与できるように拡張情報を付与したのがBWFです。日本では、JPPAがBWFを元に日本語メタ情報に対応したBWF-Jを規定し、公開しています。

BWFはあくまでwavファイルですので、拡張子も原則wavです。ですのでファイルが、ただのwavなのか、BWFのwavなのかは専用ソフトを用いないと区別がつきません。

BWFファイルはWAVファイルの一種

また、タイムコードというと、01:00:00;00といったフレーム単位のタイムコードを思い浮かべるかもしれません。しかし、音声には元々フレームという概念はありませんので、BWFで規定されている開始タイムコードは、”音声サンプル単位”です。つまり、48kHzで、1hスタート(純粋に3,600秒とすると)の開始タイムコードの値は、

48,000 x 3,600 = 1億7280万

という数値になります。(下記画像の①)

そして、ここでも問題になるのが、日本や米国などで運用されている29.97fpsのフレームレート問題。

以前の【ちょこっと豆知識】「1フレームの音声サンプル数」でご紹介したように、29.97fpsにおける1フレームの音声サンプル数は整数ではありません。小数点以下の端数処理はソフトによって異なると考えられますので、サンプル単位の誤差が生まれ、結果1フレームずれるといったことが発生します。

さらに、タイムコード 01:00:00;00(ドロップフレーム)をフレーム数に直すと 107,892 フレームであり、正確には 3599.9964秒となります。純粋な3,600秒とは3.6msほどの乖離があります。(下記画像の②)そして、

48,000 x 3599.9964 = 1億7279万9827.2

1億7279万9827.2サンプルが開始タイムコード 01:00:00;00 のスタートということになります。(下記画像の③)

BWFの開始タイムコードは音声サンプル数で表現

BWFを生成するソフトがきちんとフレームレートやドロップフレームを意識したタイムコードを元に出力していないと、フレーム境界から数〜数十msのズレが生じる原因になる場合があります。

AS MXF Audio Inserterでは、BWFタイムコードから映像のフレームレートを元にフレーム数を計算し、フレーム境界に合わせる処理を入れています。

本コラムは、2026年5月12日の公式Xの投稿別ウインドウを開くをもとに再構成したものです。

Loading...

ユーザーメモ