שילוב סטרימינג של Twitch לאפליקציות מובייל

שידורים ניידים ב-Twitch סובלים לעיתים קרובות מנפילות וקפיאות עקב רשתות לא יציבות והתנגשויות בסשן שמע. אנחנו בונים אינטגרציית שידור מאפליקציות מובייל באמצעות Amazon IVS, ומגדירים קצב סיביות אדפטיבי וטיפול בהפרעות. הצוות שלנו מספק פרויקטים סוהר—מבדיקה ועד תמיכה—ומבטיח שידור יציב ב-iOS וב-Android.

פיתוח ותמיכה בכל סוגי היישומים הניידים:

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

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

השירותים שאנו מציעים
מציג 1 מתוך 1כל 1734 השירותים
שילוב סטרימינג של Twitch לאפליקציות מובייל
בינוני
~5 ימים

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

שאלות נפוצות

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

  • פיתוח אפליקציית מובייל עבור FEEDME
    פיתוח אפליקציית מובייל עבור FEEDME
    971
  • פיתוח אפליקציית מובייל עבור XOOMER
    פיתוח אפליקציית מובייל עבור XOOMER
    869
  • פיתוח אפליקציית מובייל עבור RHL
    פיתוח אפליקציית מובייל עבור RHL
    1289
  • פיתוח אפליקציית מובייל עבור ZIPPY
    פיתוח אפליקציית מובייל עבור ZIPPY
    1143
  • פיתוח אפליקציית מובייל עבור Affhome
    פיתוח אפליקציית מובייל עבור Affhome
    1076
  • פיתוח אפליקציית מובייל עבור חברת FLAVORS
    פיתוח אפליקציית מובייל עבור חברת FLAVORS
    677

שילוב סטרימינג של Twitch עבור אפליקציות מובייל

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

לפי תיעוד Amazon IVS Broadcast SDK, קצב סיביות אדפטיבי (IVSAutoQualityMode) מפחית את מספר הקפיאות ב-60% כאשר איכות הרשת מתדרדרת.

למה קצב סיביות אדפטיבי קריטי לסטרימים במובייל?

קצב סיביות קבוע הוא גורם נפוץ לחוויית שימוש ירודה. השוו: ללא התאמה, הצופה רואה קפיאה כל 10 שניות כאשר הרשת מתדרדרת; עם התאמה, התמונה מורידה איכות ל-480p אבל הסטרים לא נעצר. הבדיקות שלנו מראות שהפעלת IVSAutoQualityMode מפחיתה תלונות הקשורות לקפיאות פי 3.

פרמטר קצב סיביות קבוע קצב סיביות אדפטיבי
התנהגות ב-LTE חלש קפיאה אחרי 90 שניות התדרדרות איכות חלקה
השהיה 30+ שניות 10–15 שניות
צריכת נתונים עודפת אופטימלית

הבעיה השנייה היא סיבוב מסך. IVSBroadcastSession אינו עוקב אוטומטית אחר שינויי כיוון. אם לא תיירטו את let config = IVSBroadcastConfiguration() try config.video.setSize(CGSize(width: 1280, height: 720)) try config.video.setTargetFramerate(30) try config.video.setInitialBitrate(2_500_000) try config.video.setMinBitrate(300_000) try config.video.setMaxBitrate(4_000_000) config.video.usesBFrames = true ותקראו ל-func broadcastSession(_ session: IVSBroadcastSession, networkHealthChanged health: IVSBroadcastSessionHealth) { switch health { case .bad, .critical: // Показываем предупреждение пользователю, логируем в Crashlytics } } , סטרים לרוחב ישודר עם פריימים לגובה ופסים שחורים. באנדרואיד עם CameraX, אותה בעיה—צריך להירשם ל-OrientationEventListener ולהעביר את הזווית ל-imageCapture.targetRotation.

איך להימנע מהתנגשויות הפעלת שמע?

צינור השמע הוא נושא נפרד. ב-iOS, IVSMicrophoneInput מתנגש עם AVAudioSession אם האפליקציה משתמשת בהשמעת רקע. AVAudioSession.setCategory(.playAndRecord, options: .mixWithOthers) פותר את ההתנגשות, אבל יש להפעיל אותו לפני אתחול הפעלת השידור, אחרת תקבלו OSStatus -10851 בלוגים. תיעוד AVAudioSession מתאר את כל הקטגוריות.

איך אנחנו בונים את האינטגרציה

מחסנית ל-iOS: Swift 5.9+, AmazonIVSBroadcast 1.14+ (Swift IVS), AVFoundation, ReplayKit (ללכידת מסך). אנדרואיד: Kotlin, ivs-broadcast 1.14+ (Kotlin IVS), CameraX 1.3, MediaCodec.

שלבים:

  1. הגדרת ערוץ IVS. צרו ערוץ דרך AWS Console או מודול Terraform, קבלו נקודת קצה להזנה ומפתח סטרים. פורמט נקודת הקצה: rtmps://a1b2c3d4e5f6.global-contribute.live-video.net:443/app/. שמרו את המפתח ב-Keychain (iOS) או ב-EncryptedSharedPreferences (אנדרואיד)—לעולם לא בקונפיגורציית האפליקציה.

  2. הגדרת הפעלה. ב-iOS:

דוגמת הגדרה
let config = IVSBroadcastConfiguration()
try config.video.setSize(CGSize(width: 1280, height: 720))
try config.video.setTargetFramerate(30)
try config.video.setInitialBitrate(2_500_000)
try config.video.setMinBitrate(300_000)
try config.video.setMaxBitrate(4_000_000)
config.video.usesBFrames = true

usesBFrames = true מפחית קצב סיביות באותה איכות חזותית—הפעילו אותו אם היעד המינימלי הוא iOS 14+.

  1. מצלמה ומיקרופון. במקום להשתמש ישירות ב-AVCaptureSession, התחברו דרך IVSBroadcastSession.listAvailableDevices(). ה-SDK מנהל את AVCaptureSession בעצמו, כך שאין צורך ליצור הפעלה מתחרה. אם צריך להציג תצוגה מקדימה, השתמשו ב-IVSImagePreviewView, שה-SDK מספק דרך attachCamera(_:toSlotWithName:previewAspectMode:).

  2. טיפול באירועי רשת. יישמו IVSBroadcastSessionDelegate:

func broadcastSession(_ session: IVSBroadcastSession, networkHealthChanged health: IVSBroadcastSessionHealth) {
    switch health {
    case .bad, .critical:
        // Показываем предупреждение пользователю, логируем в Crashlytics
    }
}
  1. כיבוי וניקוי. broadcastSession.stop() הוא אסינכרוני—אל תשחררו את ההפעלה מיד. חכו לקריאת ה-delegate broadcastSession(_:transmissionStatisticsChanged:) עם קצב סיביות אפס, ואז הגדירו broadcastSession = nil.
שלב משך
הגדרת ערוץ 4 שעות
אינטגרציית SDK 3 ימים
קצב סיביות אדפטיבי 2 ימים
סיבוב והפרעות יום אחד
בדיקות 2 ימים

כתבו לנו כדי לדון בפרויקט שלכם ולקבל הערכת עלות מדויקת.

מה כלול בעבודה

  • הגדרת ערוץ IVS וקבלת נתוני הזנה.
  • אינטגרציית SDK עם מצלמה ומיקרופון מקוריים.
  • יישום קצב סיביות אדפטיבי, סיבוב, טיפול בהפרעות.
  • כתיבת בדיקות (network link conditioner, testMode).
  • הכנת תיעוד קונפיגורציה ותמיכה.
  • אחריות לפעולה תקינה של הסטרים תחת חיבור יציב.

בדיקות לפני ייצור

אנחנו בודקים התנהגות עבור: אובדן חיבור פתאומי (מצב טיסה למשך 10 שניות במהלך הסטרים), מעבר בין Wi-Fi ל-LTE, שיחה נכנסת (הפרעת AVAudioSession). לבדיקות אוטומטיות, IVSBroadcastSession תומך ב-testMode, המדמה שידור ללא חיבור RTMPS אמיתי.

תרחיש עומס: התחילו את הסטרים, אחרי 5 דקות הפעילו network link conditioner עם פרופיל 100% Loss למשך 15 שניות, בדקו שההפעלה מתאוששת ללא קריסה ואין דליפות זיכרון ב-Xcode Instruments (allocations + leaks). חיסכון בתעבורה עם קצב סיביות אדפטיבי מגיע ל-40%.

לוחות זמנים והערכת עלות

אינטגרציה בסיסית (מצלמה אחת, איכות קבועה, iOS או אנדרואיד): 1–2 שבועות. יישום מלא עם קצב סיביות אדפטיבי, סיבוב, טיפול בהפרעות, תצוגה מקדימה ובדיקות—3–5 שבועות. אם נדרשת פלטפורמה חוצת-פלטפורמות (Flutter עם ערוצי פלטפורמה או React Native עם מודולים מקוריים), הוסיפו 1–2 שבועות לשכבת האינטגרציה. העלות מחושבת באופן אישי לאחר ניתוח דרישות. קבלו ייעוץ לתרחיש שלכם—כתבו לנו.