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.