שקיפות בגרסת אלפא בסרטונים של Chrome
Chrome 31 תומך עכשיו בשקיפות אלפא של וידאו ב-WebM.
במילים אחרות, Chrome לוקח בחשבון את ערוץ האלפא כשמפעילים 'מסך ירוק' סרטונים שמקודדים ל-WebM (VP8 ו-VP9) עם ערוץ אלפא. המשמעות היא שאתם יכולים להפעיל סרטונים עם רקע שקוף: בדפי אינטרנט, בתמונות ואפילו בסרטונים אחרים.
יש הדגמה ב- simpl.info/videoalpha. קצת סוריאליסטי, וקצת לא טובה (כלשהו) אבל הבנתי את הרעיון!
איך יוצרים סרטוני אלפא
השיטה שתיארנו משתמשת בכלי הקוד הפתוח Blender ו-ffmpeg:
- מצלמים את נושא הצילום מול רקע בצבע אחד, למשל צבע בהיר. וילון ירוק.
- עיבוד הסרטון כדי לבנות מערך של תמונות סטילס בפורמט PNG עם שקיפות .
- יש לקודד לפורמט וידאו (במקרה הזה, WebM).
יש גם כלים קנייניים לביצוע את אותה עבודה, כמו Adobe After Effects, שאותם ניתן למצוא לפשוט יותר.
1. יצירת סרטון עם מסך ירוק
קודם כל, צריך לצלם את הנושא באופן שבו ניתן 'להסיר את הרקע' (בוצעה שקיפות) על ידי עיבוד לאחר מכן.
הדרך הקלה ביותר לעשות זאת היא לצלם מול רקע בצבע אחד, כמו מסך או וילון. ירוק או כחול הם הצבעים הנפוצים ביותר, בעיקר בגלל ההבדלים שלהם בין גווני העור.
יש כמה מדריכים באינטרנט לצילום סרטונים עם מסך ירוק (שנקראים גם Chroma key) ובהרבה מקומות שבהם אפשר לקנות ירוק לרקעים של מסך כחול. לחלופין, אתם יכולים לצבוע את הרקע באמצעות Chroma Key Paint.
אוסף ה-VFX של יום גטסבי הגדול מראה כמה אפשר להשיג עם מסך ירוק.
כמה טיפים לצילום:
- צריך לוודא שאין בגדים או אובייקטים באותו צבע בתור הרקע, אחרת הם יופיעו כ'חורים' בסרטון הסופי. גם סמלי לוגו או תכשיטים קטנים יכולים להיות בעייתיים.
- השתמשו באור עקבי ואחיד ונמנעו מצלליות. המטרה היא טווח צבעים קטן ככל האפשר ברקע, אשר בהמשך צריכים להיות שקופים.
- השימוש במספר אורות מבוזרים עוזר למנוע צלליות וצבעי רקע שונות.
- לא מומלץ להשתמש ברקע מבריק: משטחים מט מפזרים את האור בצורה טובה יותר.
2. יצירת סרטון אלפא גולמי של סרטון עם מסך ירוק
בשלבים הבאים מתוארת דרך אחת ליצירת סרטון אלפא גולמי מסרטונים עם מסך ירוק:
- אחרי שמצלמים סרטון עם מסך ירוק, אפשר להשתמש בכלי קוד פתוח כמו Blender כדי להמיר את הסרטון למגוון של קובצי PNG עם נתוני אלפא. אפשר להשתמש במקש הצבע של בלנדר כדי להסיר את המסך הירוק ולהפוך אותו לשקוף. (לתשומת ליבכם: PNG אינו חובה: כל פורמט ששומר נתונים של ערוץ אלפא הוא תקין).
המרת המערך של קובצי PNG לסרטון YUVA גולמיים באמצעות כלי בקוד פתוח. כמו ffmpeg:
ffmpeg -i image%04d.png -pix_fmt yuva420p video.raw
לחלופין, יש לקודד את הקבצים ישירות ל-WebM, באמצעות פקודת ffmpeg כך:
ffmpeg -i image%04d.png output.webm
אם אתם רוצים להוסיף אודיו, תוכלו להשתמש ב-ffmpeg כדי להוסיף אודיו לקובץ הזה באמצעות פקודה כמו הזה:
ffmpeg -i image%04d.png -i audio.wav output.webm
3. קידוד וידאו מסוג אלפא ל-WebM
ניתן לקודד סרטוני אלפא גולמיים ל-WebM בשתי דרכים.
עם ffmpeg: הוספנו תמיכה ב-ffmpeg לקידוד סרטוני אלפא של WebM.
שימוש ב-ffmpeg עם וידאו קלט כולל נתוני אלפא, ויש להגדיר את פורמט הפלט כ- WebM והקידוד יבוצעו באופן אוטומטי בפורמט הנכון בהתאם למפרט. (הערה: בשלב זה צריך להקפיד להוריד את הגרסה העדכנית של ffmpeg מעץ ה-git עבור כדי שזה יעבוד.)
פקודה לדוגמה:
ffmpeg -i myAlphaVideo.webm output.webm
באמצעות Webm-tools:
git clone https://chromium.googlesource.com/webm/libvpx
webm-tools הוא קבוצה של כלים פשוטים בקוד פתוח הקשורים ל-WebM, שמתוחזקים על ידי מחברי פרויקט WebM, כולל כלי ליצירת סרטוני WebM עם שקיפות אלפא.
מריצים את הקובץ הבינארי עם
--help
כדי לראות את רשימת האפשרויות שנתמכות על ידי alpha_encoder.
4. הפעלה ב-Chrome
כדי להפעיל את קובץ ה-WebM המקודד ב-Chrome, פשוט הגדר את הקובץ כמקור של רכיב וידאו.
איך הם עשו זאת?
שוחחנו עם מהנדס Google ויגנש Venkatasubramanian על עבודתו פרויקט. הוא מסכם את האתגרים העיקריים שנדרשים:
- ה-bitstream של VP8 לא תומך בערוץ אלפא. אז נאלצנו לשלב אלפא מבלי לפרוץ את ה-VP8bitstream ובלי לשבור את הזרם הקיים לשחקנים.
- הרינדור של Chrome לא הצליח לעבד סרטונים בגרסת אלפא.
- ב-Chrome יש מספר נתיבי רינדור במספר מכשירי חומרה או GPU. הכול היה צורך לשנות את נתיב הרינדור כדי שיתמוך ברינדור של סרטוני אלפא.
אנחנו יכולים לחשוב על הרבה תרחישים מעניינים לדוגמה של שקיפות אלפא של וידאו: משחקים, סרטונים אינטראקטיביים, מספר סיפורים שיתופי (הוסיפו את הסרטון שלכם סרטון/תמונת רקע), סרטונים עם דמויות או עלילות חלופיות, אפליקציות אינטרנט שמשתמשים ברכיבי וידאו בשכבת-על.
יצירת סרטים מהנה! נשמח לשמוע אם אתם יוצרים משהו מדהים עם אלפא במידה הולמת.