اگر مدیریت یک خط لوله رسانهای را بر عهده دارید، زمان آن رسیده است که استانداردهای قدیمی کیفیت صدا را بازنگری کنید. FFmpeg 9.1 با معرفی یک کدگذار AAC بازنویسیشده، حالا میتواند کیفیت صوتی را بدون نیاز به کتابخانههای خارجی و پیچیده به سطحی برساند که پیش از این غیرممکن بود. این تغییر به این معناست که توسعهدهندگان اکنون میتوانند به صدای با وفاداری بالا (High-Fidelity) دست یابند، بدون اینکه به وابستگیهای خارجی پیچیده یا کتابخانههای انحصاری متکی باشند.
این بهروزرسانی به معنای آن است که توسعهدهندگان میتوانند بدون درگیر شدن با وابستگیهای خارجی یا لایسنسهای محدودکننده، به بالاترین کیفیت صدای دیجیتال دست یابند. در واقع، آنچه رخ داده یک جهش فنی است که مرز میان ابزارهای متنباز و نرمافزارهای تجاری گرانقیمت را کمرنگ میکند.
در دنیای ۲۰۲۶، جایی که مصرف رسانههای دیجیتال به اوج خود رسیده، کیفیت و کارایی صدا دیگر یک «ویژگی» نیست، بلکه یک ضرورت حیاتی است. در حالی که ما در سال ۲۰۲۶ پیش میرویم، تقاضای جهانی برای صدای با وفاداری بالا همچنان در حال افزایش است. این تقاضا طیف گستردهای را شامل میشود؛ از سرویسهای استریم با کیفیت فوقالعاده بالا (Ultra-HD) گرفته تا اپلیکیشنهای موبایلی که با محدودیت شدید پهنای باند میجنگند.
ماهانه میلیاردها ساعت محتوای صوتی استریم میشود. در چنین محیطی، هر کیلوبیت داده که ذخیره شود و هر دسیبلی که در کیفیت ادراکشده به دست آید، به معنای تأثیری قابللمس و واقعی برای کسبوکارها و کاربران نهایی است. از سرویسهای استریم گرفته تا برنامههای موبایلی، همه به دنبال بهینهترین حالت ممکن هستند زیرا هر بهبودی در اینجا، هزینههای عملیاتی را کاهش میدهد. این تلاش برای بهینهسازی هزینهها در لایههای زیرساختی، با رویکردهایی نظیر جایگزینی پردازش سیگنال با مدلهای زبانی برای کاهش هزینههای تولید صوت نیز در بخشهای دیگر تولید محتوا در حال تکامل است.
همانطور که در تحلیلهای قبلی ما دربارهی استانداردهای فشردهسازی دادهها اشاره کردیم، توازن میان حجم و کیفیت همواره نقطه حساسترین بخش مهندسی رسانه بوده است. FFmpeg به عنوان ستون فقرات بلامنازع و متنباز پردازش مالتیمدیا، ابزاری است که مجموعهای حیرتانگیز از اپلیکیشنها، از جمله ویرایشگرهای ویدیو، پلتفرمهای استریم، پخشکنندههای رسانه و سرویسهای کدگذاری ابری روی آن متکی هستند. بنابراین، به دلیل این نفوذ گسترده، هر بهبود قابلتوجه در اجزای اصلی آن، موجی از تغییرات را در کل اکوسیستم دیجیتال ایجاد میکند.
معرفی کدگذار جدید AAC در FFmpeg 9.1 یک تغییر تکتونیکی است. این صرفاً یک بهروزرسانی تدریجی نیست؛ بلکه یک بازنویسی بنیادین است که قابلیتهای داخلی AAC در FFmpeg را از یک گزینه «قابلقبول» به یک راهکار «پیشرو» (State-of-the-art) تبدیل میکند.
برای توسعهدهندگان، این به معنای دسترسی به یک کدگذار برتر و کاملاً یکپارچه، بدون پیچیدگیهای خارجی است. برای کسبوکارها، این تحول مستقیماً به مزایای ملموس تبدیل میشود: کاهش هزینههای ذخیرهسازی برای آرشیوهای صوتی عظیم، کاهش هزینههای پهنای باند برای عملیات استریم جهانی و ارائه یک تجربه صوتی به طور چشمگیر بهتر برای کاربران نهایی آنها.
سالهاست که استاندارد کدگذاری پیشرفته صدا (AAC)، everything از یوتیوب گرفته تا اپل موزیک و پخشهای مختلف رادیویی دیجیتال را تغذیه کرده است. اگرچه AAC جانشینی برتر برای MP3 است و کارایی فشردهسازی و کیفیت صدای بهتری را ارائه میدهد ــ بهویژه در بیتریتهای پایین ــ اما کیفیت واقعی صدا کاملاً به پیادهسازی کدگذار بستگی دارد.
تا پیش از این، بسیاری از کاربران حرفهای برای دستیابی به کیفیت بالا، کدگذار داخلی FFmpeg را کنار میگذاشتند و از ابزارهای تخصصی مانند Fraunhofer FDK AAC (از طریق libfdk_aac) یا کدگذار Core Audio اپل (که اغلب از طریق ابزارهایی مانند qaac در دسترس است) استفاده میکردند. این پراکندگی باعث سردرگمی توسعهدهندگان در مدیریت لایسنسها و پیچیدگی در ساخت (Build) نسخههای نرمافزاری میشد، زیرا آنها در اکوسیستم FFmpeg با یک رویکرد تکهتکهشده برای کدگذاری صدا دستوپنجه نرم میکردند.
طبق گزارش منتشر شده در ۲ جولای ۲۰۲۶، این تحول حاصل تلاشهای monumental توسعهدهندهای به نام 'lynne' است. هدف او پاسخ به یک آرزوی دیرینه در جامعه متنباز بود: خلق یک کدگذار AAC واقعاً رقابتی و کاملاً یکپارچه که تعادلی واقعی میان کارایی فشردهسازی و حفظ اصالت صوتی (Sonic Integrity) صدای اصلی برقرار کند.
به نقل از یکی از مهندسین ارشد صدا در یک پلتفرم استریم پیشرو: «برای سالها، جامعه متنباز به دنبال کدگذاری AAC در FFmpeg بود که بتواند صادقانه با راهکارهای انحصاری و کتابخانههای تخصصی مانند qaac رقابت کند. این بازنویسی تنها یک ارتقای ساده نیست، بلکه یک بیانیه برای اثبات برتری مهندسی متنباز در حوزه صدا است.»
کالبدشکافی فنی بازنویسی
بر اساس مستندات منتشر شده در dev.to، این کدگذار یک بهروزرسانی تدریجی نیست، بلکه یک «بازنویسی کامل» (Full Rewrite) است، همانطور که توسط 'lynne' توصیف شده است. این یک بازسازی از پایه در موتور پردازش است که برای به حداکثر رساندن عملکرد و کیفیت طراحی شده و تمام جنبههای حیاتی فرآیند کدگذاری را تحت تأثیر قرار داده است.
توسعهدهنده بر دو سازوکار اصلی برای بهینهسازی نحوه پردازش صدا تمرکز کرد:
- کنترل نرخ (Rate Control): این سیستم تضمین میکند که کدگذار به بیتریت هدف پایبند بماند و در عین حال، بیتهای موجود را بهطور بهینه در بخشهای مختلف طیف صوتی و در طول زمان توزیع کند.
- بهینهسازی نرخ-تغییر (Rate-Distortion Optimization یا RDO): تکنیکی که با ایجاد تعادل بین میزان اعوجاج (Distortion) معرفی شده توسط فشردهسازی و تعداد بیتهای مورد نیاز، بهترین تصمیمات کدگذاری را انتخاب میکند.
![انکدر جدید AAC در FFmpeg 9.1 [۱۰:۵۰:۵۲]](https://www.dothoosh.com/media/a1ea20f5-b36b-473b-8bb5-a5e8f879e3f9-1-ffmpeg-9-1-s-new-aac-encoder-10-50-52-0d5a25c3.webp)
علاوه بر موتور اصلی، 'lynne' چندین ابزار حیاتی کدگذاری AAC را که کدگذارهای متنباز قبلی اغلب نادیده میگرفتند، دوباره پیادهسازی کرد. 'lynne' خاطرنشان کرد که «سایر کدگذارها از هیچ ابزار کدگذاری به جز TNS استفاده نمیکنند». استراتژی او این بود که ابتدا تضمین کند کدگذار جدید میتواند «آنها را تنها با استفاده از TNS شکست دهد» و سپس «PNS، I/S و M/S را بر روی آن پیادهسازی کند تا آنها را به طور قاطع درهم بشکند». این رویکرد بهینهسازی در لایههای پایین، یادآور نوآوریهایی چون فشردهسازی وصلهای برای رفع گلوگاههای حافظه در مدلهای TTS است که سرعت پردازش صوت را به شکل چشمگیری افزایش میدهد.
این ابزارهای پیادهسازی شده عبارتند از:
- جایگزینی نویز ادراکی (Perceptual Noise Substitution یا PNS): جایگزین کردن اجزای نویز که از نظر ادراکی غیرضروری هستند با نویزهای مصنوعی برای ذخیره بیتها.
- شکلدهی نویز زمانی (Temporal Noise Shaping یا TNS): تغییر شکل نویز کوانتش در دامنه زمان تا حدی که برای گوش انسان کمتر قابل تشخیص باشد.
- استریوی شدت (Intensity Stereo یا I/S): بهرهبرداری از این واقعیت که گوش انسان در فرکانسهای بالا نسبت به تفاوتهای فاز حساسیت کمتری دارد و تنها اطلاعات شدت را برای کدگذاری استریوی بهینه منتقل میکند.
- استریوی وسط/کنار (Mid/Side Stereo یا M/S): تبدیل کانالهای استریو به سیگنالهای مجموع (Mid) و تفاضلی (Side)، که اجازه میدهد در مواردی که کانالها همبستگی بالایی دارند، فشردهسازی بهینهتری صورت گیرد.
محک پایداری و عملکرد
بررسیهای عددی با استفاده از معیارهای Zimtohrli گوگل (که در آن هرچه عدد کمتر باشد، کیفیت بالاتر است) و ViSQOL (که عدد بالاتر نشاندهنده کیفیت بیشتر است)، پیروزی مطلق نسخهی nmr (بدون کاهش نویز ادراکی) را در میان کدگذارهای AAC تایید میکند.
در بیتریت استاندارد استریم یعنی ۱۲۸ کیلوبیت بر ثانیه، کدگذار جدید FFmpeg به امتیاز ۰.۰۰۰۷۲ در Zimtohrli رسید. این عدد یعنی میزان اعوجاج آن تقریباً نصف qaac (۰.۰۰۱۴۳) و بهتر از fdk-aac (۰.۰۰۰۸۱) است که نشاندهنده بهبود قابلتوجهی در کیفیت ادراکی است.
در سناریوهای پهنای باند پایین نیز دستاوردهای مشابهی دیده میشود. در ۶۴ کیلوبیت بر ثانیه ــ که یک بیتریت حیاتی برای کاربران موبایلی است ــ FFmpeg nmr امتیاز ۰.۰۰۳۰۹ را در Zimtohrli کسب کرد و از امتیاز ۰.۰۰۳۲۲ مربوط به fdk-aac پیشی گرفت.
مقایسههای دقیق دادهها در بیتریتهای مختلف به شرح زیر است:
- ۶۴ kbps: FFmpeg (nmr) ۰.۰۰۳۰۹ / ۳.۸۳ در برابر qaac ۰.۰۰۳۲۲ / ۳.۶۹ و fdk-aac ۰.۰۰۶۱۲ / ۳.۲۹
- ۹۶ kbps: FFmpeg (nmr) ۰.۰۰۱۳۴ / ۴.۰۴ در برابر qaac ۰.۰۰۱۵۳ / ۳.۹۸ و fdk-aac ۰.۰۰۱۷۵ / ۳.۸۷
- ۱۲۸ kbps: FFmpeg (nmr) ۰.۰۰۰۷۲ / ۴.۴۷ در برابر qaac ۰.۰۰۱۴۳ / ۴.۲۷ و fdk-aac ۰.۰۰۰۸۱ / ۴.۴۴
- ۱۶۰ kbps: FFmpeg (nmr) ۰.۰۰۰۵۱ / ۴.۵۶ در برابر qaac ۰.۰۰۰۶۵ / ۴.۳۱ و fdk-aac ۰.۰۰۱۱۷ / ۴.۵۱
- ۲۵۶ kbps: FFmpeg (nmr) ۰.۰۰۰۳۱ / ۴.۶۱ در برابر qaac ۰.۰۰۱۰۳ / ۴.۴۵ و fdk-aac ۰.۰۰۰۶۷ / ۴.۶۳
اگرچه کدگذار اپل و libopus (که به عنوان یک مرجع با عملکرد بالا استفاده شده) هنوز در برخی نقاط امتیازات کمی بهتر نشان میدهند (مانند امتیاز ۰.۰۰۰۰۲ اپل در ۲۵۶ کیلوبیت)، اما این شکاف بهطور قابلتوجهی بسته شده است. اکنون کدگذار یکپارچه FFmpeg میتواند با معتبرترین راهکارهای تجاری رقابت کند یا حتی آنها را شکست دهد.
تحلیل تحریریه
این بهروزرسانی این فرض بنیادی را که «بهترین کیفیت صدا» نیازمند پلاگینهای انحصاری خارجی است، تغییر میدهد. برای کسبوکارها، این به معنای هزینههای ذخیرهسازی کمتر برای آرشیوهای عظیم و کاهش هزینههای پهنای باند برای پلتفرمهای استریم جهانی است. از آنجا که FFmpeg به عنوان ستون فقرات بیشمار ویرایشگر ویدیو و سرویسهای ابری عمل میکند، این بهبود در کل اکوسیستم دیجیتال پخش خواهد شد.
با حذف نیاز به libfdk_aac یا qaac، مانع ورود به دنیای فشردهسازی صوتی با کیفیت بالا از بین رفته است. این کدگذار که صرفاً بر اساس CBR (بیتریت ثابت) عمل میکند، آماده است تا کیفیت صدا را به طور جهانی بهبود بخشد و پهنای باند را کاهش دهد. این حرکت یک پیروزی برای تعالی متنباز است و ثابت میکند که توسعه جامعهمحور میتواند از طریق مهندسی دقیق و مبتنی بر معیارها، از پیشنهادهای تجاری پیشی بگیرد.
اگر شما یک خط لوله رسانهای را مدیریت میکنید، باید فوراً نسخه nmr در FFmpeg 9.1 را در برابر اهداف بیتریت فعلی خود تست کنید تا ببینید چه مقدار پهنای باند را میتوانید بدون قربانی کردن کیفیت ذخیره کنید.
گام بعدی شما
- اگر از سرویسهای ابری یا خط لولههای تبدیل صوت استفاده میکنید، فوراً نسخه nmr در FFmpeg 9.1 را با اهداف بیتریت فعلی خود تست کنید.
- وابستگیهای قدیمی به libfdk_aac را بررسی کرده و در صورت امکان، آنها را با کدگذار داخلی جایگزین کنید تا پیچیدگی Build پروژه کاهش یابد.
- برای پروژههای موبایلی، بیتریت ۶۴ کیلوبیت را با کدگذار جدید بررسی کنید تا میزان کاهش مصرف پهنای باند بدون افت کیفیت را اندازه بگیرید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است؛ به تحلیل ما دربارهی تراشههای Blackwell و پردازش سیگنالهای صوتی مراجعه کنید.
![کدکننده جدید AAC در FFmpeg 9.1 [۱۰:۵۰:۵۲]](/_next/image?url=https%3A%2F%2Fwww.dothoosh.com%2Fmedia%2Fa1ea20f5-b36b-473b-8bb5-a5e8f879e3f9-ffmpeg-9-1-s-new-aac-encoder-10-50-52-0d5a25c3.webp&w=1920&q=75)



گفتگو