عن المشروع
يُعد هذا المستودع برنامجاً تعليمياً لفهم كيفية استخدام FFmpeg كمكتبة (libav) لبناء برامج وسائط متعددة. أُنشئ كبديل حديث للبرامج التعليمية المهملة وهو متاح بعدة لغات.
تبدأ المحتوى بمقدمة عن أساسيات الوسائط، تشرح ما هي الفيديو والصوت ومشفّرات الترميز (codecs) والمُصنِّعات (containers). ثم تقدّم دورة مكثفة حول استخدام أداة FFmpeg عبر سطر الأوامر، تغطي العمليات الشائعة مثل تحويل الصيغ (transcoding)، تغيير الحاويات (transmuxing)، تغيير معدل البت (transrating)، تغيير الدقة (transsizing)، والبث التكيفي باستخدام DASH.
جوهر المستودع هو قسم "تعلم FFmpeg libav بالتمرين" الذي يقدم شروحات برمجية بلغـة C ويغطي:
- الفصل 0: برنامج "مرحباً بالعالم" يقرأ ملف وسائط ويستخرج البيانات الوصفية ويفك تشفير الإطارات ويحفظها كصور رمادية. يشرح بنية FFmpeg libav بما فيها AVFormatContext وAVStream وAVPacket وAVCodec وAVFrame.
- الفصل 1: شرح التزامن بين الصوت والفيديو، مع تفاصيل حول timestamps العرض (PTS) والأسس الزمنية (timebases) وكيفية تنظيم مشغلات الفيديو لعرض الإطارات.
- الفصل 2: كود إعادة التوجيه (remuxing).
- الفصل 3: كود التحويل (transcoding).
يستخدم البرنامج Docker كبيئة تطوير وتشغيل لتجنب مشاكل الترجمة، ويشمل Makefile لجلب فيديوهات الاختبار وتشغيل الأمثلة. رغم أن الكود مكتوب بلغة C، يوضح المؤلف أن المفاهيم قابلة للتطبيق بسهولة على لغات أخرى تدعم مكتبات FFmpeg مثل Python وGo.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.