
WEBMをテキストに変換する方法(ブラウザ録画)2026
Summarize this article with:
ブラウザ録画、Google Meetのダウンロード、Discordクリップ由来のWebMファイルはOpus音声を含んでおり、正確に文字起こしされます。ただし、MediaRecorder製のWebMは再生時間メタデータが欠落・誤記されていることが多く、クォータや進捗管理のためにファイル長を調べるツールを混乱させる可能性があります。再エンコード不要の高速リマックスで修正できます。ファイルが正常になれば、アップロード手順は2分以内で完了します。
WebMファイルをネイティブ対応の文字起こしツールにアップロードし、話されている言語を選択して待つだけです。30分のGoogle Meet録画であれば、通常2〜4分で文字起こしが返ってきます。これが短い答えです。長い答えでは、MediaRecorder製のWebMに信頼できる再生時間メタデータが含まれないことが多い理由、アップロード時にそれが問題になる理由、そしてアップロード前に数秒で修正する方法を解説します。

あなたのWebMはどこから来たのか
WebMはGoogleが開発したオープンでロイヤリティフリーのコンテナ形式です。ブラウザのデフォルトはほぼ常にWebMであるため、目にするWebMファイルの大半は手作業で作られたものではなく、レコーダーから出力されたものです。
最も一般的なソース:
- Google Meetのダウンロード。 Meetは録画をGoogle Driveに.webmファイルとして保存します。ファイルをダウンロードすると、そのWebMがあなたのマシンに保存されます。
- ブラウザボイスレコーダーとブラウザ拡張機能。 JavaScriptのMediaRecorder APIを使用するサイト(音声入力ツール、ボイスメモアプリ、Webベースの面接録音ツールなど)は、ChromeやFirefoxではデフォルトでWebMを出力します。
- Discordのクリップ。 Discordの通話中クリップ機能は、ブラウザのオーディオパイプライン経由で音声をWebMとしてキャプチャします。
- Loomの「オリジナル」ダウンロード。 Loomは再生用にMP4をストリーミングしますが、「オリジナルをダウンロード」オプションを選ぶとWebMが手に入ります。音声は同一で、WebMの方が通常小さくなります。
- YouTubeのダウンロード。 yt-dlpで最高品質を取得すると、VP9動画+Opus音声のWebMコンテナが返されることがよくあります。音声トラックだけが必要な場合は、動画ダウンロードを丸ごとスキップできるよう音声のみをリクエストしましょう。
- WebM録画に設定したOBS。 MKVやMP4ほど一般的ではありませんが、WebアップロードワークフローのためにWebMをターゲットにしているユーザーもいます。
ファイルに音声があるかどうかわからない場合は、VLCまたはFirefox(どちらもWebMをネイティブ処理できます)で開いて、音が聞こえるか確認してください。無音のファイルは文字起こしできません。
WebMファイルの中身は実際何か
WebMはEBMLバイナリ形式を使用するMatroskaコンテナの制限付きプロファイルです。コンテナレベルでは、正しい形式のWebMはSeekHead(バイトオフセットインデックス)、Infoブロック(再生時間を含む)、Tracksブロック、Cuesブロック(シーク用の時間インデックス)、そして実際のメディアデータのClustersで構成されます。
文字起こしにとって重要なのは音声ストリームだけです。2016年以降のモダンなWebMファイルであれば、その音声はほぼ常にOpusです。古いファイル(おおよそ2011〜2015年頃)ではVorbisが使われている場合があります。どちらも文字起こしには十分対応します。Opusは低ビットレートでの音声により適したコーデックです。24〜32kbpsであればOpusの音声品質は高く、AIモデルが子音で苦戦することはありません。16kbpsを下回ると、摩擦音や歯擦音("s"、"f"、"th"の音)で精度が低下することがあります。
ChromeとFirefoxは20msごとのOpusフレームを記録します。実際のエンコードビットレートはブラウザがネゴシエートした内容によりますが、ブラウザMediaRecorderの音声は通常32〜128kbpsで、Opus品質が懸念になる閾値を大きく上回っています。
WebMファイルの中身を確認するには、次のコマンドを実行します:
ffprobe yourfile.webm
音声ストリームセクションの下にあるcodec_name行を探してください。opusまたはvorbisと表示されます。
再生時間メタデータの問題(MediaRecorder製WebMに特有)
これは人が不意を突かれる唯一の問題です。ブラウザで録画されたWebMファイルには、信頼できる再生時間情報がないことが頻繁にあります。
その理由はこうです。MediaRecorder APIがチャンク単位で録音を行うとき(requestData()呼び出しかtimesliceオプションを使い、数秒より長いものについては必ずそうなる)、ブラウザは各チャンクをファイルに追記していきます。しかし、プレイヤーが全体の長さを把握し効率的にシークするために必要なInfo/Duration要素とCuesインデックスはファイルの先頭付近にあるべきものであり、ブラウザは録音が停止するまで合計再生時間を知りません。
結果として、多くのMediaRecorder製WebMファイルはInfo/Duration要素が完全に欠落していたり、再生時間としてInfinityを表示したりします。Cuesインデックスも欠けていることがよくあります。プレイヤーはClustersを読み進めて内容を把握できるためファイル自体は正常に再生されますが、ある時点までのすべてを読まずにその時点へスキップすることはできません。
文字起こしのアップロードでこれが問題になる理由: 一部のツールは、クォータ消費量を見積もるため、ファイル長ベースのプログレスバーを表示するため、または処理前のファイルヘッダーの整合性チェックのために再生時間を調べます。Infinityや0秒を報告するファイルは、音声データが完全に無傷であっても、拒否を引き起こしたりプログレス表示を止めたりすることがあります。
修正方法はリマックス、つまりすべてのストリームを新しいコンテナにコピーし、適切なメタデータを先頭に書き込むことです。再エンコードなし、品質劣化なし:
ffmpeg -i in.webm -c copy -cues_to_front 1 out.webm
-cues_to_front 1フラグは、ffmpegにメディアクラスタの前にCuesインデックスを書き込むよう指示します。これにより、プレイヤーが再生時間を判定しシークするのに必要な情報も得られます。1時間のファイルでも通常数秒で完了します。
ffmpegをお持ちでない場合は、fix-webm-durationというJavaScriptライブラリが、欠落しているメタデータセクションをファイルblobに追記することで同じ問題をクライアント側で解決します(リンクは参考資料欄参照)。
注意:WebMがMediaRecorderから直接ではなくダウンロード(Google Meet、Loom、YouTube)で入手したものであれば、適切なメタデータを書き込むサーバーサイドのエンコーダーによってマルチプレックスされている可能性が高いです。再生時間の問題はブラウザ内MediaRecorderの出力に特有のものです。
WebMと類似フォーマットの早見表
| 形式 | 音声コーデック | コンテナ系統 | 再生時間メタデータの信頼性 | 典型的なソース |
|---|---|---|---|---|
| WebM(MediaRecorder) | Opus | Matroska/EBMLサブセット | 欠落しがち、アップロード前にリマックス | ブラウザ録画、Discord、音声アプリ |
| WebM(サーバーマルチプレックス) | Opus | Matroska/EBMLサブセット | 信頼できる | Meetダウンロード、Loomオリジナル、YouTube |
| MP4 | AAC(通常) | ISOBMFF | 信頼できる | 万能:スマホ、カメラ、編集ソフト |
| MKV | 各種(Opus、AAC、AC3...) | フルMatroska | 信頼できる | OBS、メディアアーカイブ、マルチトラック動画 |
| AVI | MP3またはPCM | RIFF | 信頼できる(旧規格) | レガシーなビデオカメラ、2015年以前の画面録画ツール |
他のコンテナでのフォーマットのトレードオフについては、MKVをテキストに変換する方法とMP4をテキストに変換する方法のガイドが類似の状況を扱っています。文字起こしパイプラインにとってどのフォーマットが重要かを幅広く知りたい場合は、文字起こしに対応している音声フォーマットをご覧ください。
WebMのアップロードと文字起こし
ステップ1:音声の有無を確認
VLCまたはFirefoxで開き、音が聞こえることを確認します。録音が無音の場合、録音時にマイク権限が拒否されていました。権限を許可して再録音してください。
ステップ2:MediaRecorder由来の場合は再生時間メタデータを修正
ファイルがブラウザレコーダー由来(ダウンロードではない)の場合は、上記のリマックスを実行します。数秒で完了し、アップロード拒否の可能性を回避できます。
音声に加えて高解像度の動画トラックが含まれているせいでファイルが大きい場合は、アップロード前に動画を取り除きます:
ffmpeg -i in.webm -vn -c:a copy audio.webm
1080pのWebMでの1時間の会議は1.5GBになることがあります。音声だけなら20〜40MBです。アップロード時間は大幅に短縮されます。
ステップ3:アップロード
ConvertAudioToTextは、事前変換なしでOpusまたはVorbis音声のWebMをネイティブに受け付けます。会議ボットを通話に参加させずにきれいな文字起こしだけが必要なら、WebMを直接アップロードしてください。
ツールがWebMを拒否する場合の代替手段は:
ffmpeg -i video.webm -vn -c:a libmp3lame -b:a 192k audio.mp3
これで音声を抽出し、1パスでMP3に変換します。
ステップ4:言語を設定
自動検出に頼らず、話されている言語を明示的に指定してください。明示的な選択は、短いクリップや背景ノイズ・訛りのある録音で一貫して精度を向上させます。
ステップ5:確認とエクスポート
ブラウザ録画のWebMには技術的なコンテンツが含まれがちです:画面録画、ウォークスルー、ハウツー解説など。確認の際は、製品名、バージョン番号、コマンドライン構文、URLに細心の注意を払ってください。ドキュメント用にはプレーンテキストで、動画に字幕を戻す予定がある場合はSRT/VTTでエクスポートします。
ソース別の詳細ノート
Google Meetのダウンロード
Meetの録画はGoogle Driveから.webmとしてダウンロードされます。サーバーでマルチプレックスされているため、再生時間メタデータは存在し信頼できます。リマックスは不要です。音声品質は通話中にネゴシエートされたコーデックによりますが、通常は文字起こしに十分な品質です。
Loom
Loomの「オリジナルをダウンロード」ではWebMが、標準のダウンロードではMP4が手に入ります。どちらにも同じ音声が含まれており、WebMの方が通常小さくなります。文字起こし目的のアップロードであれば、どちらでも機能します。長いLoom録画については、YouTube文字起こしジェネレーター /tools/youtube-transcript-generator を使えば、ダウンロード一切なしでLoomの共有URLから直接文字起こしを取得できます。
ブラウザボイスレコーダー
getUserMediaベースのアプリ(音声入力ツール、面接プラットフォーム、ボイスメモ拡張機能)による録音はMediaRecorderの出力であり、したがって再生時間メタデータが欠落している可能性が最も高いものです。問題に遭遇したらリマックスの手順を適用してください。
YouTubeのWebMダウンロード
yt-dlpが最良のフォーマットを取得すると、WebMコンテナに入ったVP9+Opusが一般的です。YouTubeからの音声品質は128kbps Opus(Premiumアカウントではさらに高い)です。YouTubeコンテンツからの文字起こしには、YouTube文字起こしジェネレーターがダウンロードステップなしで対応します。
よくある問題
ツールがWebMに対して「非対応フォーマット」と報告する。 ffmpegでMP3に変換する(ステップ3のコマンド)か、WebMをネイティブ処理できるツールに切り替えてください。
再生時間が0またはInfinityと表示される。 MediaRecorderのメタデータ欠落問題です。-cues_to_front 1でリマックスしてください。上記セクションを参照。
一部のツールでVP9可変フレームレートエラーが出る。 一部のツールは、音声だけが必要な場合でも、動画デコードパスでVP9の可変フレームレートに失敗します。先に動画を取り除き(ffmpeg -i in.webm -vn -c:a copy audio.webm)、音声のみのファイルをアップロードしてください。
低いOpusビットレートで結果が悪くなる。 元の録音が非常に低いビットレート(16kbps未満)だった場合、子音の滲みはファイルに焼き付けられており、後処理では復元できません。次回はレコーダーに高いビットレートを使うよう依頼してください。既存のファイルについては、発音の難しい子音で精度がやや低下することを受け入れましょう。
処理すべきWebMファイルが大量にある場合の、従量課金(1分あたり)と定額サブスクリプションの比較については、文字起こし料金モデルの解説をご覧ください。大量の会議録画を処理している場合は、会議文字起こしツールが一括アップロードに対応しています。
よくある質問
文字起こしにおいて、WebMの音声はMP4の音声より優れていますか?
両方がOpusを使用していれば、品質は実質的に同一です。OpusはAACよりも効率的で、64kbpsのOpusファイルは多くの場合、音声明瞭度において96kbpsのAACファイルに匹敵またはそれ以上です。コンテナ(WebM対MP4)は文字起こし精度に影響せず、影響するのは音声コーデックとビットレートです。
WebMファイルを無料で文字起こしできますか?
はい。ConvertAudioToTextの無料プランはWebMファイルを受け付け、10分の文字起こし時間を提供します。これは毎月ではなく、サインアップ時に1回だけ付与されます。ブラウザの音声録画や短いGoogle Meetクリップなら通常余裕で収まります。より長いファイルについては、Proプランが月額$9.99で無制限の文字起こしを提供します。
WebMファイルの再生時間が間違って表示されたり、まったく表示されなかったりするのはなぜですか?
MediaRecorder製のWebMファイルは、Info/Duration要素とCuesインデックスを省略していることがよくあります。ファイル自体は有効で正常に再生されますが、ファイル全体を解析するまで再生時間の報告は信頼できません。ffmpeg -i in.webm -c copy -cues_to_front 1 out.webmを実行してリマックスし、再エンコードなしで適切なメタデータを追加してください。
WebMに音声トラックがない場合はどうなりますか?
録音時にマイク権限が拒否されていた場合、音声トラックは空か存在しません。文字起こしするものがありません。マイクアクセスを許可して再録音してください。Chromeでは、録音中にアドレスバーにマイク権限インジケーターが表示されます。
参考資料
- Chromeが生成するWebM動画における再生時間について、Addpipe、MediaRecorderの再生時間メタデータ分析
- MediaRecorder API、MDN Web Docs、ブラウザのデフォルトコーデックとチャンク録音の挙動
- クロスブラウザ互換メディアの録音、Opusフレーム長、ブラウザ間のビットレートデフォルト
- fix-webm-duration、GitHub、欠落メタデータ対応のクライアントサイドライブラリ
- WebMコンテナガイドライン、WebMProject、SeekHead/Cues/Duration要素仕様
- Google Meet録画ヘルプ、Google Meetの録画形式とDriveへの保存
- ConvertAudioToText料金、無料プラン(サインアップ時に10分を1回)、Pro(月額$9.99)、Business(年間契約で月額$47.99)
- Otter.ai料金、無料300分/月、Pro 月額$16.99、Business 月額$30/ユーザー(2026年7月確認)
Try transcription free
Convert any audio or video to clean, unwatermarked text — speaker labels, timestamps, and AI summaries included. First 10 minutes free, no account.
Related Articles
How to Add Timestamps to a Transcript
Learn how to add timestamps to a transcript with an audio-to-text tool, then export timestamped SRT or VTT subtitle files for easy navigation and editing.
How to Transcribe a Conference Talk to Text
Learn how to transcribe a conference talk or keynote to text, label speakers, and export SRT, VTT, or TXT using a straightforward upload or URL workflow.