有馬総一郎のブログ

(彼氏の事情)

2022年03月13日 20:20:20 JST - 4 minute read - Audio Player

tsMuxeRで`AV frame too large (61774 bytes). Increase AV buffer.`とエラーが出たので、eac3toでPCMを抽出して、Audacityで再生可能な形式にエンコードした

エラー発生

友人からもらった自作Blu-rayディスクから、いつものように音声だけ抽出1しようと、 tsMuxeR2を使ったら、AV frame too large (61774 bytes). Increase AV buffer.というエラーが出た。

tsMuxeR
`AV frame too large (61774 bytes). Increase AV buffer.`というエラー

調査

初めて遭遇したエラーだ。どうも元々のデータに欠損があるとか、ディスク読取不良などで起きるっぽい3。実は確かにBlu-rayディスクを読み込んだ時にセクターエラーが出てたんだよね。レンズクリーナーを使っても改善しないので、放置した。

ともあれ、 tsMuxeR錯誤訊息AV frame too large (65165 bytes). Increase AV buffer.-HD.Club 精研視務所 High Definition Vision Club - Powered by Discuz!などを見ると、 Pcm2Tsmuを使え、とあるが、これは PCM を修正するツールだ。

PCMを抽出

更に Love, day after tomorrow: How to deal with tsMuxeR’s AV frame too large error.を見ると

and I think eac3to is also able to do the job.

eac3toが紹介されてたので使ってみる。すると m2ts ファイルから PCM 4を抽出することが出来た。

eac3to
Output Folder(出力先)はUser defined(ユーザ定義)にする
eac3to
`The source file seems to be damaged (sync byte missing).`という警告が見える

それを Pcm2Tsmuでドラック&ドロップすると、変換ファイル5が出来た。次に、その変換ファイルを tsMuxeRを使って Demux すると今度は上手く Wave ファイルが出来た。しかし、再生すると、再生速度とかおかしい、正しく再生されない。

tsMuxeR
変換前のファイルは`Unsupported format`というエラー出てDemux出来ない

Audacityで読み込む

今度は、変換 のPCMから Audacityを使って読み込ってみることとする。

Audacity
メニューから ファイル→取り込み→ロー(Raw)データの取り込み を選択

eac3toで読み込んだときに2: RAW/PCM, Japanese, 2.0 channels, 24 bits, 48kHzと表示されていたので、以下のように読み込ませる。

エンコーディング バイト順序 チャンネル オフセットの開始 インポートするために サンプリング周波数
Signed 24-bit PCM ビックエンディアン 2チャネル(ステレオ) 0バイト 100% 48000Hz
Audacity
ロー(Raw)データの取り込み

バイト順序は、エンディアンなし、リトルエンディアン、既定のエディアン、と他は駄目だった。とりあえず、このケースだとビックエンディアンで読み込むと上手くいった。ここが間違っていると、再生してもサァーというノイズしかしない。

Audacity
正常に読み込めているケース
Audacity
正常に読み込めてない異常なケース

そして、 Audacityでラベル毎にファイル分割・変換するに記載したとおりにflac変換した。再生してみたところ概ね、問題ない。読取不良したところで何かしら、不具合が生じているだろうが、そこまで気になるレベルではなかった。

脚注にも書いたが、タイトルのようなエラーメッセージが表示された場合、一番の解決方法は、ディスクを再リッピングしてエラーが出ないようにすることだ。リッピングや元々のデータに欠損がある場合は、この方法で、それなりに音声データを抽出できる。


  1. さあ、タイナカサチよ、これであなたもハイビジョンの世界にいらっしゃいに、Blu-rayから音声抽出のしかたについて書いてある。 ↩︎

  2. Nightlyの 2022-02-27 でも、安定板の 2.6.12 両方、駄目。 ↩︎

  3. なので、一番の解決方法は、ディスクを再リッピングしてエラーが出ないようにすることだ ↩︎

  4. output formatを何にしても結局PCMで出力されるが… ↩︎

  5. 変換前のPCMファイルを tsMuxeRしようとすると、Unsupported format: Can't detect stream type. File name: "E:\Downloads\Software\eac3to334-UsEac3to133\UsEac3to133\output\00002.pcm"というエラーが吐かれる。 ↩︎