প্রথমত, -aq
একটি মানের ভিত্তিক ভেরিয়েবল বিট রেট নির্ধারণ করে - আমি মনে করি আপনি খুঁজছেন -ab
(নোট করুন যে আমি একজন এফফেম্পিগ ব্যবহারকারী, সুতরাং আমার অ্যাভকনভ সিনট্যাক্স সম্পর্কে জ্ঞান সীমাবদ্ধ - আমি জানি না যে এটি কতদূর প্রসারিত হয়েছে কাঁটাচামচ)।
নির্বিশেষে, বিল্ট-ইন অ্যাভকনভ / এফএফপিপেইগ এএসি এনকোডার খুব খারাপ।
fdk_aac
Avconv / ffmpeg এর একমাত্র সত্যই এএসি এনকোডারটি হল libfdk_aac - তবে এর জন্য লাইসেন্সটি জিপিএলের সাথে বেমানান, সুতরাং এটির অ্যাক্সেস পাওয়ার জন্য আপনাকে নিজের সংকলন করতে হবে (এটি একটি এফএফএমপিগ সংকলন গাইড, যেহেতু আমি ডন না অ্যাভকনভের জন্য একজনের জানা নেই - উবুন্টু গাইডটি দেবিয়ানের পক্ষে ভাল হওয়া উচিত, যেহেতু আমি মনে করি না যে সেখানে উবুন্টু-নির্দিষ্ট কিছু আছে)।
এটি একবার পেয়ে গেলে, এএসি এনকোডিং গাইডটি অনুসরণ করুন ; আমি fdk_aac এর -vbr
বিকল্পটি চেষ্টা করার জন্য দৃ strongly়ভাবে প্রস্তাব দিচ্ছি - আমি চেষ্টা করেছি এমন সমস্ত ফাইলের জন্য 3 টির একটি সেটিংস আমার কাছে স্বচ্ছ শোনায়, আপনি যদি উচ্চতর বিট রেটের প্লাসবো চান, বা আপনি যদি সাউন্ড ইঞ্জিনিয়ার হন তবে আপনি একটি সেটিংস চেষ্টা করতে পারেন 5।
ffmpeg -i input.flac -c:a libfdk_aac -vbr 3 output.m4a
দরকার নেই -map_metadata
, যেহেতু ffmpeg স্বয়ংক্রিয়ভাবে মেটাডেটা স্থানান্তর করবে (এবং আমি নিশ্চিত যে অ্যাভকনভও তা করবে)।
একটি নির্দিষ্ট বিট রেট 320 কেবিট / সেটের জন্য (গুরুত্ব সহকারে এটি মূল্যহীন নয়, এএসি অডিও স্বচ্ছতা বনাম অরিজিনাল সিডি অডিও প্রায় 128 কেবিট / সেকেন্ডে অর্জন করে):
ffmpeg -i input.flac -c:a libfdk_aac -b:a 320k
neroAacEnc
নিরোর এএসি এনকোডারটি এফডিকি_এএসি এবং কএএএসি (কুইকটাইম এএসি) এর সাথে সমান বিবেচনা করা উচিত। আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদাররা বিভিন্ন ব্যক্তির মধ্যে আলাদা আলাদা মতামত দেবে যার উপর কোনটি ভাল, তবে আপনি কেবল খুব কম বিট রেটে কোনও পার্থক্য লক্ষ্য করবেন এবং প্রত্যেকে সম্মত হয় যে তারা সবাই খুব উচ্চমানের।
neroAacEnc
নীরো ওয়েবসাইট থেকে উপলব্ধ । এটি আনজিপ করুন এবং এটি আপনার AT PATH এর কোথাও রাখুন।
দুর্ভাগ্যক্রমে neroAacEnc
কেবল ডাব্লুএইভি অডিওটিকে ইনপুট হিসাবে নিতে পারে; আপনি ডিকোডার হিসাবে avconv বা ffmpeg ব্যবহার করে এটি পেতে পারেন:
avconv -i input.flac -f wav - | neroAacEnc -if - -ignorelength -q 0.4 output.m4a
দুর্ভাগ্যক্রমে, এটি মেটাডেটা কেটে ফেলবে; হস্তান্তরের বিষয়ে উপর যে, ব্যবহার avprobe / ffprobe (সঙ্গে -show_format
নির্যাস এবং neroAacTag করার জন্য) সন্নিবেশ করতে। একটি ব্যাশ স্ক্রিপ্ট সম্ভবত ক্রমযুক্ত হবে।
নেরোএএসিএন্সে হাইড্রোজেন অডিও পাতায় দেখুন : মেমরি থেকে, -q
0.4-এর একটি সেটিংস আমার কাছে দুর্দান্ত লাগছিল। আপনি এটি দিয়ে কিছুটা রেট লক্ষ্য করে -br
তুলতে পারেন (আবার, আমি মনে করি এটি উপায় ওভারকিল হবে):
avconv -i input.flac -f wav - | neroAacEnc -if - -ignorelength -br 320000 output.m4a
সম্পাদনা: এখানে অডিও ফাইলগুলিকে m4a এ neroAacEnc এর সাথে রূপান্তর করার জন্য স্ক্রিপ্ট, তারপরে ffprobe এবং neroAacTag এর সাথে ট্যাগ করা (সেগুলি আপনার $ PATH ডিরেক্টরিতে থাকা দরকার)। এটি একাধিক ইনপুট ফাইল নিতে পারে, সুতরাং আপনি যদি এটি সংরক্ষণ করে থাকেন তবে আপনি convert-to-m4a
প্রতিটি এফএলসি ফাইলকে একটি ডিরেক্টরিতে রূপান্তর করতে পারেন
convert-to-m4a *.flac
এটি কেবল এফএলসি ফাইলগুলিতে সীমাবদ্ধ নয়; আপনার ffmpeg / avconv ডিকোড করতে পারে যে কোনও অডিও ফর্ম্যাট কাজ করবে। আপনি ffprobe এবং ffmpeg এভপ্রোব এবং অ্যাভকনভিতে পরিবর্তন করতে পারেন:
#!/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