
FFmpeg
إطار عمل معالجة وسائط متعددة مفتوح المصدر
ترميز، فك ترميز، تحويل، بث وتحويل ملفات الصوت والفيديو عبر واجهة برمجة تطبيقات FFmpeg.
ما هو FFmpeg؟
FFmpeg هو إطار عمل متعدد الوسائط مفتوح المصدر رائد يتيح للمطورين تسجيل وتحويل وبث محتوى الصوت والفيديو. يتضمن مجموعة شاملة من المكتبات — مثل libavcodec و libavformat و libavutil و libavfilter و libswscale و libswresample — توفر أدوات قوية للتعامل مع مهام الوسائط المتنوعة. بدعم مئات الترميزات والصيغ، يزود FFmpeg العديد من التطبيقات، من برامج تحرير الفيديو إلى خوادم البث ومشغلات الوسائط.
يتم اعتماد FFmpeg على نطاق واسع في مختلف الصناعات بفضل مرونته وأدائه ودعم المجتمع النشط. يتعامل مع كل شيء من تحويل الصيغ البسيطة إلى تصفية الفيديو المعقدة والبث في الوقت الحقيقي. سواء كنت تبني خادم وسائط، أو مشغل سطح مكتب، أو خط أنابيب تحويل سحابي، يقدم FFmpeg قدرات معالجة موثوقة وعالية الجودة. تجعل أدوات سطر الأوامر مثل ffmpeg و ffplay و ffprobe من السهل دمجها في السكريبتات وتدفقات العمل الآلية، بينما تسمح واجهة برمجة التطبيقات C والربط (مثلًا للبايثون) بالتحكم البرمجي العميق.
البدء مع FFmpeg
لبدء استخدام FFmpeg، قم بتثبيته عبر مدير الحزم في نظامك (مثال: `apt install ffmpeg` على أوبونتو، `brew install ffmpeg` على macOS) أو حمّل الثنائيات الجاهزة من الموقع الرسمي. للاستخدام البرمجي، ثبّت الغلاف الخاص بـ Python عبر `pip install ffmpeg-python` أو استخدم رؤوس مكتبة C الرسمية. يتوفر FFmpeg أيضًا على GitHub في [FFmpeg GitHub](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) الأداء على وحدات معالجة الرسوميات الحديثة. يجعل هذا 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
