מקודדי ביניים – כדאי להשתמש?

אחד ההבדלים הגדולים ביותר שקיימים בשוק יצירת תכנים – קשור למקודדי ביניים, אותם Mezzanine Codecs כמו DNxHD/DNxHR/Prores/Cineform וכו'.

בדרך כלל כשמצלמים סרטים, או כל תוכן במצלמות מקצועיות ויקרות (ואני מתכוון למצלמות שמתחילות במחיר של 10-15 אלף דולר ומעלה), בדרך כלל הוידאו יוקלט עם מקודדים כאלו, או שיוקלט כ-RAW או עם דחיסה לא כל כך משמעותית, כמו במקרים של Red, Arri Alexa ולאחרונה גם מצלמות של חברת Blackmagic Design מאפשרים לשמור ב-RAW או במקודד קרוב לכך (חוץ מאשר אפשרויות שמירה ב-Prores בפרופילים שונים).

לעומת זאת, במצלמות שנמכרות במחירים החל מכמה מאות דולרים ועד כמה אלפי דולרים, קידוד הוידאו יהיה ב-H.264 או H.265 באחד מהפרופילים של ה-Codec, בהתאם להחלטת המשתמש. כך לדוגמא יש את H.264 GOP ששומר את כל הפריימים (כלומר הכל I) והוא יותר קל לעבוד בעריכת וידאו רצינית (אבל הוא עדיין לא "קל לעיכול" למערכת כמו מקודדי הביניים). בדרך כלל מי שיצלם בשיטות האלו יהיו אלו היוטיוברים למיניהם, צלמי חתונות ואירועים ועוד. יש כמובן גם כאלו שמשתמשים במצלמות הנ"ל יחד עם מקליטים חיצוניים כדי להקליט קבצים בקידודי ביניים.

להלן קליפ מהערוץ של Gerald Undone שיסביר את ההבדל המהותי בין ה-H.264/H.265 לבין מקודדי ביניים. שימו לב, הוא מדבר על הדברים בקצרה. יש קליפים אחרים שמסבירים הרבה יותר לעומק, למי שמעוניין..

אפשר לסכם את היתרונות של 2 השיטות כך:

  • קידודי Delivery כמו H.264/H.265 – מעולים בשמירה בקבצים בגודל קטנים, כל תוכנת עריכה תקבל אותם, ואפשר לנגן אותם ישירות בכל מחשב ובכל ציוד.
  • קידודי ביניים – יוצרים קבצים יותר גדולים אך שומרים הרבה יותר פרטים, מעולים לעבודות עריכת וידאו מורכבות ברמות שונות. ניתן להחליט איזה מקודד ואיזה פרופיל מקודד על מנת לשמור על איזון של גודל קובץ (או ליתר דיוק: Bitrate) מול איכות וידאו שתישמר.

חסרונות:

  • H.264/H.265 – ככל שמוסיפים יותר אפקטים, LUT ודברים נוספים לקליפים בעת העריכה, העורך "יגמגם" יותר הואיל והוא צריך לחשב שוב ושוב את מיקום הפריים, אפקטים וכו' על אותו פריים ועוד. דבר זה אינו קיים במקודדי ביניים.
  • קבצים גדולים שמקודדים במקודדי ביניים יהיו בעיה לשימוש ועריכה במחשבים ניידים שאין להם דיסק SSD חיצוני או SSD גדול פנימי (ועם הרבה מקום פנוי)

אז עם איזו שיטה כדאי יותר לעבוד? זה תלוי בעצם בראש ובראשונה מי אתה.

  1. אם אתה יוצר תכנים שמיועדים לפלטפורמות שידור באינטרנט (יוטיוב, Vimeo) וכל מה שחשוב לך זה התוכן, אבל לא כל ביט של צבע, אתה מוסיף אולי LUT, מבצע כמה חיתוכים וכמה אפקטים – אז שמירה ב-H.264 במצלמה יכולה לעשות את העבודה די טוב.
  2. אם אתה לעומת זאת יוצר תכנים עבור גופי שידור גדולים – H.264/H.265 יהיו המקודדים אליהם אתה תייצא את התוכן, וברוב הזמן אתה תצטרך לעבוד מול קבצים גדולים שקודדו במקודדי ביניים, ואם אתה משתמש במצלמות די "זולות" (פאנאסוניק S1H, קאנון אבל לא המקצועיים וכו') – תצטרך להשתמש במקליט חיצוני כדי לשמור את הקבצים מקודדים במקודדי ביניים
  3. אם אתה עורך מהבית עבור אולפן ולהעביר אליך קבצים גדולים זו בעיה, אפשר לקודד קבצים כאלו לפרופיל יותר נמוך (גם Prores וגם DNxHD/DNxHR תומכים בכך) שיצור קבצים יותר קטנים שאותם תוכל לערוך. את הקבצים היותר קטנים שומרים מקומית ומעבירים אליך וכשאתה מסיים עריכה, אתה שולח בחזרה את הקבצים שערכת (לא את הקבצים שקודדו במקודדי הביניים) ובאולפן אפשר בכמה קליקים של עכבר להחליף את הקבצים המקודדים בקבצים מקודדים עם פרופיל יותר גבוה. כל העבודה שעשה העורך – תישמר.

אחת השאלות שרבים שואלים בכל הקשור למקודדי ביניים היא: האם, במידה ויש לי מקום פנוי בדיסק, המחשב יצליח לעבוד עם אותם קבצים? ובכן, עם מקודדי ביניים, דרישות ה-GPU וה-CPU הן די צנועות והכל תלוי בראש ובראשונה בדיסק שיש לך. הנה לדוגמא צילום מסך מהמחשב שלי עם ניסוי על דיסק קשיח מכני:

כפי שניתן לראות בתמונה, וידאו ברזולוציות מסוימות ובקידודי Prores שונים – אפשר לערוך בלי יותר מדי בעיות. כמובן שככל שהרזולוציה עולה, וכמות הפריימים לשניה עולה – תצטרכו SSD במקום דיסק קשיח, ואני ממליץ על דיסק קשיח Samsung EVO 860 (אם זה פנימי) או Samsung T5 SSD אם זה חיצוני. המחירים של הדיסקים הללו נוחים (תלוי בתקציב ובגודל SSD שתרצו).

אפשר כמובן להשתמש בדיסק SSD NVME (בחיבור Thunderbolt 3 במק, במחשבים ניידים ב-PC במקרים רבים יש מקום ל-SSD NVME נוסף, וברוב המחשבים מהשנתיים-שלוש האחרונות יש מקום ל-SSD NVME בתצורת מקל על לוח האם או ע"י הוספת כרטיס PCIe זול שעולה 10$) ואז ניתן לערוך כל קובץ שקודד במקודדי ביניים. כך זה נראה כאן:

(במקרה הזה אני משתמש ב-Western Digital SN720 גודל 2 טרהבייט)

אחת הנקודות הנוספות שעורכים רבים מציינים היא חוסר האפשרות שלהם לאחסן מידע רב, ואני בהחלט יכול להבין זאת, אולם יחד עם זאת, לעניות דעתי, Work flow טוב חייב להכיל אמצעי גיבוי קבוע, כמו NAS. פתרון NAS נחמד שאני יכול להמליץ עליו הוא QNAP TS-228A שעולה 739 שקלים ב-KSP (על זה תצטרכו להוסיף מחיר של 2 דיסקים, כמו אלו לדוגמא שעולים 439 שקלים פר דיסק), ובכך אפשר בכל פעם להעביר פרויקט אל המחשב ולערוך, ובסיום – להעביר אל ה-NAS, ואם צריך לערוך שוב, אפשר להעתיק מה-NAS בחזרה (אם אתם בעלי מחשבים ניידים ואתם גם עורכים בשטח, אל תערכו ישירות מה-NAS. ראיתי מספיק מקרים של עורכים שהגיעו עם מחשבים ניידים ו..הם שכחו את הפרויקט בדיסקים בבית).

מבחינה טכנולוגית, דברים משתנים היום במהירות. בעבר, מקליטים חיצוניים היו יקרים מאוד. כיום לעומת זאת, יש מסכים מקליטים חיצוניים כמו Atomos Ninja V שעולים 2300 שקל כולל משלוח לארץ שיודע להקליט ל-Prores, ל-DNxHD, ל-DNxHR ואין צורך בדיסקים SSD קנייניים סופר יוקרתיים. גם SSD SATA טוב של סמסונג יכול לתת מענה מעולה, ואפשר להחליף דיסקים במהירות ולאחר מכן לחבר אותם בחיבור USB פשוט כדי להעביר נתונים. בגלל זה, כותב שורות אלו מתכונן כבר בקרוב לעבור מהקלטות של H.264 להקלטות DNxHR SQ או Prores 422 (אחד מהפרופילים, אני עדיין בודק, יש ל-Prores יתרונות בתחום ה-VBR). זה שקובץ ישקל 20 ג'יגה במקום 4 ג'יגה, לא כזה עקרוני, במיוחד אם אני לא מוציא אותו החוצה לשום מקום ואני כן מקבל איכות הקלטה הרבה יותר גבוהה.

לסיכום: אין שום רע בלהשתמש ב-H.264/H.265 להקלטה ועריכה, אבל לפעמים צריך לשבת כמה דקות ולחשוב ולראות שהשד אינו נורא כל כך אם מקליטים ועורכים עם מקודדי ביניים. מחירי דיסקים ירדו ויורדים, בין אם מדובר בדיסקים מכניים או SSD, המחשב לא צריך להתאמץ יותר מדי בעריכה כשהקבצים מקודדים במקודדי ביניים, והאיכות היא משמעותית הרבה יותר טובה.

ה-LAB הבא: פרק 5, בחירת File system ורשת (חלק ראשון)

בפרק הקודם הזכרתי את עניין קנית JBOD או הקמת שרת קבצים, חיבור ב- +SFP. הפעם נרחיב קצת יותר לגבי אותו חיבור, אבל נתחיל במשהו פשוט. להלן צילום מסך מתוך מכונת VM עם Windows 10 בשרתים שלי:

מה שאתם רואים זה הרצת תוכנת בדיקת מהירות דיסק בשם CrystalDiskMark 6 והתוצאות … לא נראות מי יודע מה, בלשון המעטה. דיסק SSD פשוט ב-400 שקל יתן ביצועים פי 5 מזה ואם תבדקו בתשתית שלכם בעבודה, הביצועים יהיו הרבה יותר גבוהים. (מדוע? כבר אסביר).

נכון להרגע, מכונת ה-ZFS שיש לי היא מכונה די צנועה:

  • מעבד I5 דור שלישי
  • 16 ג'יגהבייט זכרון
  • 4 דיסקים, 2 דיסקים של 2 טרה ו-2 דיסקים של 4 טרה, והם ב-Mirror. הדיסקים כולם של Western Digital מסידרת RED (לא RED PRO) – טעות שעשיתי…
  • 2 דיסקים SSD ממש ישנים בגודל 256 ג'יגה של SANDISK, הם משמשים ל-Cache ול-Log

בקיצור – מכונה מהסוג המאוד נמוך.

ובכל זאת, מה שאנחנו רואים פה, הוא שלמרות שהציוד בקצה המאוד נמוך, המכונה נותנת תוצאות מרשימות. 1 ג'יגהביט בקריאה וכתיבה Sequence, כלומר צוואר הבקבוק איננו מכונת ה-ZFS, אלא התקשורת בינה לשרתים, כלומר לא חשוב איזה מכונה תקנה או תקים, כל עוד היא מחוברת בתקשורת 1 ג'יגהביט, זה מה שתקבל. אפשר כמובן לעשות Teaming ל-2 או 4 חיבורי רשת (לא מומלץ, מקבלים לא מעט נפילות, תלוי בציוד, כבלים) ולקבל תוצאות יותר טובות, אבל עדיין בהשוואה להטמעת ESXI בחברה גדולה – התוצאות יהיו נמוכות יותר.

אז איך נגיע לביצועים טובים מבלי לקחת משכנתא?

נתחיל בתקשורת. בין אם בחרנו להקים שרת קבצים או שרת קטן ולהצמיד לו JBOD, אנחנו צריכים תקשורת מהירה פנימה והחוצה משרת הקבצים לשאר השרתים. לא ניכנס לענייני Teaming כי זה פתרון שאינו אמין כל כך ואנחנו יכולים בין כה לקבל מהירות יותר גבוהה מבלי להשקיע עשרות אלפי שקלים.

האפשרויות שלפנינו הן (אם נצא מתוך הנחה שיש לנו 2 שרתים שמריצים VM/קונטיינרים ושרת קבצים יחיד או שרת עם JBOD):

  • קניית 3 כרטיסי רשת: כרטיס אחד עם זוג פורטים 10GB בחיבור RJ45 ו-2 כרטיסים עם פורט RJ45 במהירות 10 ג'יגה. הכרטיס עם זוג הכניסות ישב בשרת הקבצים ומשם נחבר כבל רשת CAT6 (או 6E) לכל שרת בכרטיס רשת 10GB החדש שרכשנו והתקננו.
  • אופציה נוספת היא רכישת 3 כרטיסי רשת כמו מקודם, רק שהפעם במקום RJ45 אנחנו נקנה כרטיסים שהם +SFP שתומכים ב-Copper (או TwinAx) ונבצע את אותם חיבורים. היתרון? כבלי +SFP הרבה יותר חזקים והחיבור הרבה יותר טוב מ-RJ45.
  • אפשרות נוספת היא כמו האופציה הקודמת, רק עם סיבים אופטיים. אפשר לקנות כרטיסים עם חיבור אופטי (או כרטיסי CNA שמתאימים לעבודה גם עם אופטי וגם עם כבלי Copper). בנוסף לכרטיס ולכבלים יש צורך לרכוש Transceivers על מנת לחבר את הסיבים אליהם ואז לחבר לכרטיס. יש צורך בידע כיצד להגדיר את החיבורי סיבים.
  • אפשרות נוספת וקצת יותר מורכבת היא Infiniband. יש לרכוש כבלים מיוחדים וכרטיסים יעודיים לכך, ויש צורך בידע כיצד להגדיר זאת למערכות הפעלה אחרות.

מבחינת מחירים, כל האופציות שנתתי כאן הם פחות או יותר אותו מחיר (בהבדלים של 100-250 שקל) ואני ממליץ לערוך קצת סקירות שוק ב-eBay לפני קניה.

אם יש לנו יותר מ-2 שרתים שיריצו VM/קונטיינרים, אז אפשר להוסיף לשרת הקבצים עוד כרטיס עם זוג פורטים או לרכוש מלכתחילה כרטיס מרובע פורטים. אם לעומת זאת ה-LAB שלך הוא רחב וכולל 8-10 שרתים פיזיים, כדאי בהחלט לחשוב על Switch לאותו סוג חיבור שאתה רוצה לעבוד איתו.

את כל החיבורים מגדירים כנקודה לנקודה ועדיף להגדיר זאת כ-Subnet אחר מה-Subnet הרגיל שאתם משתמשים על מנת שכל הפעולות הקשורות לדיסק יבוצעו דרך התקשורת המהירה בלבד.

וכאן שוב נחזור לעניין ה-Storage ובמיוחד ל-File system: שום NAS מוכן שתקנו (למעט אלו של iXsystems) לא יתנו ביצועים כמו ש-ZFS נותן. ZFS משתמש ב-RAM וב-SSD בצורה מאוד חכמה ובשעה שפתרונות סטורג' "ביתיים" משתמשים ב-SSD לשם האצת כתיבה/קריאה, ZFS משתמש קודם כל ב-RAM, בשיטת הטרנזאקציות ולוגים ועוד (אפשר לקרוא על כך כאן) ולכן אם אתם רוצים להקים כמה שרתים ועליהם עשרות VM או קונטיינרים, ZFS מתאים לכך הרבה יותר, חוץ מהעובדה שהרבה יותר קל ליצור איתו Snapshots שכוללים לדוגמא את כל מכונות ה-VM או קונטיינרים או תיקיות מסויימות והמערכת יוצרת אוטומטית snapshots יעילים וקטנים לפי מה שמגדירים אותה (אצלי לדוגמא יש snapshots כל רבע שעה, כל שעה, כל יום, כל שבוע, כל חודש וכל רבעון, וכל מה שיש לי ב-ZFS זה דיסקים של 6 טרה, ותתפלאו, כל ה-snapshots לא תפסו הרבה מקום ויחסית קל מאוד לשחזר קובץ/קבצים או תיקיה/תיקיות בעזרת פקודות shell פשוטות מאוד).

בנוסף, מכיוון ש-ZFS עושה המון שימוש ב-RAM כ-Cache רמה ראשונה (רמה שניה, L2 מבוצעת על SSD) – כמה שיותר זכרון שתתנו לו, הביצועים יהיו יותר גבוהים ועם שרתים יד שניה המחירים לא כאלו גבוהים. אם לדוגמא שרתי R610 שרכשתי, אם אכניס להם זכרון שירוץ במהירות 1 ג'יגהרץ אך עם 192 ג'יגהבייט זכרון, עלות הזכרון כולו (12 מקלות של 16 ג'יגהבייט) תעלה לי … 2000 שקלים, שזה פחות או יותר המחיר של .. 32 ג'יגהבייט DDR4. אגב, על R710 (ה"אח" היותר גדול של R610 – אותו דור) אפשר להלביש 288 ג'יגהבייט זכרון מאפס (כלומר ללא המקלות הקודמים ב-3130 ש"ח (פלוס משלוח ומסים לארץ). שוב, לשם השוואה – 64 ג'יגה זכרון DDR4 עולה יותר מ-5000 שקל.

בפרק הבא נדבר על רשתות, VLAN, ציוד מומלץ וכו'.