סקירה כללית על Transcoder API

בדף הזה מופיעה סקירה טכנית של Transcoder API, כולל תכונות, מינוחים ומושגים שימושיים. ‫Transcoder API הוא API ל-REST ול-RPC שמאפשר לשלוח, לנטר ולנהל משימות המרה ב- Google Cloud. כדי לשלוח משימות באמצעות Transcoder API, קודם צריך להעלות נכסי מדיה ל-Cloud Storage. אחרי עיבוד של משימה, Transcoder API שומר את קובץ המדיה שנוצר בחזרה ב-Cloud Storage.

תכונות

ה-Transcoder API כולל תמיכה בתכונות הבאות:

מידע נוסף על תקני 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
משך הזמן המקסימלי של EditList24 שעות
מספר מקסימלי של שידורי וידאו70
מספר מקסימלי של סטרימינג של אודיו50
מספר מקסימלי של ערוצי טקסט50
מספר מקסימלי של סטרימינגים של MUX100
מספר מקסימלי של קובצי מניפסט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.

אטום טקסט

אטום טקסט ממפה את הטקסט מזרם אלמנטרי לרשימת עריכה.

זרם טקסט

זרם טקסט מקודד נתוני טקסט שמשויכים לסרטון, כמו כתוביות סמויות או כתוביות.

המאמרים הבאים