כדי לתמוך בכמה דפדפנים, צריך להשתמש ב-FFmpeg כדי להמיר את .mov
קובץ לשני קונטיינרים שונים: מאגר MP4 ומאגר WebM. לחשבון
בפועל, סביר להניח שתציינו קודק בו-זמנית. בינתיים,
אנחנו מאפשרים ל-FFmpeg להשתמש בברירות המחדל שלו.
אם המושגים האלה חדשים לכם, כדאי לקרוא היסודות של קובצי מדיה לפני שממשיכים. בנוסף, אם לא מותקנת אצלך אפליקציית FFmpeg, קריאה היסודות של אפליקציות מדיה להגדיר אותו ב-Docker.
אנחנו משתמשים בהתקנת Docker המוצעת
הקובץ glocken.mov מתוך הכנת קובצי מדיה לאינטרנט
נוספו בתוך הספרייה media
. השתמשנו ב-FFmpeg גרסה 4.3.2 עבור כל
בקטע הזה.
קונטיינרים
קודם כול, צריך ליצור את שני המאגרים מהקובץ .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 וב-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 כדי לבצע את המרות ה-Codec עבור קובצי WebM ו-MP4. אלה סוגי המודלים הפורמטים המומלצים עבור DASH ו-HLS בהתאמה.
וידאו
קודק | Extension | ספרייה |
---|---|---|
av1 | WebM, mkv | Libaom-av1 |
h264 | MP4 | libx264 |
vp9 | WebM | libvpx-vp9 |
אודיו
קודק | Extension | ספרייה |
---|---|---|
AAC | MP4 | AAC |
אופוס | WebM | ליבופוס |
וורביס | WebM | libvorbis |
בשלב הבא נראה לכם איך לשנות את קצב העברת הנתונים של קבצים חדשים שיצרתם.