الحاويات وبرامج الترميز

Derek Herman
Derek Herman
Joe Medley
Joe Medley

للتوافق مع متصفحات متعددة، يجب استخدام FFmpeg لتحويل .mov إلى حاويتين مختلفتين: حاوية MP4 وحاوية WebM. ضِمن بالممارسة العملية، ستحدد على الأرجح برنامج ترميز في الوقت ذاته. في الوقت الحالي، فإننا نسمح لـ FFmpeg باستخدام الإعدادات الافتراضية.

إذا كانت هذه المفاهيم جديدة بالنسبة لك، ينبغي لك قراءتها أساسيات ملفات الوسائط قبل الذهاب إلى أبعد من ذلك. بالإضافة إلى ذلك، إذا لم يكن لديك FFmpeg مثبت، أساسيات تطبيق الوسائط لإعداده باستخدام Docker.

نحن نستخدم تثبيت Docker المقترح ملف glocken.mov من إعداد ملفات الوسائط للويب تمت إضافتها داخل دليل media. استخدمنا الإصدار 4.3.2 من FFmpeg لجميع الطلبات في هذا القسم.

الحاويات

أولاً، يجب إنشاء حاويتين من ملف .mov باستخدام السمة .mp4 و.webm امتداد ملف مع بث صوت وفيديو داخل الملف. مراجعة أساسيات ملفات الوسائط لمزيد من المعلومات حول الحاويات وساحات المشاركات إذا كنت لا تعرف الفرق بين معهم.

  1. MP4

    /media # ffmpeg -i glocken.mov glocken.mp4
    
  2. WebM

    /media # ffmpeg -i glocken.mov glocken.webm
    

يستغرق تنسيق WebM وقتًا أطول من تنسيق MP4. وهذا ليس بمستغرب عندما تنظر إلى النتائج. بينما يتم ضغط MP4 إلى حوالي 83% من ملفات الحجم، وانخفض حجم WebM إلى 78% من حجم الملف الأصلي، ولكن يمكن أن يكون أصغر بكثير. ستختلف نتائجك. من المهم الإشارة إلى أنّ برنامج FFmpeg 4.2.2 قد حدّد يبلغ معدل نقل البيانات التلقائي للفيديو 200k وفي 4.3.2 لم يضبط معدّل نقل بيانات تلقائي. وبالتالي، لم يعُد الفيديو مجرد4% محتوى أصلي. يمكنك الاطّلاع على هذه المعلومات بنفسك. باستخدام أمر bash ls -a في المجلد الذي تتوفّر فيه ملفات الوسائط.

على سبيل المثال:

/media # ls -l
-rw-r--r-- 1 root  root  12080306 Mar 7 12:16 glocken.mov
-rwx------ 1 root  root  10106446 Mar 7 12:33 glocken.mp4
-rwx------ 1 root  root   9503301 Mar 7 18:30 glocken.webm

للحصول على ملف صغير، يمكنك القيام بذلك بدلاً من ذلك:

/media # ffmpeg -i glocken.mov -b:v 200k glocken.webm
...
frame=  300 fps=3.6 q=0.0 Lsize=     483kB time=00:00:10.01 bitrate= 395.0kbits/s speed=0.121x
video:359kB audio:117kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.356068%
/media # ls -l
-rw-r--r-- 1 root  root  12080306 Mar 7 12:16 glocken.mov
-rwx------ 1 root  root  10106446 Mar 7 12:33 glocken.mp4
-rwx------ 1 root  root    494497 Mar 7 18:45 glocken.webm

التحقّق من عملك

للتحقق من النتائج، استخدم FFmpeg وShaka Packager كما هو موضح بالفعل في أساسيات تطبيق الوسائط:

/media # packager input=glocken.mp4 --dump_stream_info
/media # ffmpeg -i glocken.mp4

برامج الترميز

بعد ذلك، برنامج الترميز. كما هو موضح في أساسيات ملفات الوسائط، فإن برنامج الترميز ليس هو نفسه الحاوية (نوع الملف). ملفان للحاوية نفسها النوع الاحتفاظ بالبيانات مضغوطة باستخدام برامج ترميز مختلفة. على سبيل المثال، تنسيق WebM يسمح بترميز الصوت باستخدام Vorbis أو Opus. لتغيير برنامج الترميز الذي ونستخدم FFmpeg. على سبيل المثال، يؤدي هذا الطلب إلى إخراج ملف .mkv يتضمّن صوت vorbis. وبرنامج ترميز الفيديو av1.

/media # ffmpeg -i glocken.mov -c:a vorbis -c:v av1 glocken.mkv

في هذا المثال، تُستخدم العلامة -c:a و-c:v لتحديد الصوت و برامج ترميز الفيديو على التوالي.

تسرد صفحة تحويل الوسائط والأوامر اللازمة لتحويل برامج الترميز. تُلخص الجداول أدناه المكتبات المستخدمة في FFmpeg لإجراء عمليات تحويل برامج الترميز لملفات WebM وMP4. وهي التنسيقات المقترَحة لكل من DASH وHLS على التوالي.

فيديو

برنامج الترميز الإضافة المكتبة
av1 WebM وmkv libaom-av1
h264 MP4 libx264
vp9 WebM libvpx-vp9

الصوت

برنامج الترميز الإضافة المكتبة
ملف AAC MP4 ملف AAC
أوبوس WebM ليبوبوس
فوربيس WebM ليبفوربيس

سنشرح لك بعد ذلك كيفية تغيير معدل نقل البيانات للملفات التي تم إنشاؤها حديثًا.