web-dev-qa-db-ja.com

HandbrakeによるMKV5.1オーディオトラックのステレオダウンミキシングにより、「センター」が右チャンネルになり、実質的に左チャンネルは何もありません。

そのため、Handbrake(バージョン1.1.2)を使用して、多くの大きなMKVファイルをiOSおよびmacOS互換の小さなビデオファイルに変換することに成功しました。この特定の映画まで、問題なくiPhoneとMacBookAirでしばらく再生できます。

Fast、Very Fast、HQ、Super HQなど、一見あらゆるタイプのデフォルトの「一般」設定を使用してHandbrakeで変換すると、5.1オーディオからのオーディオのダウンミキシングにより、基本的にすべてのオーディオが正しいチャンネルに送られる奇妙なステレオになります。左チャンネルには、より良い用語がないために、バックグラウンドの残骸であるチャンネルがあるようです。沈黙しないのに十分な音ですが、音楽やセリフなどはまったく聞こえません。

MacBook AirのVLC(バージョン3.0.6)で再生できますが、スピーカーから同じ奇妙な音が聞こえます。重い右はほとんど何も残っていません。しかし、VLCのオーディオを「ヘッドフォン」に設定すると…すごい!通常のステレオダウンミックスになります。

何が起こっているのでしょうか。これを適切にダウンミックスするにはどうすればよいですか。 Handbrakeでこれができるといいのですが、そうでない場合は、MKVからAC3を抽出し、他のツールでダウンミックスしてから、MKVに戻す必要があると思いますか?

ffmpeg -iを使用したオーディオトラックの詳細:

Stream #0:1(eng): Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s (default) (forced)
Metadata:
  title           : English
  BPS-eng         : 384000
  DURATION-eng    : 01:36:42.624000000
  NUMBER_OF_FRAMES-eng: 181332
  NUMBER_OF_BYTES-eng: 278525952

ここでmkvmerge --identifyを使用したオーディオトラックの詳細は次のとおりです。

Track ID 0: video (MPEG-4p10/AVC/h.264)
Track ID 1: audio (AC-3)

ここでmkvinfoを使用したオーディオトラックの詳細は次のとおりです。

| + Track
|  + Track number: 2 (track ID for mkvmerge & mkvextract: 1)
|  + Track UID: 3241101187
|  + Track type: audio
|  + Forced track flag: 1
|  + Codec ID: A_AC3
|  + Default duration: 00:00:00.032000000 (31.250 frames/fields per second for a video track)
|  + Name: English
|  + Audio track
|   + Sampling frequency: 48000
|   + Channels: 6

ここでexiftoolを使用したオーディオトラックの詳細は次のとおりです。

Track Number                    : 2
Track Type                      : Audio
Track Forced                    : Yes
Audio Codec ID                  : A_AC3
Default Duration                : 32 ms
Track Name                      : English
Audio Sample Rate               : 48000
Audio Channels                  : 6
2
JakeGould

チャネルマッピングがわかったら、中間ファイルをスキップして、 channelmap フィルターを使用できます。

ffmpeg -i my_movie.mkv -c:v copy -c:s copy -af "channelmap=0|2|1|3|4|5" -c:a ac3 out.mkv
2
Gyan

「センター」チャネルは実際には「右」であり、その逆も同様でした。

それらを交換すると、適切にバランスの取れた、通常のサウンドのAC3ファイルになります。

私はこれを発見しました Gyanのコメントに基づいて 、実際にAC3から個々のモノラルトラックを取り出し、それぞれを聞いてから、AC3を再構築してオーディオレイアウトを修正することによってのみ、これを修正できると判断しました。したがって、この発見とこの小さな混乱の解決策。

そうは言っても、以下に概説するすべての手順は私にとってはうまくいきましたが、誰かが1つのコマンドでこれを行うためのよりクリーンな方法を知っている場合は、回答として自由に投稿してください。これは文字通り私がこれまでに行った中で最も手の込んだFFmpegとMKVの操作であるため、私はあなたに栄光を与えます。それは学習プロセスでした。

まず、mkvmergeを使用して、my_movie.mkvのどのトラックがどれであるかを識別しました。

mkvmerge --identify my_movie.mkv

FFmpegを使用してAC3ファイルをmy_movie.ac3という名前のファイルに抽出したことを知っています。

ffmpeg -i my_movie.mkv -map 0:1 -c:a copy my_movie.ac3

次に、そのmy_movie.ac3を取得し、6つの異なるモノラルトラックに分解しました。

ffmpeg -i my_movie.ac3 -map_channel 0.0.0 front_left.wav -map_channel 0.0.2 front_right.wav -map_channel 0.0.1 front_center.wav -map_channel 0.0.3 back_left.wav -map_channel 0.0.4 back_right.wav -map_channel 0.0.5 lfe.wav

次に、これらのモノラルトラックをmy_movie_fixed.ac3という新しいAC3ファイルに再結合しました。

ffmpeg -i front_left.wav -i front_right.wav -i front_center.wav -i lfe.wav -i back_left.wav -i back_right.wav -filter_complex "[0:a][1:a][2:a][3:a][4:a][5:a]amerge=inputs=6[a]" -map "[a]" my_movie_fixed.ac3

次に、新しく作成したmy_movie_fixed.ac3my_movie.mkvに追加し、結果のファイルをmy_movie_fixed.mkvと呼びました。

ffmpeg -i my_movie.mkv -i my_movie_fixed.ac3 -map 0 -map 1 -c copy my_movie_fixed.mkv

出来た!サウンドは、VLCでの通常の「ステレオ」再生、およびmy_movie_fixed.mkvがHandbrakeを介して変換された場合に最適です。

そうは言っても、トラックのメタデータの詳細を調整し、次のようにmkvpropeditを使用してデフォルトのオーディオトラックとして設定しました。

mkvpropedit my_movie_fixed.mkv --edit track:a2 --set name=English --set language=en
0
JakeGould