
FFmpeg
چارچوب پردازش چندرسانهای منبع باز
رمزگذاری، رمزگشایی، تبدیل فرمت، پخش جریان و تبدیل فایلهای صدا و ویدیو از طریق API FFmpeg.
FFmpeg چیست؟
FFmpeg یک چارچوب چندرسانهای متن باز پیشرو است که به توسعهدهندگان امکان ضبط، تبدیل و استریم محتوای صوتی و تصویری را میدهد. این چارچوب شامل مجموعهای جامع از کتابخانهها—مانند libavcodec، libavformat، libavutil، libavfilter، libswscale و libswresample—است که ابزارهای قدرتمندی برای مدیریت وظایف متنوع چندرسانهای فراهم میکند. با پشتیبانی از صدها کدک و فرمت، FFmpeg نیرودهندهی بیشمار برنامه است، از نرمافزارهای ویرایش ویدئو تا سرورهای استریم و پخشکنندههای رسانهای.
FFmpeg بهطور گستردهای در صنایع مختلف بهدلیل انعطافپذیری، عملکرد بالا و پشتیبانی فعال جامعهاش پذیرفته شده است. این ابزار همه چیز را از تبدیل ساده فرمت تا فیلترینگ پیچیده ویدئو و استریم زمان واقعی مدیریت میکند. چه در حال ساخت یک سرور رسانهای، یک پخشکننده دسکتاپ، یا یک خط لوله تبدیل ابری باشید، FFmpeg قابلیتهای پردازشی قابل اعتماد و با کیفیت بالا را ارائه میدهد. ابزارهای خط فرمان آن مانند ffmpeg، ffplay و ffprobe ادغام آنها را در اسکریپتها و گردشهای کاری خودکار آسان میسازد، در حالی که API زبان C و بایندینگهای آن (مثلاً برای Python) کنترل برنامهنویسی عمیق را ممکن میسازند.
شروع کار با FFmpeg
برای شروع استفاده از FFmpeg، آن را از طریق مدیر بسته سیستم خود نصب کنید (مثلاً `apt install ffmpeg` در اوبونتو، `brew install ffmpeg` در macOS) یا باینریهای پیشساخته را از سایت رسمی دانلود کنید. برای استفاده برنامهنویسی، بستهٔ Python wrapper را با `pip install ffmpeg-python` نصب کنید یا از هدرهای کتابخانهٔ رسمی C استفاده کنید. FFmpeg همچنین در GitHub در آدرس [FFmpeg گیتهاب](https://github.com/FFmpeg/FFmpeg) موجود است، جایی که میتوانید برای پیکربندیهای سفارشی از منبع آن را بسازید. وزن سبک و پشتیبانی چندپلتفرمی آن، آن را برای استقرارهای دسکتاپ، سرور و تعبیهشده ایدهآل میکند.
نصب FFmpeg از طریق مدیرهای بسته
# Ubuntu/Debian
sudo apt update && sudo apt install ffmpeg
# macOS (Homebrew)
brew install ffmpeg
# Python wrapper
pip install ffmpeg-python
تبدیل رسانه بین فرمتها
FFmpeg در تبدیل فایلهای رسانهای بین صدها فرمت و کدک برتری دارد. میتوانید ویدئو را از MP4 به WebM تبدیل کنید، صدا را از فایلهای ویدئویی استخراج کنید، یا فرمتهای کانتینر را بدون رمزگذاری مجدد (کپی جریان) تغییر دهید. تنظیمات پیشفرض هوشمند آن کیفیت بالایی را تضمین میکند، در حالی که گزینههای پیشرفته به شما امکان میدهند بیتریت، وضوح، نرخ فریم و پارامترهای کدک را بهدقت تنظیم کنید. چه برای آمادهسازی محتوا برای پخش وب، بایگانی یا پخش روی دستگاههای خاص، FFmpeg کنترل دقیق بر کیفیت خروجی و سازگاری فراهم میکند. رابط خط فرمان از زنجیرههای فیلتر پیچیده برای تغییر اندازه، برش و اعمال افکتها در حین تبدیل پشتیبانی میکند.
چگونه MP4 را به WebM با FFmpeg تبدیل کنیم؟
ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 30 -b:v 0 -c:a libopus output.webm
پخش زنده در زمان واقعی و پخش زنده
FFmpeg از دریافت، تبدیل و پخش رسانههای زنده از طریق پروتکلهایی مانند RTMP، HLS و SRT پشتیبانی میکند. میتواند از وبکمها، میکروفنها یا منابع شبکهای ضبط کرده و جریانها را به پلتفرمهایی مانند YouTube، Twitch یا سرورهای سفارشی RTMP ارسال کند. با گزینههای کمتاخیر و پخش تطبیقی بیتریت، FFmpeg زیرساختهای پخش زنده برای رویدادها، بازیها و نظارت را فراهم میسازد. توانایی آن در مدیریت ورودیهای متعدد، افزودن گرافیکهای پوششی و اعمال فیلترهای زمان واقعی، آن را برای تنظیمات پخش حرفهای ایدهآل میکند. همچنین میتوانید خروجی را برای DASH/HLS تقسیمبندی کنید تا پخش تطبیقی در کلاینتهای موبایل و وب امکانپذیر شود.
چگونه یک فایل ویدئویی را به YouTube Live استریم کنیم؟
ffmpeg -re -i input.mp4 -c:v libx264 -preset veryfast -maxrate 3000k -bufsize 6000k -g 50 -c:a aac -b:a 160k -f flv "rtmp://a.rtmp.youtube.com/live2/your_stream_key"
فیلتر ویدیو و پردازش پس از تولید
چارچوب libavfilter در FFmpeg امکان فیلترگذاری قدرتمند ویدئویی بهصورت زمان واقعی را از طریق یک گراف جهتدار بدون چرخه از فیلترها فراهم میکند. میتوانید برش، مقیاسبندی، چرخش، دیاینترلیس، حذف نویز، افزودن واترمارک، افزودن متن، تنظیم رنگها و اعمال افکتهای پیچیده مانند اسلوموشن یا تایم‑لپس را انجام دهید — همه اینها بدون نیاز به رمزنگاری مجدد کل جریان. فیلترها میتوانند بهصورت زنجیرهای برای پردازش چندمرحلهای ترکیب شوند و شتابدهی سختافزاری (مانند NVENC، VAAPI، VideoToolbox) عملکرد را بر روی GPUهای مدرن تضمین میکند. این ویژگیها FFmpeg را برای ویرایشگران ویدئو، تولیدکنندگان محتوا و توسعهدهندگانی که خطوط پردازش رسانهای با نیاز به بهبودهای بصری یا نرمالسازی فرمت میسازند، ضروری میسازد.
چگونه یک ویدئو را برش، مقیاسبندی & افزودن واترمارک کنیم؟
ffmpeg -i input.mp4 -i watermark.png -filter_complex "[0:v]crop=1280:720:0:0[scaled];[scaled][1:v]overlay=10:10" -c:a copy output.mp4
استخراج و دستکاری فراداده و زیرنویسها
FFmpeg کنترل کامل بر روی متادیتا (برچسبها) و زیرنویسهای جاسازیشده در فایلهای رسانهای را فراهم میکند. میتوانید با استفاده از دستورات ساده، متادیتا (مانند عنوان، هنرمند، آلبوم، دادههای GPS) را استخراج، ویرایش یا حذف کنید، یا زیرنویسها را بین فرمتهایی مانند SRT، ASS و VTT تبدیل کنید. این ابزار از سوزاندن زیرنویسها در ویدیو یا جاسازی آنها بهعنوان مسیرهای جداگانه پشتیبانی میکند. برای جریانهای کاری دسترسیپذیری و بومیسازی، FFmpeg امکان پردازش دستهای فایلهای زیرنویس، تنظیم زمانبندی و مدیریت مسیرهای زبانی را فراهم میآورد. این ویژگیها آن را برای بومیسازی زیرنویس، مدیریت داراییهای رسانهای و تطبیق با استانداردهای پخش که نیاز به متادیتای جاسازیشده دارند، ایدهآل میسازد.
چگونه زیرنویسها را از یک فایل ویدئویی استخراج کنیم؟
ffmpeg -i input.mkv -map 0:s:0 -c:s srt output.srt
