בדף הזה מופיעה סקירה טכנית של Transcoder API, כולל תכונות, מינוחים ומושגים שימושיים. Transcoder API הוא API ל-REST ול-RPC שמאפשר לשלוח, לנטר ולנהל משימות המרה ב- Google Cloud. כדי לשלוח משימות באמצעות Transcoder API, קודם צריך להעלות נכסי מדיה ל-Cloud Storage. אחרי עיבוד של משימה, Transcoder API שומר את קובץ המדיה שנוצר בחזרה ב-Cloud Storage.
תכונות
ה-Transcoder API כולל תמיכה בתכונות הבאות:
- פלט בפורמטים שונים של קונטיינרים, כולל MPEG-4 (MP4), Dynamic Adaptive Streaming over HTTP (DASH, שנקרא גם MPEG-DASH) ו-HTTP Live Streaming (HLS)
- פלט בקצבי העברת נתונים וברזולוציות שונות, כולל פלט אודיו בלבד
- המרה לפורמט טווח דינמי גבוה (HDR)
- לשפר את פלט הווידאו באופן פרוגרמטי, כולל:
- הגדרת פרמטרים של קידוד ברמה נמוכה, כמו קצב העברת הנתונים
- רימיקס של תוכן מדיה קיים באמצעות רשימות עריכה מקיפות
- מגדירים את מצב העבודה למצב אינטראקטיבי עם זמן אחזור נמוך או למצב אצווה
- הגדרת נורמליזציה של עוצמת האודיו
- הגדרת הצפנה של סרטון הפלט כדי לתמוך בניהול זכויות דיגיטלי (DRM) ובהגנה על תוכן
- הוספת פריימים מרכזיים של מודעות כדי לאפשר ללקוחות של נגני וידאו להוסיף מודעות
- יצירת תמונות ממוזערות מגיליון ספירייט של פריים של סרטון שנוצר
- יצירת תבניות למשימות כדי לשמור תצורות מותאמות אישית או מורכבות של משימות המרת קידוד ולעשות בהן שימוש חוזר
מידע נוסף על תקני MP4 ו-MPEG-DASH זמין באתר של Moving Picture Experts Group. מידע נוסף על תקן HLS אפשר למצוא במאמר בנושא HTTP Live Streaming.
מאגרי נתונים נתמכים להצפנת תוכן
בטבלה הבאה מפורטים המאגרי נתונים שנתמכים להצפנת תוכן.
| פרוטוקול סטרימינג | מאגר | מערכת DRM | סכמת הצפנה |
|---|---|---|---|
| HLS | TS | ClearKey | aes128 |
| HLS | TS | FairPlay | sampleAes |
| HLS | fMP4 | FairPlay | mpegCenc cbcs only |
| MPEG-DASH | fMP4 | Widevine | mpegCenc cenc או cbcs |
| MPEG-DASH | fMP4 | PlayReady | mpegCenc cenc או cbcs |
בקרת גישה
מודל בקרת הגישה של Transcoder API מבוסס על ניהול זהויות והרשאות גישה של Google. ההרשאות המפורטות של IAM מאפשרות לכם לשלוט במה שאפשר לעשות עם נתוני המדיה, ומי יכול לעשות את זה.
מגבלות
בטבלה הבאה מוצגות המגבלות לכל משימת קידוד.
| מגבלות על משרות | |
|---|---|
| רוחב מקסימלי של שדה הקלט | 4,096 פיקסלים |
| גובה מקסימלי של קלט | 4,096 פיקסלים |
| רוחב הפלט המקסימלי | 4,096 פיקסלים |
| גובה הפלט המקסימלי | 2,160 פיקסלים |
| גודל הפלט הכולל | 400GB |
משך הזמן המקסימלי של EditList | 24 שעות |
| מספר מקסימלי של שידורי וידאו | 70 |
| מספר מקסימלי של סטרימינג של אודיו | 50 |
| מספר מקסימלי של ערוצי טקסט | 50 |
| מספר מקסימלי של סטרימינגים של MUX | 100 |
| מספר מקסימלי של קובצי מניפסט | 100 |
| מספר מקסימלי של גיליונות ספריטים | 10 |
מושגים
בקטע הזה מוסברים מושגים חשובים לגבי קובצי וידאו ואיך משתמשים בהם עם Transcoder API.
הרכיבים של קובץ וידאו
לכל קובץ וידאו יש קונטיינר, שהוא העטיפה של הקובץ כולו. Transcoder API משתמש ב-MuxStreams כדי להגדיר את הקונטיינר. כל קונטיינר כולל קבוצה של ElementaryStreams כדי להגדיר את הקידוד של טראקים של וידאו, אודיו וטקסט של כתוביות בקובץ. הווידאו והאודיו נדחסים באמצעות קודקים.
בדוגמה הבאה, הסרטון נדחס באמצעות H.264 והאודיו נדחס באמצעות AAC. שניהם מוצבים במאגר מסוג MP4.
איור 1. רכיבים של קובץ וידאו (מימין) ודוגמה לקובץ MP4 (משמאל).
מבנה פרוטוקול הסטרימינג
במקרה של מדיה להזרמה, ספקי התוכן מקודדים את אותו תוכן בכמה קצבי העברת נתונים (bitrate) (שנמדדים בקילוביט לשנייה). לאחר מכן הספק יוצר קובץ מניפסט שמפנה לקבצים השונים עם קצבי העברת נתונים שונים. נגן המדיה להזרמה משתמש בקובץ המניפסט כדי לבחור את הקובץ המתאים, ואז שולף את הווידאו כמה שניות בכל פעם. כל קצב העברת נתונים יכול להיות קובץ יחיד או כמה קבצים קצרים, בהתאם למה שהנגן תומך בו.
בדרך כלל, רזולוציות שונות של מדיה מקודדות כדי להתאים לקצבי העברת נתונים שונים. לדוגמה, קצב העברת נתונים נמוך יותר מקודד באיכות רגילה (SD) במקום באיכות גבוהה (HD). קבוצת קצבי העברת הנתונים, הרזולוציות והקודקים נקראת סולם קצב העברת נתונים דינמי (ABR). ספקי תוכן סטרימינג עשויים להתאים את הסולם שלהם על סמך עלויות CDN, סוגי מכשירים של משתמשים, רוחב פס באזור וגורמים אחרים.
איור 2. רכיבים של מבנה פרוטוקול סטרימינג (למעלה) ודוגמה להטמעה של HTTP Live Streaming (HLS) (למטה).
הסברים על המונחים
בקטע הזה מופיע מילון מונחים שימושיים לעבודה עם Transcoder API.
הפסקה למודעה
הפסקת פרסום היא מודעה קצרה שמופיעה לפני או במהלך הפעלת מדיה. Transcoder API תומך בפריים מרכזי של הפסקה למודעה בהגדרת העבודה. Transcoder API לא מוסיף מודעות, לא מפעיל אותן ולא מפסיק את הפעלת המדיה. לקוחות של נגני וידאו אחראים לטיפול בפריים המרכזי.
Atom
אטום הוא מבנה נתונים בסיסי להגדרת המטא-נתונים והמיקום של סרטון. סרטון יכול לכלול היררכיה מורכבת של אטומים מסוגים שונים, כולל אטומי אודיו, עריכה וטקסט.
אטום אודיו
אטום אודיו ממפה את האודיו מזרם אלמנטרי לרשימת עריכה.
סוג ופרופיל של קודק
כשבוחרים את הקודק לסטרימינג של וידאו, מציינים את סוג הקודק, כמו H.264, ואת הפרופיל, כמו פרופיל ברירת המחדל high.
מאגר
קונטיינר הוא עטיפה שמתארת את הקשר בין הרכיבים השונים בזרם מרובב, כולל קובצי מדיה ומטא-נתונים. Transcoder API תומך בפורמטים של קונטיינרים מסוג MP4, MPEG-DASH ו-HLS.
עריכת אטום
אטום עריכה מגדיר את ההיסטים של ההתחלה והסוף של הפלחים הנפרדים של זרם שרוצים לשלב ברשימת עריכה.
עריכת הרשימה
רשימת עריכה מגדירה רצף של עריכות כציר זמן לקובץ או למניפסט שמתקבלים מעבודת קידוד טרנסקוד.
חטיבת ביניים
זרם אלמנטרי הוא קידוד של קובץ קלט, כמו טראק של אודיו, וידאו או טקסט של כתוביות. צריך לארוז את הזרמים הבסיסיים לפני שממפים ומשתפים את הזרם בפורמטים שונים של פלט.
קידוד האנטרופיה
קידוד אנטרופיה הוא סוג של דחיסת נתונים ללא אובדן איכות, שנתמך על ידי Transcoder API. כשמגדירים משימות, אפשר לציין את מקודדי האנטרופיה Context-Adaptive Variable-Length Coding (CAVLC) או Context-Adaptive Binary Arithmetic Coding (CABAC).
משימה
משימה היא היחידה הבסיסית לניהול עבודה עם Transcoder API. כששולחים משימה ל-Transcoder API, היא מעובדת באופן אסינכרוני במיקום גיאוגרפי שנקרא אזור. אפשר לראות את כל המשימות באזור מסוים ולנהל אותן.
מחזור החיים של עבודה כולל שלושה שלבים: הכנה, המרה ודחיסה.
- הכנה
- הורדת קובצי קלט מ-Cloud Storage
- ניתוח מקורות קלט
- אימות מקורות קלט
- Transcode
- הרצת פעולות המרת קידוד בקלט
- חבילה
- מקורות קלט של Stitch
- קלט Multiplex
- העלאת פלט ל-Cloud Storage
המצב של משרה עודכן.
השירות מדווח על שגיאות באמצעות השדה error.
הגדרת משרה
הגדרת עבודה מייצגת הרבה מההגדרות השונות שאפשר להתאים אישית כשיוצרים עבודה ושולחים אותה ל-Transcoder API. אתם יכולים לציין הגדרות תצורה כמו עריכת רשימות והוספה של תגי הפסקה למודעה בקובץ מניפסט של פלט. אתם יכולים ליצור תצורות של משימות לשימוש חוזר כתבניות של משימות לשימוש באזור Google Cloud .
מצב עבודה
Transcoder API תומך בשני מצבי עבודה: אינטראקטיבי ועיבוד באצווה.
מצב אינטראקטיבי הוא מצב העבודה שמוגדר כברירת מחדל. משתמשים במצב הזה אם רוצים שהעיבוד של המשימות יתחיל בהקדם האפשרי, או אם רוצים שליטה מדויקת יותר על המשימות שיופעלו קודם. במצב הזה, מכסת מספר המשימות שרצות בו-זמנית קובעת כמה משימות יפעלו בו-זמנית. אחרי שמגיעים למכסה הזו, כל עבודה שמנסים להתחיל נדחית.
משתמשים במצב אצווה כדי לשלוח הרבה משימות שזמן האחזור של העיבוד שלהן לא קריטי כמו של משימות שנשלחות במצב האינטראקטיבי שמוגדר כברירת מחדל. במצב הזה, אפשר לציין את העדיפות של עיבוד המשימה. עבודות שנשלחות במצב אצווה עם אותו ערך עדיפות מוכנסות לתור לפי סדר הכניסה, ומצב העבודה שלהן הוא PENDING בזמן ההמתנה להרצה. במצב הזה, מכסת מספר המשימות באצווה שממתינות בתור קובעת כמה משימות יתווספו לתור. אחרי שמגיעים למכסה הזו, כל עבודה שמנסים להתחיל נדחית. כשמריצים את העבודה, היא עוברת למצב RUNNING. מכסת מספר המשימות בו-זמנית באצווה קובעת כמה משימות יפעלו בו-זמנית.
אפשר להשתמש בשני המצבים בו-זמנית. לאף אחד מהמצבים אין עדיפות על פני השני. מידע נוסף על הגדרת מצב העבודה זמין במאמר בנושא יצירת עבודות במצב אצווה.
תבנית משרה
כברירת מחדל, Transcoder API מחיל תבנית מוגדרת מראש שנקראת
preset/web-hd
כדי לאכלס את הגדרת המשימה. הגדרת המשימה הזו יוצרת את קובצי הפלט הבאים:
-
manifest.m3u8: הפלייליסט הראשי של שידור מדיה בפרוטוקול HLS. הקובץ הזה מכיל הפניות לפלייליסטים של הווריאנט באיכות HD של הפלט ושל הווריאנט באיכות SD של הפלט.-
media-hd.m3u8: פלייליסט לגרסה באיכות HD-
media-hd0000000000.ts: קובץ של קטע וידאו באיכות HD
-
-
media-sd.m3u8: פלייליסט לגרסה באיכות רגילה-
media-sd0000000000.ts: קובץ של קטע וידאו באיכות רגילה
-
-
-
manifest.mpd: הפלייליסט של סטרימינג מדיה בפורמט MPEG-DASH. הקובץ הזה מכיל הפניות לקובצי פלחים של וידאו בלבד ואודיו בלבד.-
audio-only0000000000.m4s: קובץ של פלח אודיו בלבד -
video-only-hd0000000000.m4s: קובץ פלחים של סרטון באיכות HD בלבד -
video-only-sd0000000000.m4s: קובץ של פלח וידאו באיכות רגילה בלבד
-
-
sd.mp4: קובץ וידאו עצמאי באיכות רגילה -
hd.mp4: קובץ וידאו עצמאי באיכות HD
אתם יכולים ליצור ולנהל תבניות מותאמות אישית של משימות ולציין אותן כשיוצרים משימות.
עיבוד מקדים
עיבוד מקדים הוא השלב בעבודה שמתבצע לפני הקידוד הראשי.
הגדרות של עיבוד מקדים
הגדרת עיבוד מקדים מייצגת את ההגדרות שאפשר להחיל על סרטון לפני שלב הטרנסקוד של העבודה. אפשר להחיל חיתוך או ריווח כחלק מההגדרה הזו.
מצב בקרת קצב
מצב בקרת קצב הביט מציין אם לעבד עבודה באמצעות מצבי גורם קצב קבוע (CRF) או קצב ביט משתנה (VBR). השימוש ב-CRF מבטיח איכות קבועה בכל נכסי המדיה שעוברים עיבוד. ה-VBR מבצע אופטימיזציה של תהליך הקידוד כדי להקטין את גודל הקובץ של נכסי המדיה המעובדים. בתרחישי שימוש של סטרימינג, בוחרים במצב בקרת קצב VBR. למטרות ארכיון, בוחרים במצב בקרת קצב CRF.
מניפסט
מניפסט הוא תיאור של התוכן והמטא-נתונים שזמינים בסטרימינג של מדיה דינמית ללקוח. ב-Transcoder API, אפשר להגדיר משימה ליצירת פלט של מניפסט עם שם קובץ, רשימה של זרמים מרובי-ערוצים וגם סוג המניפסט, שחייב להיות HLS או MPEG-DASH.
אטום טקסט
אטום טקסט ממפה את הטקסט מזרם אלמנטרי לרשימת עריכה.
זרם טקסט
זרם טקסט מקודד נתוני טקסט שמשויכים לסרטון, כמו כתוביות סמויות או כתוביות.
המאמרים הבאים
- אפשר לנסות את המדריך למתחילים.
- איך מבצעים משימות ספציפיות ב-Transcoder API