בעיית וידאו מהותית – ופתרון

במסגרת העסק שלי ישנם לקוחות שלקחו רוחב פס מכובד ומשדרים וידאו לכמה אלפי אנשים במקביל. אני נותן תמיכה לבעלי המכונות הוירטואליות, והכל עובד טוב ויפה כולל וידאו לפי דרישה (VOD) ווידאו בשידור חי (Live) ואנשים מצליחים לראות את הוידאו…

חוץ מכמה אנשים, וכמובן שלקוחות הכי מתעצבנים שיש כמה אנשים ששולחים אימיילים שהם לא רואים כלום.

העסק שלי משדר בפרוטוקול RTMP שנותן לא רק אפשרות לשדר שידור חי ולפי דרישה, אלא שהוא יודע להתמודד היטב במצבים בהם הצופה מקפיא שידור, ו"קופץ" בוידאו קדימה ואחורה (בוידאו לפי דרישה), וכמובן שלפני שאני נותן ללקוח את המכונה הוירטואלית, אני מוודא כי הוידאו נצפה בדפדפנים שונים (אקספלורר 8, פיירפוקס 3, כרום 6, אופרה 9) ובמערכות הפעלה שונות.

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

ביקשתי שישלחו לי תמונות מסך לראות את התקלה ולא מצאתי שום דבר שיראה מה הבעיה… עד שראיתי במקרה מהתמונות מסך כי הם משתמשים בחיבור הסלולרי של סלקום.

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

לשמחתי, לא היה מדובר בתקלת הגדרות בשרתים אצלי ולא בתקשורת אצלי, אלא התקלה אצל סלקום. מהי התקלה? די פשוטה:

תוכנת הנגן יוצרת קשר עם שרת הוידאו אצלי ומזדהה עם כתובת IP ומבקשת את התחלת ה-Stream שישודר לנגן. השרת מקבל את הבקשה ומתחיל לשדר, והכל עובד… אם יש לך חיבור כבלים או ADSL. בחיבור עם סלקום, בגלל שהכל סלולרי, כל הסיפור לוקח יותר מ-100 מילישניות, וחומת האש של סלקום מהרגע ש"קולטת" את עניין פתיחת פורט 1935 מנסה לחסום זאת מיידית. חומת האש מצליחה לעשות זאת אם יש בקשה אחת, אבל אם המשתמש לוחץ על Play שוב ושוב, אחרי 5 פעמים בערך חומת האש "מרימה ידיים" ויש שידור.

עיון מהיר במסמכים של מספר תוכנות שידור מראה כי אפשר לפתוח עוד פורטים כמו פורט 80 (ובעצם לעבור לשידור ב-RTMPT) שהוא אינו חסום אצל סלקום בברירת המחדל. הגדרתי את השרת וידאו לשדר גם בפורט 80 ובנוסף את פורט 1935 והפלא ופלא – השידור רץ חלק. (ניסיתי זאת על FMS של אדובי, Wowza, ו-Red5).

לכן, אם אתם משדרים וידאו לקהל שאינכם יודעים איך הוא מתחבר לרשת, פתחו גם את פורט 80 וגם את פורט 1935. אם אתם מריצים שרת ווב כמו אפאצ'י או IIS, מומלץ להוסיף כתובת IP לשרת ולכוון את הגדרות ה-Listen ל-IP הנוסף, ולהגדיר כמובן את ה-DNS בהתאם.

שימו לב: לשיטת עבודה עם RTMPT ופורט 80 יש חסרון אם כמות התעבורה היוצאת מחושבת (כמו במקרים של אמזון EC2) לפי תשלום פר מגה או ג'יגהבייט, הואיל והשרת צריך להצמיד HTTP Headers לכל "הודעה". בשידור לכמה אלפי לקוחות זה יחסית זניח, בשידור למיליוני אנשים בעת ובעונה אחת, זה לא כל כך זניח.

Comments

comments

תגובה אחת בנושא “בעיית וידאו מהותית – ופתרון

  1. שלום חץ
    יש לי תוכנה שבנינו והיא עובדת עם שרת RED5 וכל פעם שאני מפעיל אותה להקלטה וידאו הוא יוצר לי 2 קבצים קובץ הוידאו ריק ועוד קובץ גדול SER שלא עובד
    ופעמים התוכנה עובדת 4 5 פעמים ושוב פעם אותו בעיה
    ניתקתי חומת אש כיבתי אינטרנט כלום לא עוזר
    האם יש פתרון לזה
    תודה

סגור לתגובות.