لتتوافق مع متصفّحات متعددة، عليك استخدام 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 |
سنوضّح لك بعد ذلك كيفية تغيير معدل نقل البيانات للملفات التي أنشأتها حديثًا.