וידאו עם HTML-5 מול Flash

בימים האחרונים עולה ברשת שוב הויכוח האם HTML-5 יכול "להרוג" את פלאש מבחינת וידאו.  גם גוגל וגם חברות אחרות נמצאות בתוך הקלחת הזו, אז חשבתי לתרום קצת מנסיוני בתחום הוידאו ולהסביר מס' דברים. במאמר הפעם אני לא אכנס לעניין המקודדים (Codecs)..

בעקרון יש בגדול 2 שיטות לשידור וידאו: שיטה פשוטה ושיטה מתוחכמת.

השיטה הפשוטה היא השיטה שידועה לכולם: לוקחים קובץ וידאו, זורקים אותו לתוך שרת ה-WEB (בין אם זה Apache או IIS), בדף עצמו מטמיעים תוכנת נגן כלשהי (נגן פלאש, Quicktime או Windows Media Player) וכשהמשתמש לוחץ על Play, הנגן מבקש דרך HTTP את קובץ המדיה, הוא מאחסן כמה שניות ומתחיל לפרוס את הקובץ ולנגן אותו תוך כדי שהוא אוגר עוד ועוד וידאו ומנגן אותו. בשיטה זו אתרים פשוטים רבים עובדים (רוב אתרי הפורנו לדוגמא). החסרון בשיטה זו שאם יש איטיות בתקשורת בין שרת ה-WEB לדפדפן שלך, אתה תקבל הרבה הודעות Buffering, והוידאו "יתקע" למשך מס' שניות עד שהנגן יאגור עוד תוכן ורק אז ינגן אותו. חסרון נוסף הוא שאין גמישות מבחינת הקידוד (תיכף ארחיב על כך) והחסרון המשמעותי ביותר: קשה לקבל מידע מפורט כמה זמן משהו נוגן, היכן המשתמש עצר את הוידאו וכו'. היתרון, לעומת זאת, הוא שאין צורך בשרת מיוחד כדי לנגן את הוידאו וכל שרת WEB יוכל להעביר את הוידאו לנגן.

השיטה המתוחכמת היא שיטה שבה משתמשים בשרת מדיה יעודי (כמו Quicktime Server, או Flash Media Server, או Windows Media Services וישנם עוד כמה שרתים כאלו). בשיטה זו לא משתמשים בשרת ה-Web הרגיל אלא משתמשים בשרת מיוחד ובפרוטוקול נפרד (MMS במיקרוסופט, RTSP אצל אפל, Real Network, או RTMP ב-Flash). השימוש בפרוטוקול ובשרת נותנים גמישות רבה יותר. אפשרות לשלוח Bitstream יותר גבוה או נמוך בהתאם למהירות התקשורת של הצד הצופה. אם לדוגמא התקשורת בין שרת המדיה ללקוח גבוהה, אפשר לשדר גירסה עם קידוד ביטים יותר גבוה, ואם מהירות התקשורת באמצע השידור נוחתת, אפשר לשנות מיידית את השידור לגירסה שמתאימה יותר למהירות הנוכחית. אפשר לשלב פרסומת דינמית מותאמת או כל אלמנט טכני אחר באמצע השידור (לדוגמא, החלפת תוכן הדף). אפשר לקבל סטטיסטיקות הרבה יותר מפולחות ומדויקות מי צפה במה וכמה זמן, איך היתה איכות השידור, כמה פעמים הוידאו עצר ועוד ועוד.

סטיב ג'ובס הוא "אנטי" פלאש בגלל כל מיני סיבות והוא דוחף את HTML-5 כתחליף לפלאש, אך התחליף האמיתי בכל הנוגע לוידאו מבחינתו של ג'ובס הוא Quicktime וללקוחות מעוניינים: Quicktime Server (שהמקודדים היוקרתיים שלו עולים כסף), כך שמבחינת אפל, הרווח פשוט יותר גדול כי כך אפשר לעקוף מתחרה ולהרוויח פלח שוק ורווח פיננסי כמובן, אך HTML-5 ותמיכת הוידאו שלו לא עוקפת את מה שיש לפלאש להציע. HTML-5 לא תומך ב-Stream עם מהירות ביטים משתנה, הוא לא תומך בתוכן מוגן, הוא לא תומך בפידבק בחזרה למקרין התוכן ואין בו הרבה דברים למה שפלאש מציע בתחום ניגון הוידאו (ועוד לא הזכרתי את עניין ה-HD). זו הסיבה לדוגמא שיוטיוב לא הולכים מחר לזרוק את Flash לטובת HTML-5. הם יאפשרו ניגון בפורמט HTML-5 אך עדיין ברירת המחדל תהיה פלאש וגוגל מכירים בכך ש-HTML-5 לא יהרוג את פלאש.

לסיכום: HTML-5 בהחלט יכול לעזור בניגון קבצי וידאו פשוטים משרת WEB דרך הדפדפן, אך בשלב זה ל-HTML-5 אין פתרון שמתאים לגופי שידור אינטרנט גדולים כמו Cast-up בארץ, או HULU בחו"ל. פלאש ישאר איתנו זמן רב, גם אם סטיב ג'ובס מתנגד לו.

מחשבות על כרום, כמה ימים אחרי

image

אז גוגל הוציאו את הגירסה הראשונה הציבורית (0.2) של כרום, הדפדפן שלהם שמבוסס על Webkit. כתבתי עליו כבר סקירה והתרשמות אישית, שיחקתי איתו עוד כמה ימים, וככל ששיחקתי איתו יותר, הגיעו לי מס’ מחשבות שאני מעוניין לשתף אתכם בהם.

בהתחלה ההתלהבות ממנוע ה-V8 של כרום הלהיבה את כולם: הנה מנוע JIT שמריץ ג’אוהסקריפט יותר מהר מכל מה שיש, עד שהחבר’ה ב-Firefox ציננו קצת את ההתלהבות בקשר למנוע הנ”ל וברנדן (ממפתחי השועל) הראה כמה גרפים מעניינים של השוואת המנוע החדש בשועל בגירסה 3.1 הקרובה (המנוע נקרא TraceMonkey) בהשוואה ל-V8 והתוצאות אכן מעניינות: נראה כי גירסה 3.1 של השועל תוכל לתת פייט רציני לכרום וגם להשיג אותו בכמה אספקטים (עד שכמובן גם גוגל ישחררו גירסה חדשה).

כיום, עם ג’אוהסקריפט ניתן לעשות דברים רבים הקשורים לויזואליות של הדברים, במיוחד ב-AJAX, אבל אין שום דבר כרגע שממש מנצל את המהירות החדשה שמנוע V8 בכרום ו-TM בשועל שינצל את זה בצורה ממשית. אפשר לראות דוגמא איך אפשר לצייר גרפיקה נחמדה ב-JS כאן שזה רעיון מאוד מעניין, אבל גירסה 3 של השועל גם תומכת (חלקית לפחות) באלמנט ה-Canvas שתגיע עם HTML 5 יום אחד, וכאן אפשר לראות הדגמה יפה מה ניתן לעשות עם זה (בשביל לצפות, חובה להשתמש בגירסת שועל 3 או אופרה 9.5. עם כרום, אגב, הדף מציג תמונה סטטית וזהו).

אבל מנוע JS משופר זה לא מספיק, ואלמנט Canvas מוקדם מדי לשימוש הואיל והוא נמצא במפרט שמשתנה ולא יצא רשמית במהדורה הסופית, כך שעדיין ישנם בעיות רבות ליצור אפליקציות רשת המשתוות באיכותן לאפליקציות מערכת רגילות. יש כמובן חריגים, אבל עדיין, אף אחד לא יכול להשוות את Google Docs ל-Word או Open Office לדוגמא. גם עם מנוע JS מאוד מהיר, יש בעיה לממש את כל הגרפיקה והדברים שצריך בשביל לעשות מעבד תמלילים מקצועי וטוב.

כיום כולם כמעט משתמשים ב-Flash בשביל גרפיקה זזה, הרבה משתמשים ביכולות הוידאו של Flash ועוד דברים, אבל הבעיה המרכזית של Flash שהיא טכנולוגיה קניינית סגורה (למרות שהמפרט פתוח). אנחנו בשנת 2008 ועדיין אין תמיכה עברית מסודרת לדוגמא (נסו לכתוב טקסט מימין לשמאל בתוך אפליקציית פלאש). מתי יהיה? בגירסה 10 של פלאש. מה עם תמיכה יותר טובה ב-Flash ב-Linux? (אין ספור “קפיאות” של השועל על הלינוקסים שלי בגלל Flash הבהירו לי שיציבות זה לא הצד החזק בגירסת ה-Linux של הפלאג-אין) אולי בעתיד. מה עם תמיכה בלינוקסים שלא רצים על מעבד אינטל או AMD? אפשר לחלום על כך, לא מעבר לזה – כלומר הטכנולוגיה הזו עוזרת ליצור דפים יותר דינמיים עם חזות מאוד מרשימה, אבל כמו שהיא עוזרת, היא גם מגבילה, במיוחד את המפתח שלא מומחה ב-Flex או כלים אחרים לפתח יישומוני Flash.

אין ספק ש-HTML 5 בהחלט יעזור לכתוב אפליקציות יותר טובות, אבל יש צורך בהתערבות של עוד גופים שמתמחים בגרפיקה, במיוחד חברות כמו nVidia ו-ATI. מי שכיום מריץ הדגמות של Canvas גם על הדפדפנים הכי חדשים, יראה כי מהירות המימוש מאוד מזכירה כרטיסי גרפיקה של Trident בתחילת שנות ה-90! זה איטי בטירוף, ויש צורך לשכתב חלקים בדפדפנים על מנת שישתמשו בטכנולוגיות שמשתמשות במאיץ הגרפי (כמו שפלאש משתמש כיום). גם מפתחים מקצועיים שמתנסים כיום עם Canvas רואים שהמימוש איטי בטירוף (לא יודע לגבי אקספלורר 8 בטא 2) ומצריך שכתוב כדי לקבל ביצועים הרבה יותר גבוהים.

היתרון הענק, לדעתי, של שועל-האש, גוגל כרום, אקספלורר 8, אופרה 9.5 הוא שסוף סוף, הסטנדרטים ממומשים וקהילת המפתחים ממש לא שומרת לעצמה את ההערות אם מישהו ממפתחי הדפדפנים חורג מהסטנדרטים. כמובן שאנחנו לא בעולם אוטופי ויש חוסרי מימוש לפעמים (אהלן מיקרוסופט! מה שלום אלמנט ה-Video, תמיכה יותר טובה ב-Canvas במקום להשתמש ב-Wrappers עם VML?), אבל נגמרה התקופה שבה דפדפן חדש נחת על המפתחים ועל המשתמשים משמיים ו”זה מה יש ועם זה תסתדר”, מה שהוביל לכל חוסר התאימות בזמנו בין נטסקייפ לאקספלורר לדוגמא. כיום גירסאות דפדפנים משתחררות הן כ-בטא פתוחה (או לגמרי פתוח כמו השועל) ומפתחי הדפדפנים בהחלט מקשיבים ומשתתפים בפורומים ומקבלים פידבק חיובי ושלילי ובאגים. מישהו זוכר דבר כזה באקספלורר 4,5,3 או גירסאות נטסקייפ השונות? היית יכול לקבל בטא אך ורק אם היית מקורב לצלחת.

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