音声コーデックOpusで録画した動画ファイルはブラウザで再生するのが一番手軽かもしれない

Share
音声コーデックOpusで録画した動画ファイルはブラウザで再生するのが一番手軽かもしれない
Ultramaxって特徴的な色だよね。コントラストも高くてどぎまぎ。

互換性を意識しながら設定

たまぁに画面録画をすることがあり、先日もコーデックは何にしようかと答えのない選択肢にうーんと頭を抱えていた。

いろいろな問題を解決しているおニューなコーデックを使いたいのだけれど、変なコーデックを使うと再生できないんだよねー。

とりあえず理屈ではこうやっておこうかなと一応考えが固まった。

  • 動画コンテナとしてはHybrid MP4(つまり内部的にはFragmented MP4を使って、外から見れば普通のMP4として使えるので互換性もよき)
  • 音声コーデックはOpus。ビットレートは160 Kbpsに設定するので劣化どうこうというよりかはファイルサイズの削減が狙い。

WindowsだとOpusだめっぽい?

ここで問題!動画コンテナはMP4なので当然Windows11標準のMedia Playerで開けるのだが、音声が再生されない。エラーポップアップも出てきて、再生無理といわれる。

たしかにWindowsのMedia Playerがサポートするコーデックのリストに、Opusの名はない。

Media Player のコーデック - Microsoft サポート
コーデックを使用すると、さまざまな形式のオーディオファイルとビデオファイルを再生できます。 Media Player では、さまざまなコーデックがサポートされています。 ほとんどは箱の外に含まれています。いくつかの追加のコーデックは、Microsoft Store からインストールできます。

これは困ったと思い、古き良きAACにコーデックを切り替えようと一時は思った。

いやいやOpusを使おうぜ!ブラウザで再生すればいいじゃん

が、しかし!

現代のWindowsユーザーが実際に動画を再生する環境は、この公式リストよりもはるかに多様で複雑。

友達に動画ファイルを渡したときに、友達はWindows Media Playerで開くだろうか。多くの場合、ブラウザで開いたり、既にインストールされている他のメディアプレイヤーを使用したりするはず。

現代的な観点から見ると、むしろブラウザでの対応状況の方が重要かもしれないってことです。

ウェブ動画コーデックガイド - ウェブメディア技術 | MDN
このガイドでは、ウェブ上で使用する可能性の高い、または使用を検討している動画コーデックを紹介し、その機能の概要と互換性や有用性に関する懸念、そして自分のプロジェクトの動画に適したコーデックを選ぶためのアドバイスを提供します。

意外に知られていない事実ですが、ブラウザは現代において最も普遍的なメディアプレイヤーとして機能しています。WebベースのアプリケーションやサービスがOpusを標準採用している背景には、この状況があります。

パソコンでは動画ファイルをChromeやEdgeといったブラウザーにドラッグアンドドロップするだけで開けちゃいます。というか、視聴できちゃいます。

言われてみれば、YouTubeだってTwitchだって動画をストリーミングしているというだけで、動画を扱っているのはブラウザーです。画像や音声をブラウザーで開けるのと同様、当たり前すぎて気づきませんよね。

ということで、Chrome、Firefox、Edgeといった主要ブラウザは、すべてOpusを標準サポートしています。

Opus音声フォーマット | Can I use... HTML5、CSS3などのサポートテーブル

つまり、友達はファイルをブラウザにドラッグ&ドロップするだけで、追加ソフトウェアなしに再生できるということです。

実際YouTubeも互換性のためにAACはあるものの、配信の標準としてOpusを使っています。

ということで、録画時は音声コーデックとして安心してOpusを使用し、ファイルサイズと効率性の恩恵を受けようかなと思います。他人との共有が必要になった場合には、あんまり気にずそのまま渡して、標準ソフトで開けなさそうならブラウザで開くことをおすすめしてみて、それでもだめなら、FFmpegでAACに変換しようかなあと思います。

Read more

青空文庫のParser

青空文庫のParser

青空文庫のParserを作ってます。 GitHub - P4suta/aozora: Pure-functional Rust parser for 青空文庫記法 (Aozora Bunko notation): ルビ, 傍点, 縦中横, 外字, 返り点, indent containers, page breaks.Pure-functional Rust parser for 青空文庫記法 (Aozora Bunko notation): ルビ, 傍点, 縦中横, 外字, 返り点, indent containers, page breaks. - P4suta/aozoraGitHubP4suta Rustで作ってますが、配布物はcargoのほかにnpm/pypiでも入手できます Documentation * Playground — try it in

By Sakashita Yasunobu

イケイケなWinスクショアプリを作りました

パソコンのスクショってなんというか、地味というか、撮ってそのままだと何とものっぺりしていますよね。 特にWindowsだとMacっぽい丸っこい感じとかもなく、無骨だなあと。 ということで、それっぽくおしゃれな背景や角丸を付けておしゃれに撮影をしてくれるスクショアプリを作りました。 GitHubで公開しています。 GitHub - P4suta/Snaply: Snaply — a modern, clean-architecture Windows screenshot tool (WinUI 3 / .NET 10)Snaply — a modern, clean-architecture Windows screenshot tool (WinUI 3 / .NET 10) - P4suta/SnaplyGitHubP4suta ウィンドウ・領域選択・スクリーンのキャプチャができます。 タッチスクリーンなどにも対応しているはずです。 撮影をすると、クリップボードにコピーされ、フォルダーへの保存もされます。

By Sakashita Yasunobu
Find My Files

Find My Files

Windowsにおける爆速ファイル検索アプリの定番といえば、Everythingです。 voidtoolswebhost2 その高速さの理由は、NTFSの仕組みをうまく活用していることにあります。Windowsで一般的に使われているNTFSには、ファイル情報を管理するマスターファイルテーブル(MFT)と、ファイルシステムの変更履歴を記録するUSN Journalがあります。Everythingはこれらを利用することで、初回に高速にファイル一覧を構築し、その後はUSN Journalを監視してリアルタイムにインデックスを更新しています。そのため、数百万ファイル規模の環境でも非常に高速な検索を実現しています。 もちろん、単純にファイル名やパスを保持するだけでは、大量のメモリを消費してしまいます。また、数百万件ものファイルから一瞬で目的のものを見つけるためには、メモリ効率の高いデータ構造や高速な検索アルゴリズムなど、さまざまな工夫が必要になります。 このように、Everythingは見た目こそシンプルですが、中身はかなり高度なことをやっているソフトウェアです。 なお、Everyth

By Sakashita Yasunobu