सबसे पहले, -aq
एक गुणवत्ता-आधारित चर बिट दर सेट करता है - मुझे लगता है कि आप देख रहे हैं -ab
(ध्यान दें कि मैं एक ffmpeg उपयोगकर्ता हूं, इसलिए एवोकॉन सिंटैक्स का मेरा ज्ञान सीमित है - मुझे नहीं पता कि यह अब तक कैसे बहाव है कांटा)।
बावजूद, निर्मित एवोकॉन / एफएफएमईजी एएसी एनकोडर काफी खराब है।
fdk_aac
Avconv / ffmpeg के लिए वास्तव में केवल अच्छा AAC एनकोडर libfdk_aac है - लेकिन इसके लिए लाइसेंस GPL के साथ असंगत है, इसलिए इसे एक्सेस करने के लिए आपको अपना खुद का संकलन करना होगा (यह एक ffmpeg संकलन गाइड है, क्योंकि मैं डॉन एवोकन के लिए एक का पता नहीं है - उबंटू गाइड डेबियन के लिए ठीक होना चाहिए, क्योंकि मुझे नहीं लगता कि वहां उबंटू-विशिष्ट कुछ भी है)।
एक बार जब आप इसे प्राप्त कर लेते हैं, तो एएसी एन्कोडिंग गाइड का पालन करें ; मैं दृढ़ता से fdk_aac के -vbr
विकल्प को आज़माने की सलाह देता हूं - मेरे द्वारा कोशिश की गई सभी फ़ाइलों पर पारदर्शी 3 ध्वनियों की एक सेटिंग, यदि आप उच्च बिट दर का प्लेसबो चाहते हैं, या आप एक साउंड इंजीनियर हैं, तो आप एक सेटिंग की कोशिश कर सकते हैं 5।
ffmpeg -i input.flac -c:a libfdk_aac -vbr 3 output.m4a
की कोई ज़रूरत नहीं -map_metadata
, क्योंकि ffmpeg स्वतः मेटाडेटा को स्थानांतरित कर देगा (और मुझे पूरा यकीन है कि एवोकॉन भी होगा)।
एक निश्चित बिट दर 320 kbit / s के लिए (गंभीरता से, यह इसके लायक नहीं है, AAC लगभग 128 kbit / s पर ऑडियो सीडी पारदर्शिता बनाम मूल सीडी ऑडियो प्राप्त करता है):
ffmpeg -i input.flac -c:a libfdk_aac -b:a 320k
neroAacEnc
नीरो के एएसी एनकोडर को fdk_aac और qaac (क्विकटाइम एएसी) के साथ ऑन-सम माना जाना चाहिए। अलग-अलग लोग अलग-अलग राय देंगे, जिस पर एक बेहतर है, लेकिन आप केवल बहुत कम दरों पर किसी भी मतभेद को नोटिस करेंगे, और सभी सहमत हैं कि वे सभी बहुत उच्च गुणवत्ता वाले हैं।
neroAacEnc
नीरो वेबसाइट से उपलब्ध है । इसे खोलकर अपने $ PATH में कहीं रख दें।
दुर्भाग्य से neroAacEnc
इनपुट के रूप में केवल WAV ऑडियो ले सकते हैं; आप एक डिकोडर के रूप में एवोकॉन या एफएफएमपीपी का उपयोग करके इसे प्राप्त कर सकते हैं:
avconv -i input.flac -f wav - | neroAacEnc -if - -ignorelength -q 0.4 output.m4a
दुर्भाग्य से, यह मेटाडेटा पट्टी करेगा; उस पर स्थानांतरित करने के लिए, -show_format
निकालने के लिए और neroAacTag डालने के लिए avprobe / ffprobe (के साथ ) का उपयोग करें। एक बैश स्क्रिप्ट शायद क्रम में होगी।
NeroAacEnc पर HydrogenAudio पेज देखें : मेमोरी से, -q
0.4 की एक सेटिंग मुझे बहुत अच्छी लगी । आप के साथ एक बिट दर को लक्षित कर सकते -br
(फिर से, मुझे लगता है कि यह हो सकता है जिस तरह से overkill):
avconv -i input.flac -f wav - | neroAacEnc -if - -ignorelength -br 320000 output.m4a
संपादित करें: यहाँ ऑडियो फ़ाइलों को m4a को neroAacEnc के साथ परिवर्तित करने के लिए एक स्क्रिप्ट है, फिर ffprobe और neroAacTag के साथ टैगिंग (उन सभी को आपके $ PATH में एक निर्देशिका में होना आवश्यक है)। यह कई इनपुट फ़ाइलें ले सकता है, इसलिए यदि आप इसे इस रूप में सहेजते हैं, तो आप convert-to-m4a
प्रत्येक FLAC फ़ाइल को एक निर्देशिका में बदल सकते हैं
convert-to-m4a *.flac
यह सिर्फ FLAC फ़ाइलों तक सीमित नहीं है; आपके ffmpeg / avconv को डिकोड करने वाला कोई भी ऑडियो प्रारूप काम करेगा। आप ffprobe और ffmpeg को avprobe और avconv में बदलना चाह सकते हैं:
#!/usr/bin/env bash
until [[ "$1" = '' ]]; do
ffmpeg -i "$1" -f wav - | neroAacEnc -if - -ignorelength -q 0.4 "${1%.*}.m4a"
tags=()
while read -r; do
tags+=("$REPLY")
done < <(ffprobe -i "$1" -show_format 2>/dev/null | sed -ne 's/date/year/' -e '/TAG:/s/TAG/-meta/p')
neroAacTag "${1%.*}.m4a" "${tags[@]}"
shift
done
exit 0