web-dev-qa-db-ja.com

ffmpegを使用して5.1をダウンミックスする方法DTS HDMAまたはDolbyTrueHDをDolbyPro Logic IIでステレオAACにダウンミックスしますか?

Apple TVおよびiOSデバイスで再生できる映画からオーディオトラックを作成しています。HandbrakeはProLogic IIマトリックスエンコーディングを使用して5.1オーディオをステレオにダウンミックスできます。ffmpegでそれを行うにはどうすればよいですか?

私はこれを見つけました ffmpeg Tracのリンクlibswresampleでマトリックスエンコーディングを行うことができると述べていますが、さらに検索しても、コマンドラインでこれを実際に使用する方法は示されていません。

私は試した

ffmpeg -i test.mkv -map 0:1 -c libfdk_aac -ac 2 -af aresample  -matrix_encoding dplii  out.aac

ここで、ソースファイル内の唯一のオーディオトラックtest.mkvは5.1ch DTS HD MAですが、生成されたAACオーディオはマトリックスエンコードされていないようです。

5
Riobard

aresample の手動エントリによると、リサンプラオプションを別の形式で指定する必要があります。

フィルタは構文[sample_rate:]resampler_optionsを受け入れます。ここで、sample_rateはサンプルレートを表し、resampler_optionsは「key=value」で区切られた:ペアのリストです。

つまり、次のように呼び出す必要があります。

-af "aresample=matrix_encoding=dplii"
8
slhck

ここでいくつかの答えをまとめると、これが最良の答えのように見えます。

ffmpeg -i SourceVideoWithFivePointOne.mkv -map 0:1  \
-c libfdk_aac -ac 2 -af "aresample=matrix_encoding=dplii"  \
DestinationAudioWithDolbyPLII.aac

ボーナスポイントの場合、既存の5.1チャンネルをチャンネル2に降格し、ステレオをチャンネル1として宣伝すると、次のようになります。

ffmpeg -i SourceWithFivePointOne.mkv -c:v copy -map 0:0 -map 0:1 -map 0:1  \
-c:a:0 libfdk_aac -ac 2 -af "aresample=matrix_encoding=dplii"  \
-c:a:1 copy  \
DestinationVideoWithSurroundAndStereo.mkv
0
LincM

私の好みの方法は、ffmpegを使用してDTSをステレオにダウンミックスし、その出力をQuicktime AACコマンドラインエンコーダーにパイプすることです(Quicktimeは リスニングテスト で最高のAACエンコーダーです) )。

ffmpeg.exe -report -loglevel verbose -i "videofile.mkv" -map 0:a:0 -f wav -acodec pcm_f32le -ac 2 - | qaac.exe --tvbr 127 --quality 2 --rate keep --ignorelength --no-delay - -o "audioonly.m4a"

ffmpeg.exe および qaac.exe が必要です

0
Robert Collier