Ffmpeg'i 5.1 DTS HD MA ya da Dolby TrueHD'yi Dolby Pro Logic II ile stereo AAC'ye karıştırmak için nasıl kullanılır?


4

Apple TV ve iOS cihazlarında oynatılabilecek filmlerden ses parçaları oluşturuyorum. El freni, Pro Logic II matris kodlamasıyla 5.1 sesi stereoya indirebilir. Bunu ffmpeg ile nasıl yapabilirim?

Bu bağlantıyı ffmpeg Trac'te , matris kodlaması yapabileceğimi söyleyerek buldum libswresample, ancak daha fazla arama yapmak aslında komut satırında nasıl kullanılacağını göstermiyor.

denedim

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

kaynak dosyadaki tek ses parçası test.mkv5.1 kanal DTS HD MA'dır, ancak üretilen AAC sesi matris kodlanmış gibi görünmez.


DTS-MA’yı AAC’dan ziyade AC3’e dönüştürmek istemez misiniz?
— James

@James AppleTV ve iOS cihazları AC-3'ü desteklemiyor. (Bkz. Developer.apple.com/library/ios/#documentation/AudioVideo/… )
— saat

Ah. yanlış soru. sadece ses çıkarmak yerine filmleri oynatmak için dönüştürdüğümüzü düşündüm
— James

Aslında, Apple TV, TV AC-3 kod çözmeyi destekliyorsa (çoğu LCD TV'nin yaptığı gibi) veya optik bağlantı aracılığıyla, HDMI üzerinden AC-3 geçişini TV üzerinden yapabilir. Ancak filmi iOS cihazlarında izlemek istersem, AAC tek seçenek. Doğru bir AC-3 izi oluşturmak için ffmpeg yaptım, ancak AAC DPLII şu ana kadar hiçbir şey bulunamadığı için beni şaşırtıyor.
— Riobard

İlgi alanı dışında, "tek seçenek AAC" derken ne demek istiyorsun? AC3'ü desteklemeyen filmleri hangi aygıtlarda izlemeye çalışıyorsunuz? AFAIK iPad, MP4 filmlerde / TV şovlarında AC3 sesi destekler.
— James

Yanıtlar:


7

Manuel girişearesample göre , yeniden örnekleme seçeneklerini farklı bir biçimde vermeniz gerekir:

Filtre [sample_rate:]resampler_options, sample_rateörnekleme hızını ifade eden ve " " ile ayrılan çiftlerin resampler_optionsbir listesi olan sözdizimini kabul eder .key=value:

Bu, böyle çağırmanız gerekeceği anlamına gelir:

-af "aresample=matrix_encoding=dplii"

4
Çok teşekkürler! Aslında, hala tedarik etmem gerekiyor, -ac 2aksi takdirde üretilen AAC sesi 5.1 kanal olacaktır.
— Riobard

0

Tercih ettiğim yöntem ffmpeg kullanmak, DTS'yi stereo'ya karıştırmak ve sonra çıkan Quicktime AAC komut satırı kodlayıcısına borulamaktır (Quicktime dinleme testlerinde en iyi AAC kodlayıcıdır ).

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 ve qaac.exe dosyası gerektirir


Bu, pcm_f32lecodec bileşeninin ne yaptığını yanlış anlamadığım sürece saf stereo ile doludur (Dolby Pro Logic II gibi surround özellikli olmayan bir türevi değil) ( ffmpeg -codecs"PCM 32-bit kayan nokta küçük-endian" olarak tanımlanır). Opus ses kodlaması için tercihim qaacolmasına rağmen, yüksek kaliteli AAC çıkışları yapacağından kullanımı takdir ediyorum .
— Adam Katz

0

Burada cevapların bir çiftini birbirine bağlayan, en iyi cevap bu gibi görünüyor:

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

Bonus puanlar için mevcut 5.1 kanalı 2. kanal olarak indirgemek ve stereoyu 1. kanal olarak tanıtmak, şöyle olacaktır:

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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.