エラー発生
友人からもらった自作Blu-rayディスクから、いつものように音声だけ抽出1しようと、
tsMuxeR2を使ったら、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を抽出することが出来た。
それを Pcm2Tsmuでドラック&ドロップすると、変換ファイル5が出来た。次に、その変換ファイルを tsMuxeRを使って Demux すると今度は上手く Wave ファイルが出来た。しかし、再生すると、再生速度とかおかしい、正しく再生されない。
Audacityで読み込む
今度は、変換 前 のPCMから Audacityを使って読み込ってみることとする。
eac3toで読み込んだときに2: RAW/PCM, Japanese, 2.0 channels, 24 bits, 48kHz
と表示されていたので、以下のように読み込ませる。
エンコーディング | バイト順序 | チャンネル | オフセットの開始 | インポートするために | サンプリング周波数 |
---|---|---|---|---|---|
Signed 24-bit PCM | ビックエンディアン | 2チャネル(ステレオ) | 0バイト | 100% | 48000Hz |
バイト順序は、エンディアンなし、リトルエンディアン、既定のエディアン、と他は駄目だった。とりあえず、このケースだとビックエンディアンで読み込むと上手くいった。ここが間違っていると、再生してもサァーというノイズしかしない。
そして、 Audacityでラベル毎にファイル分割・変換するに記載したとおりにflac変換した。再生してみたところ概ね、問題ない。読取不良したところで何かしら、不具合が生じているだろうが、そこまで気になるレベルではなかった。
脚注にも書いたが、タイトルのようなエラーメッセージが表示された場合、一番の解決方法は、ディスクを再リッピングしてエラーが出ないようにすることだ。リッピングや元々のデータに欠損がある場合は、この方法で、それなりに音声データを抽出できる。
-
さあ、タイナカサチよ、これであなたもハイビジョンの世界にいらっしゃいに、Blu-rayから音声抽出のしかたについて書いてある。 ↩︎
-
Nightlyの 2022-02-27 でも、安定板の 2.6.12 両方、駄目。 ↩︎
-
なので、一番の解決方法は、ディスクを再リッピングしてエラーが出ないようにすることだ ↩︎
-
output formatを何にしても結局PCMで出力されるが… ↩︎
-
変換前のPCMファイルを tsMuxeRしようとすると、
Unsupported format: Can't detect stream type. File name: "E:\Downloads\Software\eac3to334-UsEac3to133\UsEac3to133\output\00002.pcm"
というエラーが吐かれる。 ↩︎