لتتوافق مع متصفّحات متعددة، عليك استخدام 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%
نسخة من الفيديو الأصلي. يمكنك الاطّلاع على ذلك بنفسك باستخدامls -a
أمر bash في المجلد الذي تتوفّر فيه ملفات الوسائط.
على سبيل المثال:
/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 |
opus | WebM | libopus |
vorbis | WebM | libvorbis |
سنوضّح لك بعد ذلك كيفية تغيير معدل نقل البيانات للملفات التي أنشأتها حديثًا.