لإتاحة استخدام عدة متصفحات، يجب استخدام أداة FFmpeg لتحويل ملف .mov
إلى حاويتين مختلفتين: حاوية MP4 وحاوية WebM. من الناحية العملية، من المرجّح أن تحدّد برنامج ترميز في الوقت نفسه. في الوقت الحالي، نسمح لـ FFmpeg باستخدام الإعدادات الافتراضية.
إذا كانت هذه المفاهيم جديدة بالنسبة إليك، يجب قراءة أساسيات ملفات الوسائط قبل المضي قدمًا. بالإضافة إلى ذلك، إذا لم يكن FFmpeg مثبتًا لديك، فاقرأ أساسيات تطبيق الوسائط لإعداده باستخدام Docker.
نستخدم تثبيت Docker المقترَح وملف glocken.mov من إعداد ملفات الوسائط للويب
المضاف داخل دليل media
. استخدمنا الإصدار 4.3.2 من أداة FFmpeg لجميع الأوامر الواردة في هذا القسم.
الحاويات
أولاً، نحتاج إلى إنشاء حاويتَين من الملف .mov
بامتداد الملف .mp4
و.webm
مع كل من بث الفيديو والصوت داخل الملف.
راجِع أساسيات ملفات الوسائط
للاطّلاع على مزيد من المعلومات حول الحاويات وساحات المشاركات إذا لم تكن تعرف الفرق بينها.
MP4
/media # ffmpeg -i glocken.mov glocken.mp4
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 وShka 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 | ليبفوربيس |
بعد ذلك، سنوضح لك كيفية تغيير معدل نقل البيانات للملفات التي تم إنشاؤها حديثًا.