בדיקות וידאו - איפה מתחילים?
כיום וידאו הוא חלק בלתי נפרד מחוויית המדיה ברשת ובכל חברה העוסקת בפיתוח חדשני בתחום הבידור, בין אם זה באתר, אפליקציה סלולרית, נטוורקינג וכד', תמצאו עצמכם נדרשים להציג יכולת בדיקות בתחום הווידאו.
אז איפה מתחילים ומה חשוב לדעת לפני שמתחילים:
שיטות שידור: קיימות היום שתי שיטות בהן ניתן להעביר וידאו ברשת; שיטת הזרמת וידאו ישירה, Steaming. ושיטה ישנה יותר Progressive Download ואף זולה יותר.
אז איפה מתחילים ומה חשוב לדעת לפני שמתחילים:
שיטות שידור: קיימות היום שתי שיטות בהן ניתן להעביר וידאו ברשת; שיטת הזרמת וידאו ישירה, Steaming. ושיטה ישנה יותר Progressive Download ואף זולה יותר.
מס' נתונים על שיטתStreaming :
השיטה מספקת יכולת טובה להתמודד עם עומס בקשות ושינויים ברוחב הפס ע"י תמרון בין איכויות הווידאו המסופקות למשתמש הקצה.
בקשת קפיצה מנקודה לנקודה בסרט, ע"י משתמש הקצה, מסופקות בצורה יעילה יותר מהשרת וההורדה תתחיל מנקודת הInter Frame הקרובה.
שיטה זו מאפשרת הזרמת שידור חי. ברחבי פס גבוהים ניתן לעבוד בפרוטוקול UDP או TCP.
קריאה לאותו קטע מספר פעמים יצור בקשות חוזרות (תלוי בגודל הבאפר שהוגדר בנגן בצד משתמש הקצה).
מס' נתונים על שיטת Progressive Download:
בקשת קפיצה מנקודה לנקודה בסרט, ע"י משתמש הקצה, מסופקות בצורה יעילה יותר מהשרת וההורדה תתחיל מנקודת הInter Frame הקרובה.
שיטה זו מאפשרת הזרמת שידור חי. ברחבי פס גבוהים ניתן לעבוד בפרוטוקול UDP או TCP.
קריאה לאותו קטע מספר פעמים יצור בקשות חוזרות (תלוי בגודל הבאפר שהוגדר בנגן בצד משתמש הקצה).
מס' נתונים על שיטת Progressive Download:
בשיטה זו הסרט יורד במלואו למחשב של משתמש הקצה והצפייה מאופשרת תוך כדי הורדה.
עומס בקשות ושינוים ברוחב הפס יגרום לחלקות הצפייה, מהירות הצפייה גבוהה ממהירות הורדה, עד לצבירת קטע מוכן לצפייה.
בקשת קפיצה לנקודה אחרת בסרט , ע"י משתמש הקצה, לא תהיה חלקה לרב (היום ישנם שרתי WEB שתומכים גם בהורדה חלקית).
הוידאו מועבר כפי שהוא שמור ללא שינויי דחיסה.
עבודה בפרוטוקול TCP בלבד.
אין אפשרות הזרמת שידור חי.
על מבנה הווידאו ומושגים נוספים:
GOP - Group Of Pictures. מבנה הפריימים של הווידאו, משקף את הדחיסה ויעילות העברת הווידאו. מבנה הווידאו הדיגיטלי מתחלק, בהתאם סוג הקידוד, לפריימים (Frames) (בשונה מווידאו אנלוגי שהיה משודר בשדות):
הנושא מורכב ומומלץ לקרוא עליו בצורה מסודרת ברשת במקורות האלו; מקור א', מקור ב', מקור ג'. ניתן גם לפנות אליי ואשיב על שאלות.עומס בקשות ושינוים ברוחב הפס יגרום לחלקות הצפייה, מהירות הצפייה גבוהה ממהירות הורדה, עד לצבירת קטע מוכן לצפייה.
בקשת קפיצה לנקודה אחרת בסרט , ע"י משתמש הקצה, לא תהיה חלקה לרב (היום ישנם שרתי WEB שתומכים גם בהורדה חלקית).
הוידאו מועבר כפי שהוא שמור ללא שינויי דחיסה.
עבודה בפרוטוקול TCP בלבד.
אין אפשרות הזרמת שידור חי.
על מבנה הווידאו ומושגים נוספים:
GOP - Group Of Pictures. מבנה הפריימים של הווידאו, משקף את הדחיסה ויעילות העברת הווידאו. מבנה הווידאו הדיגיטלי מתחלק, בהתאם סוג הקידוד, לפריימים (Frames) (בשונה מווידאו אנלוגי שהיה משודר בשדות):
הבעיות היותר הנפוצות בשימוש בקוד הכולל B-frames ו D-frames הוא בתעבורה נקייה וטובה ללא אבדן של מידע בזמן השידור שתוצג כעיוות תמונה.
Frame Rate - נמדד ביחידות של FPS (Frames per second) כמות הפריימים שמועברים בשנייה. הנושא מעניין לכל המעוניין לקרוא, ובגדול, מתייחסים ל25-30 פריימים בשנייה כשידור מציאותי (realtime).
Resolution - מספר הפיקסלים לכל פריים, לרב מוצג כיחס לגובה ורוחב התמונה. מידע נוסף.
Aspect Ratio - היחס בין גובהו ורוחבו של הווידאו.
Bitrate - גודל הווידאו המועבר בכל יחידת זמן לרב לפי שנייה. נתון זה משתנה עם כל שינוי בהגדרות הוידאו כגון: FPS, רזולוציה וכד.
בדיקות – מאיפה מתחילים?
Resolution - מספר הפיקסלים לכל פריים, לרב מוצג כיחס לגובה ורוחב התמונה. מידע נוסף.
Aspect Ratio - היחס בין גובהו ורוחבו של הווידאו.
Bitrate - גודל הווידאו המועבר בכל יחידת זמן לרב לפי שנייה. נתון זה משתנה עם כל שינוי בהגדרות הוידאו כגון: FPS, רזולוציה וכד.
חשוב להבין מהם המשתנים המעורבים בתהליך הזרמת הווידאו (בהתאם לפרויקט כמובן);
יכולת עיבוד והעברת המידע ע"י השרת.
סוג הדחיסה, קידוד וידאו ואודיו.
רוחב הפס.
פרוטוקול תעבורת הנתונים (TCP, UDP).
יכולת כתיבת וידאו וקריאה בRecorders.
כרטיסי הרשת משני הצדדים ותאימות ביניהם.
סוג החומרה של משתמש הקצה.
כרטיס המסך והמעבד (חומרה) אצל משתמש הקצה.
הנגן המציג והיכולות שלו מצד משתמש הקצה.
אלו אלגוריתמים רצים על גבי הווידאו בפרויקט.
שיטת שידור (NTSC, PAL).
סכמת בדיקות.
יכולת עיבוד והעברת המידע ע"י השרת.
סוג הדחיסה, קידוד וידאו ואודיו.
רוחב הפס.
פרוטוקול תעבורת הנתונים (TCP, UDP).
יכולת כתיבת וידאו וקריאה בRecorders.
כרטיסי הרשת משני הצדדים ותאימות ביניהם.
סוג החומרה של משתמש הקצה.
כרטיס המסך והמעבד (חומרה) אצל משתמש הקצה.
הנגן המציג והיכולות שלו מצד משתמש הקצה.
אלו אלגוריתמים רצים על גבי הווידאו בפרויקט.
שיטת שידור (NTSC, PAL).
סכמת בדיקות.
כפי שניתן להבין מהרקע בניית הבדיקות מורכבות ומצריכה בקיעות בפרויקט. בפרויקטים המשלבים גם צד שרת וגם צד משתמש קצה המורכבות אף גדולה ומאתגרת יותר. מאחר וישנם פרויקטים מסוגים שונים ורבים כגון פיתוח DRVs, פיתוח מצלמות בתחום הקידוד והשמירה, פיתוח נגנים ועוד אני משאיר לכם להתאים את הרעיונות לסוג הפרויקט שלכם.
מס' טיפים ורעיונות לבדיקות:
מס' טיפים ורעיונות לבדיקות:
שימוש בווידאו בעל זמן עם מאיות השנייה לבחינת כמות הדרופים (איבוד פריימים).
שימוש בווידאו עם סכמה צבעים לפי סוג הווידאו (NTSC, PAL) – מקור מגוון
שימוש בCPU Stress tool לבחון התמודדות הנגן בסביבה עמוסה.
בחינת כרטיסי מסך שונים לתמיכה בצד לקוח.
שינוי FPS או רזולוציה לבחון השפעה על תעבורת הווידאו.
שינוי בין יחסי המרה ( Aspect ratio) בין המקור לזה המוצג למשתמש הקצה.
שינוי מהירויות ניגון וכיווני ניגון.
שימוש בווידאו עם הצללות לבחינת אלגוריתמים.
שימוש בווידאו מהיר (רכבת, מכוניות) ווידאו רב אובייקטים בתנועה.
בחינת התמודדות הנגן במקרה של צוואר בקבוק ברשת – ניתן ליצור עומס ברשת, ניתן לשנות הגדרות כרטיס רשת ליצור חוסר תאימות או להחליף סוגי כרטיסים שונים.
בחינת מעבר מידע מעורב ברשת, וידאו, אודיו ומידע נוסף בו זמנית מול רשת סגורה לבדיקת ביצועים.
עבודה על סוגי רשת שונים, סלולרי, WIFI וקווי – בדיקה זו מיועדת בעיקר לשרתים בעלי יכולת שינוי קידודים, איכויות ובוחנת בעיקר תעבורה כמו הבדיקה הקודמת.
ניתוקי רשת קצרים בזמן הניגון (הדוגמאות הבאות יבחנו התמודדות עם איבוד פריימים).
מעבר משתמש הקצה מנקודה לנקודה בניגון גם קדימה וגם אחורה.
במערכות מורכבות מספר נגנים ניתן לבצע מניפולציות על 2-3 נגנים בו זמנית (ראיתי כבר מקרים של החלפת מקורות בפרוטוקול UDP).
בדיקת איכות הווידאו תוך כדי בדיקות – איבוד B-frame/P-frame יביא לווידאו חסר מידע/תמונה מעוותת.
סנכרון וידאו ואודיו בצד משתמש הקצה (לאחר פריסת הקידוד).
במקרה של אלגוריתמים הכולל אימות על גבי הווידאו ניתן להיעזר בתוכנות Hex-Editors לשינוי פרמטרים מסוימים בווידאו (ממליץ להיזהר עם זה).
חשוב להבין שכל הבדיקות מחייבות להתבצע ביחס למקור ובהתאם לסוג הפרויקט ומטרתו. הדוגמאות והטיפים שלי מתפרסות על רוחבו של התחום ומקרים בהם עסקתי ולא תמיד יתאימו לכל סוג פרויקט.
שימוש בווידאו עם סכמה צבעים לפי סוג הווידאו (NTSC, PAL) – מקור מגוון
שימוש בCPU Stress tool לבחון התמודדות הנגן בסביבה עמוסה.
בחינת כרטיסי מסך שונים לתמיכה בצד לקוח.
שינוי FPS או רזולוציה לבחון השפעה על תעבורת הווידאו.
שינוי בין יחסי המרה ( Aspect ratio) בין המקור לזה המוצג למשתמש הקצה.
שינוי מהירויות ניגון וכיווני ניגון.
שימוש בווידאו עם הצללות לבחינת אלגוריתמים.
שימוש בווידאו מהיר (רכבת, מכוניות) ווידאו רב אובייקטים בתנועה.
בחינת התמודדות הנגן במקרה של צוואר בקבוק ברשת – ניתן ליצור עומס ברשת, ניתן לשנות הגדרות כרטיס רשת ליצור חוסר תאימות או להחליף סוגי כרטיסים שונים.
בחינת מעבר מידע מעורב ברשת, וידאו, אודיו ומידע נוסף בו זמנית מול רשת סגורה לבדיקת ביצועים.
עבודה על סוגי רשת שונים, סלולרי, WIFI וקווי – בדיקה זו מיועדת בעיקר לשרתים בעלי יכולת שינוי קידודים, איכויות ובוחנת בעיקר תעבורה כמו הבדיקה הקודמת.
ניתוקי רשת קצרים בזמן הניגון (הדוגמאות הבאות יבחנו התמודדות עם איבוד פריימים).
מעבר משתמש הקצה מנקודה לנקודה בניגון גם קדימה וגם אחורה.
במערכות מורכבות מספר נגנים ניתן לבצע מניפולציות על 2-3 נגנים בו זמנית (ראיתי כבר מקרים של החלפת מקורות בפרוטוקול UDP).
בדיקת איכות הווידאו תוך כדי בדיקות – איבוד B-frame/P-frame יביא לווידאו חסר מידע/תמונה מעוותת.
סנכרון וידאו ואודיו בצד משתמש הקצה (לאחר פריסת הקידוד).
במקרה של אלגוריתמים הכולל אימות על גבי הווידאו ניתן להיעזר בתוכנות Hex-Editors לשינוי פרמטרים מסוימים בווידאו (ממליץ להיזהר עם זה).
חשוב להבין שכל הבדיקות מחייבות להתבצע ביחס למקור ובהתאם לסוג הפרויקט ומטרתו. הדוגמאות והטיפים שלי מתפרסות על רוחבו של התחום ומקרים בהם עסקתי ולא תמיד יתאימו לכל סוג פרויקט.
תגובות