用語集

NB ストリーム数 とは何ですか?

ストリーム数 とは、メディアファイル内に含まれるストリームの本数のことです。ストリームとは、映像、音声、字幕などコンテンツを構成する個別の要素1つを指します。

nb-streams

NB Streams は、メディアファイル内のストリーム数のことです。NB は「number(数)」の略なので、値が 2 の場合、そのファイルには 2 個のストリームが含まれているという意味です。NB Frames フィールドも、1 つのストリーム内のフレーム数に対して同じ略記を使用します。

メディアファイルは、1 つ以上のストリームとメタデータをまとめて保存するコンテナです。このフィールドでいうストリームは、オンライン動画やライブ配信のことではありません。ここでのストリームとは、画像や音声など、コンテンツを構成する 1 つの要素のことです。

ストリーム数 とは

このフィールドは、メディアファイルの読み書きを行うソフトウェアプロジェクト FFmpeg に由来します。FFmpeg には 5 種類のストリームタイプがあり、NB Streams はそれらをすべて合計した数です。

  • video: 動画や、カバーアートのような静止画像
  • audio: 音声。例: 第 2 言語の音声や解説音声
  • subtitle: 視聴者向けのテキスト。例: 1 つの言語で書かれた字幕
  • data: 画像や音声、字幕以外の情報
  • attachment: コンテナ内にそのまま入っているファイル。例: 字幕用のフォントファイル

NB Streams 自体にはタイプ名は含まれません。各ストリームのタイプを確認するには、そのストリームの Codec Type を参照してください。

値の見え方

この値は単位のない整数です。FFmpeg プロジェクトのファイルリーダーである ffprobe は、nb_streams=3 のような行を出力します。この数値は、ファイルに何が含まれているかによって変わります。

  • 1: ストリームが 1 つだけのファイル。例: 画像を含まない FLAC の楽曲
  • 2: 画像ストリーム 1 つと音声ストリーム 1 つを持つ動画、または 1 つの添付画像を持つ楽曲
  • 3 以上: 追加の音声ストリーム、字幕ストリーム、または添付ファイルを含む動画

各ストリームには 0 から始まるインデックス番号があります。したがって、3 つのストリームを持つファイルのインデックスは 0、1、2 です。

ファイル形式によって、ストリームの数や種類が制限されることがあります。たとえば、FFmpeg は FLAC ファイルにはちょうど 1 つの音声ストリームを書き込み、画像を追加することができます。対照的に、MKV 仕様では、7 つの音声ストリームを含むサンプルファイルが示されており、それらはトラックと呼ばれます。

どのファイルがそれを持っているか

NB Streams は、MP4、MOV、AVI、MKV、MP3、FLAC、WAV など、FFmpeg が開くことのできる音声・動画ファイルで確認できます。ffprobe リーダーは画像ファイルも開きます。FFmpeg は通常、1 枚の画像を 1 つのビデオストリームとして扱うため、ffprobe は 1 と出力します。

一部の写真では、ffprobe が 1 より多いストリーム数を出力することがあります。HEIC 写真は、画像を複数のタイルからなるグリッドとして保存できます。FFmpeg は各タイルをストリームとして一覧表示できるため、2×2 タイルのグリッドであれば、少なくとも 4 つのストリームとして数えられます。

FFmpeg には、PDF や DOCX などのドキュメント形式を読むためのリーダーがありません。そのため、ドキュメントでは通常このフィールドは表示されません。

値の由来

ファイル自体には「NB Streams」という名前のフィールドは存在しません。FFmpeg がファイルを開き、各ストリームを見つけてリストに追加します。NB Streams は、そのリストに含まれる項目数です。

それが重要な理由

ストリーム数 とはの値を見ることで、ファイルに何が含まれているかを素早く確認できます。値が 1 の動画ファイルは、通常は映像か音声のどちらかが欠けています。

予想よりも大きな値は、追加の音声トラック、字幕、画像、添付ファイルが含まれている可能性を示します。再生ソフトは通常、それらの一部のストリームだけを選択して再生するため、再生中に他のストリームに気付かないことがあります。

ファイルを変換すると、この値が変わる場合があります。追加オプションを指定しない場合、ffmpeg プログラムは各タイプから 1 つずつストリームを選び、data と attachment のストリームを省きます。そのため、値が小さくなっている場合は、あるストリームが失われていることを意味することがあります。

メタキー