MediaRecorder.mimeType

mimeType は読み取り専用のプロパティで、 MediaRecorder オブジェクトを作成する際に指定された MIME メディア種別、または指定されていない場合は、ブラウザーによって選ばれたメディア種別を返すものです。これは、記録されたデータのすべてをディスクに書き込んだ結果のファイル形式です。

指定されたコンテナーで、すべてのコーデックが対応しているわけではないことに注意してください。指定されたメディアコンテナーで対応していないコーデックを使ってメディアを書き込んだ場合、そのファイルを再生しようとすると、確実に動作しないことがあります(まったく動作しないわけではありません)。ブラウザー間でのコンテナーとコーデックの対応については、メディア種別と形式ガイド を参照してください。

メモ: 「MIME タイプ」という用語は、公式には歴史的なものと見なされています。これらの文字列は、正式にはメディア種別と呼ばれるようになりました。 MDN Web Docs のコンテンツでは、この用語を互換的に使用しています。

記録されたメディアの形式を記述する MIME メディア種別(文字列)。この文字列は、メディアレコーダが使用するコーデックとコーデック構成の詳細を示す [codecs 引数] (/ja/docs/Web/Media/Formats/codecs_parameter)を含んでいてもかまいません。

メディア種別の文字列は、インターネット番号割当機構(IANA)によって標準化されています。定義されているメディア種別の文字列の公式な一覧は、IANA サイトの記事 Media Types を参照してください。メディア種別について、またそれらがウェブコンテンツやウェブブラウザーでどのように使用されているかについてはメディア種別も参照してください。

js
if (navigator.mediaDevices) {
  console.log("getUserMedia supported.");

  const constraints = { audio: true, video: true };
  const chunks = [];

  navigator.mediaDevices
    .getUserMedia(constraints)
    .then((stream) => {
      const options = {
        audioBitsPerSecond: 128000,
        videoBitsPerSecond: 2500000,
        mimeType: "video/mp4",
      };
      const mediaRecorder = new MediaRecorder(stream, options);
      m = mediaRecorder;

      m.mimeType; // would return 'video/mp4'
      // …
    })
    .catch((error) => {
      console.error(error.message);
    });
}

14 行目を以下に変更すると、 MediaRecorder は動画に AVC Constrained Baseline Profile Level 4、音声に AAC-LC (Low Complexity) を使用しようとします。これは、モバイルやその他リソースに制約のある状況での使用に有益なものです。

js
mimeType: 'video/mp4; codecs="avc1.424028, mp4a.40.2"';

この設定がユーザーエージェントに受け入れられると仮定すると、後で m.mimeType が返す値は video/mp4; codecs="avc1.424028, mp4a.40.2" となるでしょう。

仕様書

Specification
MediaStream Recording
# dom-mediarecorder-mimetype

ブラウザーの互換性

BCD tables only load in the browser

関連情報