הטמעת סטרימינג HLS אדפטיבי עם פרופילי איכות מרובים

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

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

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

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
הטמעת סטרימינג HLS אדפטיבי עם פרופילי איכות מרובים
מורכב
~5 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113
  • פיתוח אתר עבור SBH Partners
    פיתוח אתר עבור SBH Partners
    1201
  • פיתוח אתר עבור Red Pear
    פיתוח אתר עבור Red Pear
    619

סטרימינג HLS אדפטיבי: איך זה עובד ולמה זה משתלם

העברת MP4 ישירה דרך HTTP נשברת על סרטונים ארוכים, חיבורים חלשים ומכשירים ניידים. משתמשים ממתינים לטעינה, כל ירידת מהירות הורגת את שימור הקהל, ותעבורת ה-CDN גדלה לשווא. אנו מיישמים HLS (HTTP Live Streaming) — הפרוטוקול של אפל שהפך לתקן דה-פקטו באינטרנט. הווידאו נחתך למקטעים של 2-6 שניות, והנגן בוחר אוטומטית את האיכות לפי רוחב הפס הנוכחי. התוצאה: התחלה מיידית, ללא הקפאות, חיסכון של עד 40% בתעבורה.

יישום ה-HLS שלנו עם סטרימינג אדפטיבי ופרופילי איכות מרובים מבטיח העברת וידאו אופטימלית לכל המכשירים.

עם ניסיון של למעלה מ-5 שנים בסטרימינג וידאו ו-30+ פרויקטים מוצלחים, סיפקנו פתרונות HLS אדפטיביים סוהר. בפלטפורמת למידה מקוונת אחת, הפחתנו את ההמתנה מ-15% לפחות מ-1% על ידי יישום HLS עם שלושה פרופילי איכות וקיצצנו את עלויות ה-CDN ב-35%. לדוגמה, לקוח אחד חסך 400 דולר בחודש בעלויות CDN לאחר יישום פתרון ה-HLS שלנו. אנו מבטיחים פעולה יציבה בכל מכשיר: מ-Android ישן ועד ה-iPhone וה-Smart TV העדכניים ביותר.

למה HLS במקום העברת MP4 ישירה?

MP4 עם הורדה פרוגרסיבית (בקשות byte-range) עובד רק עבור קליפים קצרים ודורש תמיכת שרת (Accept-Ranges, partial content). כדי לעבור לאיכות אחרת, יש לטעון קובץ שני במקביל או לסבול מהמתנה. HLS פותר זאת מבחינה ארכיטקטונית: רשימת השמעה (.m3u8) מכילה קישורים למקטעים בקצבי סיביות שונים; הנגן עובר ביניהם בגבולות המקטעים — ללא הפרעה בנגינה.

סטרימינג HLS אדפטיבי יעיל פי 3 מהעברת MP4 ישירה, ומפחית את ההמתנה בעד 90%.

"HTTP Live Streaming עובד על ידי חיתוך הווידאו להורדות HTTP קטנות, שכל אחת טוענת קטע קצר של הווידאו." — תיעוד המפתחים של Apple

השוואה בין HLS ל-MP4:

תכונה HLS MP4 עם הורדה פרוגרסיבית
התחלה בחיבור איטי מיידית (2-6 שניות) דורש המתנה של 10+ שניות
מעבר איכות חלק, בגבולות המקטעים בלתי אפשרי ללא טעינה מחדש
שמירת מטמון CDN יעילה (מקטעים עצמאיים) חלשה (קבצים גדולים, תוכן חלקי)
תמיכת דפדפן מובנית ב-Safari, HLS.js לאחרים מובנית, אך ללא אדפטיביות
עומס על שרת המקור נמוך (קבצים קטנים נשמרים בקלות במטמון) גבוה (בקשות range)

איך לבחור פרופילי איכות אופטימליים?

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

פרופיל רזולוציה קצב סיביות CRF Preset חיבור יעד
360p 640x360 600 Kbps 28 fast 3G / Edge
720p 1280x720 2500 Kbps 23 fast LTE / 4G
1080p 1920x1080 5000 Kbps 22 medium Wi-Fi / 5G

לסצנות אקשן או ספורט חי, אנו מגדילים את קצבי הסיביות ב-30-50%; למצגות סטטיות, אנו מפחיתים. אנו מעריכים את הפרויקט שלכם ובוחרים פרופילים באופן אישי.

יצירת HLS עם FFmpeg (איכויות מרובות במעבר אחד)

פקודת FFmpeg אחת יוצרת את כל הפרופילים — יעילה יותר מבחינת CPU מאשר תהליכים נפרדים:

ffmpeg -i input.mp4 \
 -map 0:v:0 -map 0:a:0 \
 -map 0:v:0 -map 0:a:0 \
 -map 0:v:0 -map 0:a:0 \
 \
 -c:v:0 libx264 -crf 28 -preset fast \
 -vf:v:0 "scale=640:360:force_original_aspect_ratio=decrease,pad=640:360:(ow-iw)/2:(oh-ih)/2:black" \
 -b:v:0 600k -maxrate:v:0 800k \
 -c:a:0 aac -b:a:0 96k \
 \
 -c:v:1 libx264 -crf 23 -preset fast \
 -vf:v:1 "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2:black" \
 -b:v:1 2500k -maxrate:v:1 3000k \
 -c:a:1 aac -b:a:1 128k \
 \
 -c:v:2 libx264 -crf 22 -preset medium \
 -vf:v:2 "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2:black" \
 -b:v:2 5000k -maxrate:v:2 6000k \
 -c:a:2 aac -b:a:2 192k \
 \
 -hls_time 4 -hls_list_size 0 -hls_flags independent_segments \
 -hls_segment_filename "360p/seg%03d.ts" \
 -var_stream_map "v:0,a:0 v:1,a:1 v:2,a:2" \
 -master_pl_name master.m3u8 \
 %v/index.m3u8

ffmpeg -i input.mp4 \ -map 0:v:0 -map 0:a:0 \ -map 0:v:0 -map 0:a:0 \ -map 0:v:0 -map 0:a:0 \ \ -c:v:0 libx264 -crf 28 -preset fast \ -vf:v:0 "scale=640:360:force_original_aspect_ratio=decrease,pad=640:360:(ow-iw)/2:(oh-ih)/2:black" \ -b:v:0 600k -maxrate:v:0 800k \ -c:a:0 aac -b:a:0 96k \ \ -c:v:1 libx264 -crf 23 -preset fast \ -vf:v:1 "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2:black" \ -b:v:1 2500k -maxrate:v:1 3000k \ -c:a:1 aac -b:a:1 128k \ \ -c:v:2 libx264 -crf 22 -preset medium \ -vf:v:2 "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2:black" \ -b:v:2 5000k -maxrate:v:2 6000k \ -c:a:2 aac -b:a:2 192k \ \ -hls_time 4 -hls_list_size 0 -hls_flags independent_segments \ -hls_segment_filename "360p/seg%03d.ts" \ -var_stream_map "v:0,a:0 v:1,a:1 v:2,a:2" \ -master_pl_name master.m3u8 \ %v/index.m3u8 מחליף את אינדקס הזרם. %v הופך כל מקטע למסגרת מפתח עצמאית — הנגן יכול לעבור איכות באופן מיידי.

מה המשמעות של פרמטרי ה-FFmpeg המרכזיים? - `-map`: בוחר זרמים לכל גרסה. - `-c:v` ו-`-c:a`: מקודד וידאו (libx264 = H.264) ומקודד שמע (aac). - `-crf`: איכות וידאו (נמוך יותר = איכות וקצב סיביות גבוהים יותר). - `-preset`: מהירות דחיסה (fast/medium — איזון בין מהירות לגודל). - `-hls_time`: משך מקטע בשניות. - `-master_pl_name`: שם רשימת ההשמעה הראשית.

מה כלול

אנו מספקים:

  • שירות PHP HLS עם הגדרת פרופילים גמישה (מחלקה -hls_flags independent_segments התומכת בכל מספר פרופילים);
  • מטפל משימות ליצירה אסינכרונית בתור (Laravel Horizon, Redis);
  • הגדרת Nginx עם סוגי MIME נכונים, CORS ושמירת מטמון;
  • נגן המשתמש ב-HLS.js עם גיבוי ל-Safari/iOS;
  • תיעוד לפריסה ואינטגרציה;
  • 30 ימי תמיכה לאחר המסירה.

נגן צד לקוח

HLS.js היא הספרייה העיקרית לדפדפנים ללא תמיכה מובנית (Chrome, Firefox, Edge). קוד האינטגרציה:

<video id="video" controls preload="none"></video>
<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
<script>
  const video = document.getElementById('video');
  const src = '/hls/1/master.m3u8';
  if (Hls.isSupported()) {
    const hls = new Hls({
      maxBufferLength: 30,
      startLevel: -1, // авто-выбор качества
      abrEwmaDefaultEstimate: 1_000_000, // начальная полоса 1 Mbps
    });
    hls.loadSource(src);
    hls.attachMedia(video);
  } else if (video.canPlayType('application/vnd.apple.mpegurl')) {
    video.src = src;
  }
</script>

אחסון מקטעים

עבור סרטון באורך שעה בשלוש איכויות, כ-2000 קבצי HlsService. דיסק מקומי עובד, אך לצורך הרחבה אנו עוברים לאחסון תואם S3 (MinIO, AWS S3). FFmpeg יכול לכתוב ישירות ל-S3 דרך URI של <video id="video" controls preload="none"></video> <script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script> <script> const video = document.getElementById('video'); const src = '/hls/1/master.m3u8'; if (Hls.isSupported()) { const hls = new Hls({ maxBufferLength: 30, startLevel: -1, // авто-выбор качества abrEwmaDefaultEstimate: 1_000_000, // начальная полоса 1 Mbps }); hls.loadSource(src); hls.attachMedia(video); } else if (video.canPlayType('application/vnd.apple.mpegurl')) { video.src = src; } </script> אם הוא נבנה עם .ts התומך ב-S3. חלופה: ליצור מקומית, ואז לסנכרן עם s3://.

תהליך ולוח זמנים

  1. ניתוח — אנו חוקרים את הווידאו המקורי, קהל היעד ודרישות קצב הסיביות.
  2. עיצוב — אנו בוחרים פרופילים, מקודד ופרמטרי ABR.
  3. יישום — אנו מגדירים FFmpeg, כותבים את שירות ה-PHP, מקימים את התור, Nginx והנגן.
  4. בדיקות — אנו בודקים על מובייל, מחשב, Smart TV; מודדים LCP וזמן עד לפריים הראשון.
  5. פריסה — אנו משיקים לסביבת הייצור עם ניטור שגיאות נגן.

לוח זמנים משוער: 2-3 ימי עסקים לאינטגרציה בסיסית. אנו נעריך את הפרויקט שלכם תוך יום אחד — צרו קשר לייעוץ.

טעויות נפוצות וכיצד להימנע מהן

  • חוסר תאימות מקודד: אנו משתמשים ב-H.264 High Profile — נתמך בכל המכשירים.
  • נתיבי רשימת השמעה שגויים: אנו מוודאים נתיבים יחסיים בעת יצירת המקטעים.
  • חוסר CORS: אנו מוסיפים את כותרת libavformat עבור נגנים בדומיינים אחרים.
  • יותר מדי קבצים: אנו מגדירים ניקוי מקטעים ישנים (לשידור חי) או משתמשים ב-S3 עם TTL.

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