XVID–הפורמט שצריך לסיים את חייו

בימים האחרונים מתחוללת לה “מהומה” זעירה, לאחר שקבוצות המשחררות טורנטים של סדרות וסרטים (פיראטיים כמובן) החליטה לעבור פורמט. רבים לא כל כך מבינים על מה המהומה ופוסט זה ינסה לעשות קצת סדר, מבלי להיכנס לעומק הפורמטים, לטובת הקוראים שאינם בקיאים בתחום.

קצת היסטוריה: כל וידאו קליפ שאתם צופים בו ברשת או בבית מקודד עם 2 מפענחים (codecs). האחד לאודיו והשני לוידאו. קובץ AVI טיפוסי שאתם מורידים הוא בעצם קובץ שבנוי בסטנדרט שנקרא RIFF והקובץ מסודר בשיטה כזו שהוא אומר לנגן: הוידאו שבקובץ זה מקודד עם מפענח וידאו מסוג X, ומפענח אודיו מסוג Y. הסטנדרט גם אומר לנגן הוידאו דברים כמו רזולוציית הוידאו, כמה ביט צבע יש לוידאו, כמה ביט אודיו יש ועוד פרמטרים.

XVID הוא בעצם גירסת קוד פתוח ל-DIVX ו-DIVX הומצא לראשונה לאחר שמישהו לקח מפענח של מיקרוסופט (שנקרא DIV3) והעביר אותו מספר שינויים להיות יותר תואם לדברים אחרים. בסופו של דבר קמה חברה בשם DivX Network שהפכה את המפענח למשהו מסחרי עם כלים פשוטים (וחלקם חינמיים) למשתמשים הביתיים, אבל עם רשיון לא פתוח. XVID הוא בעצם בניה של אותו מפענח – בגירסת קוד פתוח.

הפופולריות של XVID צמחה מכיוון שזה היה המפענח הראשון שנתן תוצאות טובות של דחיסת וידאו בצפיה Offline (המפענח אינו תומך בזרימה רגילה באינטרנט ומה שסטרימרים עושים זה בניית פתרון עקיף תוך שימוש באנקפסולציה של פרוטוקולי רשת שונים [Samba, HTTP וכו’]). ככל שהפופולריות של המפענח גדלה, החלו לצאת גם פתרונות חומרה, במיוחד כשיצאו צ’יפים טיוואניים מאוד זולים (חצי דולר, בכמות של 1000) שיודעים לפענח את XVID.

כך הכל עבד, אבל במקביל העולם השתנה. יותר ויותר חברות אימצו את תקן H.264 שהוא תקן הרבה יותר מאסיבי לקידוד וידאו. בתקן זה ישנם פתרונות שיודעים לתמוך החל בטלפון הכי פשוט ועד רזולוציות של 5K ומעלה של וידאו עם דחיסה משתנה מרמה של 2G בטלפון סלולרי ועד שידורי אולפן מקצועיים בעשרות מגהביט לשניה.

כמובן שתקן משוכלל כזה אינו מגיע בחינם. התקן הורכב ע”י נציגים של חברות טכנולוגיה שונות (אפל, מיקרוסופט, סוני, פיליפס ועוד) ואותן חברות הקימו את MPEG-LA הגוף שדורש תמלוגים על כל פיפס שתקודד/תייצר עם H.264 מה שגרם כמובן להתמרמרות אצל המשתמשים ואצל חברות כאחד.

וכרגיל, מי בא להושיע? קוד פתוח כמובן. בחור בשם Laurent Aimar ואחרים בקבוצת x264 team השיגו בדרכים שונות את המפרט (בדרך רשמית יש לשלשל ל-MPEG-LA סכום “סימלי” של 30,000 דולר עבור הניירת!) והקבוצה מימשה בקוד את המיפרט ומשם הדרך היתה קצרה מאוד לשילוב הפרוייקט בפרוייקטים כמו FFMPEG ו-VLC, שהם  2 הכלים הכי פופולריים בתחום ניגון וידאו.

נחזור למציאות בת זמננו: כל טלפון חכם וטאבלט תומך ב-H.264 אך רובם אינם תומכים ב-XVID. יהיו כמובן אלו שיאמרו “אבל אצלי ב-IPAD קבצי XVID מתנגנים חלק” וזה נכון, אבל התמיכה נעשית ברמת תוכנה, כלומר כשאתה מנגן סרט שמקודד ב-XVID אז הוא מפוענח על ידי המעבד עצמו כלומר ברמת תוכנה, מה שכמובן מרוקן מהר משאבי סוללה ומחמם את המכשיר וזאת בניגוד לקידוד H.264 שמפוענח ישירות ע”י הצ’יפ הגרפי במכשיר. בנוסף, XVID בהשוואה ל-H.264 מאוד גרוע בחסכון של מקום. כמה גרוע? עם פרופיל בסיס של H.264 ניתן להגיע לחסכון של 20-30 אחוז באותו וידאו קליפ עם אותה רזולוציה.

אז על מה המהומה? אותם קבוצות שמכירות את פורמט H.264 החליטו לאמץ אותו לחיקם, ובכך לאפשר למכשירים מודרניים לנגן וידאו שמורידים בטורנט – בקלות על כל מכשיר ללא צורך בתוכנות נוספות. מכשירי טלפון חכמים כמו טאבלטים, קונסולות משחקים ועוד יודעות להתמודד עם קבצי H.264 בצורה יפה מאוד, אבל אלו שנמצאים עם נגני DVD שיודעים רק לתמוך בפורמטים כמו DIVX/XVID ו-MPEG-1/2 אינם יכולים להתמודד טוב עם קבצי H.264, אז הם מתלוננים (פיראטים מתלוננים.. איזה עולם)

אבל יש עוד סיבה שהיא יותר Side Effect שאפילו ראשי הקבוצות לא כל כך חשבו עליה: בראם כהן ישחרר במסגרת החברה שלו כקוד פתוח את BT-Live, מוצר הסטרימינג שמבוסס ביטורנט (ולא, לא מדובר על הטריק שיש ב-uTorrent של ניגון וידאו שבסך הכל מתעדף חלקים בצורה שונה מהורדה רגילה), מה שיאפשר לך (המשתמש הפיראטי, נו נו נו, אותך לחברות המדיה… Smile ) לגלוש לאתר הטורנטים האהוב עליך, ללחוץ על הפרק בסידרה האהובה עליך ולצפות בו תוך שניות ספורות. פורמט H.264 מתאים מאוד לשידור בזרימה (וזה יהיה גם הכאב ראש הבא של האולפנים, אבל זה נושא לפוסט אחר).

לסיכום: לפעמים צריך לדעת לוותר על מפענחים ישנים לטובת מפענחים מודרניים יותר משוכללים ויותר חסכוניים ואסור להקשיב לקבוצה שרוצה להתבכיין למה הנגן DVD ב-200 שקל שלהם לא מנגן את הוידאו. הוא לא מנגן? חבר כבל HDMI לטלפון שלך או למחשב שלך ותנגן. הקידמה כבר כאן.

אגב, "פרסומת" קטנה: מעתה "חץ ביז" מוכרים שרתי VPS באירופה במחיר מצחיק – החל מ-90 שקלים לחודש!

כמה מילים על WebM

לפני מס' חודשים גוגל רכשה את חברת On2, החברה שיצרה מקודדי וידאו עצמאיים למגוון מוצרים. את המקודדים היה אפשר לראות בפעולה בוידאו של "תפוז" לדוגמא, ובגירסה יותר מאוחרת (VP6) ב-YouTube ובסקייפ (בגירסאות הראשונות שנתנו לשדר/לקלוט וידאו).

המוצר האחרון של חברת On2 היה מקודד בשם "VP8" עם הבטחות מכאן ועד להודעה חדשה שלא ממש מסתדרות עם המציאות. כך לדוגמא החברה הודיעה כי VP8 הוא הרבה יותר טוב מהמקודד המוביל כיום (H.264). אנשי הוידאו בחברות שונות ניסו את המקודד של On2 ובלשון המעטה לא בדיוק התרשמו ממנו.

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

עכשיו שהקוד בחוץ, רבים תוהים האם המקודד הנ"ל יצליח להתגבר על H.264. בחור בשם ג'ייסון גרט גלייזר (מי שמפתח מקודד H.264 בקוד פתוח) כתב סקירה על הקוד. הבחור בהחלט קוטל ללא רחם את המקודד החדש ובצדק, בגלל מס' סיבות:

  • ראשית, אין מפרט טכני, שזה בניגוד כמעט לכל מקודד (כמעט, למעט מקודדים אזוטריים כמו SNOW ועוד כמה מקודדים נשכחים שהיו בשימוש רק בכמה אפליקציות). כשאין מפרט טכני, הבעיות מתחילות: אין אפשרות לממש את המפרט בצורות אחרות, אין אפשרות לעשות סטנדרט כלשהו וכל אחד יכול ליצור בעצם מקודד שאינו תואם למקור.
  • חברות וידאו רבות יכולות לנשום לרווחה (אפל, מיקרוסופט, אדובי וכו'): המקודד לא נותן שום יתרון כשזה מגיע לשידור וידאו. אדרבא, הוא מאוד גרוע בכך (לפי כותב הסקירה, יש שם חלק שלעיתים כשהוא לא מצליח לקודד פריים מסויים, הוא מנסה שוב ושוב, מה שאומר שהוידאו לא יהיה חלק לעיתים ולא בגלל רוחב הפס, אלא בגלל הקידוד). יהיה אפשר אולי לשדר איתו ב-HTTP, אך בהשוואה למה שפלאש וידאו נותן, VP8 פשוט לא נותן תחרות. אגב, מי שמפנטז על סטרימינג של HD עם VP8 מוזמן לרדת מהפנטזיה. זה לא עובד.
  • מבחינת איכות הוידאו, הסוקר משווה את המקודד ושם אותו בין קידוד XVID החופשי ל-VC1 של מיקרוסופט. זה לא רע, אבל מתחרה רציני ל-H.264 הוא לא.
  • מבחינת תחרות לקידוד H.264, הקידוד של VP8 יכול אולי, אולי להתחרות ברמה הבסיסית (Base Profile) של H.264 אך לא ברמות יותר גבוהות ש-H.264 מציע.
  • גוגל עשו שטות: לאחר שהם תרמו את הקוד הם הכריזו עליו כ"גירסה סופית", כלומר מה שנכנס הוא מה שיהיה וחברות שירצו לתת שרותים סביב VP8 יאלצו להשתמש בקוד שמלא באגים. גוגל לא הולכת להשקיע ולתקן את מה שכבר פיתחו On2, כך שאם יהיו פתרונות האצה ל-VP8, הם יבוססו על אותו קוד מלא באגים וחבל.
  • מי שחושב ש-VP8 מעניק חסינות מפטנטים מוזמן להתעורר: הסוקר אינו עו"ד, אך הוא מציין כי מבחינת המקודד, יש בו הרבה חלקים חופפים שנכנסים תחת פטנטים מסויימים, כלומר אם מחר קבוצת ה-MPEG LA תרצה להתחיל לתבוע על הפרת פטנטים, סביר להניח שיהיה לה קייס לא רע. מי שמצפה להגנה מצד גוגל יכול לשכוח מכך.

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

אין ספק שהתרומה של גוגל עוזרת בהשוואה למצב הקודם (Theora), אך עדיין יש צורך בעוד השקעה כדי לקבל מקודד עם יחס דחיסה הרבה יותר רציני, עם תמיכת Streaming טובה. גוגל עשתה עבודה מעולה בכך שרתמה את מוזילה ואופרה על מנת לתמוך במקודד הזה ואף הצהירה כי יו-טיוב יציע וידאו ב-VP8, אך עדיין: עוד קצת השקעה והתמונה היתה נראית אחרת לגמרי.