בדף הזה מוסבר איך ליצור גיליון ספריטים שמכיל פריימים מסרט שמבצעים לו טרנסקוד. המסגרות המוקטנות האלה, שנקראות גם תמונות ממוזערות, שימושיות לארגון התוכן ולצפייה בו בתצוגה מקדימה. כדי ליצור את גיליון הספריטים, משתמשים במערך spriteSheets בתבנית JobConfig.
יש שתי אפשרויות ליצירת גיליון sprite:
- ליצור מספר מוגדר של תמונות ממוזערות שמפוזרות באופן שווה בציר הזמן של סרטון הקלט.
- ליצור תמונה ממוזערת באופן מחזורי, כלומר כל n שניות, בציר הזמן של סרטון הקלט.
יצירת מספר מוגדר של תמונות ממוזערות
ההגדרה הבאה יוצרת גיליון spritesheet בגודל 10x10 של תמונות גדולות וגיליון spritesheet בגודל 10x10 של תמונות קטנות, כל אחד עם 100 תמונות ממוזערות. הערה: כדי ליצור גיליון spritesheet צריך להגדיר לפחות VideoStream אחד בהגדרות של העבודה.
אפשר להוסיף את ההגדרה הזו לתבנית של משימה או לכלול אותה בהגדרה של משימה אד-הוק:
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud שמופיע בהגדרות IAM. -
LOCATION: המיקום שבו המשימה תפעל. להשתמש באחד מהאזורים הנתמכים.הצגת מיקומיםus-central1us-west1us-west2us-east1us-east4southamerica-east1northamerica-northeast1asia-east1asia-northeast1asia-northeast3asia-south1asia-southeast1australia-southeast1europe-west1europe-west2europe-west4me-west1me-central1me-central2
-
STORAGE_BUCKET_NAME: השם של הקטגוריה שיצרתם ב-Cloud Storage. -
STORAGE_INPUT_VIDEO: השם של הסרטון בקטגוריית Cloud Storage שאתם מקודדים, כמוmy-vid.mp4. בשדה הזה צריך להביא בחשבון את כל התיקיות שיצרתם בדלי (לדוגמה,input/my-vid.mp4). -
STORAGE_OUTPUT_FOLDER: שם התיקייה ב-Cloud Storage שבה רוצים לשמור את פלט הווידאו המקודד.
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID",
"config": {
...
},
"state": "PENDING",
"createTime": CREATE_TIME,
"ttlAfterCompletionDays": 30
}
gcloud
- יוצרים קובץ
request.jsonשמגדיר את שדות המשימה. מחליפים את הפרטים הבאים בפקודהgcloud:- STORAGE_BUCKET_NAME: השם של קטגוריית Cloud Storage שיצרתם.
- STORAGE_INPUT_VIDEO: השם של הסרטון בקטגוריית Cloud Storage שאתם מקודדים, כמו
my-vid.mp4. בשדה הזה צריך להביא בחשבון את כל התיקיות שיצרתם בדלי (לדוגמה,input/my-vid.mp4). - LOCATION: המיקום שבו המשימה תפעל. בוחרים מיקום מהרשימה הבאה.
הצגת מיקומים
us-central1us-west1us-west2us-east1us-east4southamerica-east1northamerica-northeast1asia-east1asia-northeast1asia-northeast3asia-south1asia-southeast1australia-southeast1europe-west1europe-west2europe-west4me-west1me-central1me-central2
- STORAGE_OUTPUT_FOLDER: שם התיקייה ב-Cloud Storage שבה רוצים לשמור את פלט הסרטון המקודד.
{ "config": { "inputs": [ { "key": "input0", "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO" } ], "elementaryStreams": [ { "key": "video-stream0", "videoStream": { "h264": { "heightPixels": 360, "widthPixels": 640, "bitrateBps": 550000, "frameRate": 60 } } }, { "key": "audio-stream0", "audioStream": { "codec": "aac", "bitrateBps": 64000 } } ], "muxStreams": [ { "key": "sd", "container": "mp4", "elementaryStreams": [ "video-stream0", "audio-stream0" ] } ], "output": { "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/" }, "spriteSheets": [ { "filePrefix": "small-sprite-sheet", "spriteHeightPixels": 32, "spriteWidthPixels": 64, "columnCount": 10, "rowCount": 10, "totalCount": 100 }, { "filePrefix": "large-sprite-sheet", "spriteHeightPixels": 72, "spriteWidthPixels": 128, "columnCount": 10, "rowCount": 10, "totalCount": 100 } ] } }
- מריצים את הפקודה הבאה:
אמורה להופיע תגובה שדומה לזו:gcloud transcoder jobs create --location=LOCATION --file="request.json"
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID", "config": { ... }, "state": "PENDING", "createTime": CREATE_TIME, "ttlAfterCompletionDays": 30 }
C#
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי C#הוראות ההגדרה שבמדריך לתחילת העבודה עם Transcoder API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Transcoder API C# API.
כדי לבצע אימות ב-Transcoder API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Go
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Goהוראות ההגדרה שבמדריך לתחילת העבודה עם Transcoder API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Transcoder API Go API.
כדי לבצע אימות ב-Transcoder API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך לתחילת העבודה עם Transcoder API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Transcoder API Java API.
כדי לבצע אימות ב-Transcoder API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.jsהוראות ההגדרה שבמדריך לתחילת העבודה עם Transcoder API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Transcoder API Node.js API.
כדי לבצע אימות ב-Transcoder API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
PHP
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי PHPהוראות ההגדרה שבמדריך לתחילת העבודה עם Transcoder API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Transcoder API PHP API.
כדי לבצע אימות ב-Transcoder API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך לתחילת העבודה עם Transcoder API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Transcoder API Python API.
כדי לבצע אימות ב-Transcoder API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Ruby
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Rubyהוראות ההגדרה שבמדריך לתחילת העבודה עם Transcoder API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Transcoder API Ruby API.
כדי לבצע אימות ב-Transcoder API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
משתמשים בהגדרה הזו בסרטון לדוגמה כדי ליצור את גיליונות הספריטים הבאים:
איור 1. גיליון sprites לתמונות קטנות (100 תמונות ממוזערות)
איור 2. גיליון ספריטים של תמונות גדולות (100 תמונות ממוזערות)
יצירת תמונה ממוזערת באופן תקופתי
ההגדרה הבאה יוצרת גיליון sprites של תמונות קטנות וגיליון sprites של תמונות גדולות. כל גיליון ספריטים מכיל תמונות ממוזערות שנוצרו כל 7 שניות מסרטון הקלט. הערה: כדי ליצור גיליון spritesheet צריך להגדיר לפחות VideoStream אחד בהגדרות של העבודה.
אפשר להוסיף את ההגדרה הזו לתבנית של משימה או לכלול אותה בהגדרה של משימה אד-הוק:
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud שמופיע בהגדרות IAM. -
LOCATION: המיקום שבו המשימה תפעל. להשתמש באחד מהאזורים הנתמכים.הצגת מיקומיםus-central1us-west1us-west2us-east1us-east4southamerica-east1northamerica-northeast1asia-east1asia-northeast1asia-northeast3asia-south1asia-southeast1australia-southeast1europe-west1europe-west2europe-west4me-west1me-central1me-central2
-
STORAGE_BUCKET_NAME: השם של הקטגוריה שיצרתם ב-Cloud Storage. -
STORAGE_INPUT_VIDEO: השם של הסרטון בקטגוריית Cloud Storage שאתם מקודדים, כמוmy-vid.mp4. בשדה הזה צריך להביא בחשבון את כל התיקיות שיצרתם בדלי (לדוגמה,input/my-vid.mp4). -
STORAGE_OUTPUT_FOLDER: שם התיקייה ב-Cloud Storage שבה רוצים לשמור את פלט הווידאו המקודד.
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID",
"config": {
...
},
"state": "PENDING",
"createTime": CREATE_TIME,
"ttlAfterCompletionDays": 30
}
gcloud
- יוצרים קובץ
request.jsonשמגדיר את שדות המשימה. מחליפים את הפרטים הבאים בפקודהgcloud:- STORAGE_BUCKET_NAME: השם של קטגוריית Cloud Storage שיצרתם.
- STORAGE_INPUT_VIDEO: השם של הסרטון בקטגוריית Cloud Storage שאתם מקודדים, כמו
my-vid.mp4. בשדה הזה צריך להביא בחשבון את כל התיקיות שיצרתם בדלי (לדוגמה,input/my-vid.mp4). - LOCATION: המיקום שבו המשימה תפעל. בוחרים מיקום מהרשימה הבאה.
הצגת מיקומים
us-central1us-west1us-west2us-east1us-east4southamerica-east1northamerica-northeast1asia-east1asia-northeast1asia-northeast3asia-south1asia-southeast1australia-southeast1europe-west1europe-west2europe-west4me-west1me-central1me-central2
- STORAGE_OUTPUT_FOLDER: שם התיקייה ב-Cloud Storage שבה רוצים לשמור את פלט הסרטון המקודד.
{ "config": { "inputs": [ { "key": "input0", "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO" } ], "elementaryStreams": [ { "key": "video-stream0", "videoStream": { "h264": { "heightPixels": 360, "widthPixels": 640, "bitrateBps": 550000, "frameRate": 60 } } }, { "key": "audio-stream0", "audioStream": { "codec": "aac", "bitrateBps": 64000 } } ], "muxStreams": [ { "key": "sd", "container": "mp4", "elementaryStreams": [ "video-stream0", "audio-stream0" ] } ], "output": { "uri": "gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/" }, "spriteSheets": [ { "filePrefix": "small-sprite-sheet", "spriteHeightPixels": 32, "spriteWidthPixels": 64, "interval": "7s" }, { "filePrefix": "large-sprite-sheet", "spriteHeightPixels": 72, "spriteWidthPixels": 128, "interval": "7s" } ] } }
- מריצים את הפקודה הבאה:
אמורה להופיע תגובה שדומה לזו:gcloud transcoder jobs create --location=LOCATION --file="request.json"
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID", "config": { ... }, "state": "PENDING", "createTime": CREATE_TIME, "ttlAfterCompletionDays": 30 }
C#
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי C#הוראות ההגדרה שבמדריך לתחילת העבודה עם Transcoder API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Transcoder API C# API.
כדי לבצע אימות ב-Transcoder API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Go
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Goהוראות ההגדרה שבמדריך לתחילת העבודה עם Transcoder API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Transcoder API Go API.
כדי לבצע אימות ב-Transcoder API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך לתחילת העבודה עם Transcoder API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Transcoder API Java API.
כדי לבצע אימות ב-Transcoder API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.jsהוראות ההגדרה שבמדריך לתחילת העבודה עם Transcoder API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Transcoder API Node.js API.
כדי לבצע אימות ב-Transcoder API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
PHP
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי PHPהוראות ההגדרה שבמדריך לתחילת העבודה עם Transcoder API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Transcoder API PHP API.
כדי לבצע אימות ב-Transcoder API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך לתחילת העבודה עם Transcoder API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Transcoder API Python API.
כדי לבצע אימות ב-Transcoder API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Ruby
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Rubyהוראות ההגדרה שבמדריך לתחילת העבודה עם Transcoder API באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Transcoder API Ruby API.
כדי לבצע אימות ב-Transcoder API, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
משתמשים בהגדרה הזו בסרטון לדוגמה כדי ליצור את גיליונות הספריטים הבאים:
איור 3. גיליון ספירייט קטן של תמונות (תמונה ממוזערת אחת כל 7 שניות)
איור 4. גיליון sprites גדול של תמונות (תמונה ממוזערת אחת כל 7 שניות)
מתוך סרטון לאימון המודל באורך 60 שניות נוצרות שמונה תמונות ממוזערות.