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 のストリームを省きます。そのため、値が小さくなっている場合は、あるストリームが失われていることを意味することがあります。