Na jednym z urządzeń miałem problem z odtworzeniem plików (głównie MKV) z dźwiękiem zakodowanym w DTS. Pomijając że np. na tablecie 6-cio kanały DTS jest mi “niezbędny inaczej” to konwertując go do AAC stereo plik jest po prostu sporo mniejszy. Oczywiście nie zamierzam transkodować ścieżki video i na moje potrzeby mogłem sobie odpuścić zmianę częstotliwości próbkowania.
Najprościej wykorzystać pakiet ffmpeg (po nowemu avconv) lub mencoder (choć ten miewał niegdyś problem z poprawnym zapisywaniem wynikowych plików mkv, więc potrzebny jest dodatkowo mkvmerge z pakietu mkvtoolnix). mencoder transkoduje szybciej wykorzystując więcej rdzeniu CPU, ale później potrzebny był drugi przebieg z mkvmerge. ffmpeg jechał na jednym procku nawet z opcją threads ale za to wszystko mogę zrobić jednym poleceniem.
Paczki instalujemy tak:
apt-get install libav-tools libavcodec-extra
MKV DTS do MKV AAC stereo
avconv -i input.mkv -c copy -c:a libvo_aacenc -b:a 128k -ac 2 -threads auto output-stereo-aac.mkv
Gdybyśmy chcieli zakodować wszystkie kanały z DTS do AAC to wystarczy pominąć parametr -ac 2.
MKV DTS do MKV AC3 (wszystkie kanały)
avconv -i input.mkv -c copy -c:a libvo_aacenc -b:a 128k -threads auto output-ac3.mkv
MKV DTS do MKV AC3 z mencoder’em
AVI=`mktemp video.XXXXXX.avi`
mencoder "input.mkv" -o $AVI -oac lavc -lavcopts acodec=ac3:abitrate=448 -ovc copy
mkvmerge $AVI -o output.AC3.mkv
rm $AVI