וידאו חי יציב מנייד באמצעות פרוטוקול SRT

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

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

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

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

השירותים שאנו מציעים
מציג 1 מתוך 1כל 1734 השירותים
וידאו חי יציב מנייד באמצעות פרוטוקול SRT
מורכב
מ- 1 שבוע עד 3 חודשים

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

שאלות נפוצות

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

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

וידאו חי יציב מהנייד באמצעות פרוטוקול SRT

המכשיר הנייד שלכם משדר וידאו חי מהשטח, אך רשת ה-LTE אינה יציבה—אובדן מנות מגיע ל-20%. שידורי RTMP נשברים, והצופים רואים מסך שחור. אנו פותרים זאת עם פרוטוקול SRT. בניגוד ל-RTMP, SRT עובד על UDP עם תיקון שגיאות מובנה (ARQ/FEC), סובל עד 30% אובדן מנות, ומשקם את השידור אוטומטית ללא צורך בהפעלה מחדש. למעשה, SRT אמין פי 5 מ-RTMP בתנאי אובדן מנות דומים. לשידור נייד על LTE לא יציב או Wi-Fi ציבורי, זהו משנה משחק. לצוות שלנו ניסיון של למעלה מ-5 שנים בפיתוח מובייל, והוא סיפק למעלה מ-20 פרויקטי שידור וידאו. אנו מבטיחים חיבורי SRT יציבים בתנאי רשת מאתגרים עם מפתחים מוסמכים. פרויקט טיפוסי הכולל אינטגרציה ל-iOS וגם ל-Android מתחיל ב-$1000, עם חיסכון בעלויות שרת בהשוואה ל-RTMP. צרו קשר לייעוץ על הפרויקט שלכם. האינטגרציה מתחילה מ-$500 להגדרה בסיסית בפלטפורמה אחת.

מדוע SRT עדיף על RTMP במובייל

ב-5% אובדן מנות בלבד, RTMP מתחיל לבאפר ולהישבר; SRT עם באפר latency=500ms נשאר יציב ב-20-25% אובדן. SRT מספק עד פי 10 זמן השהיה נמוך יותר (200–2000 אלפיות שנייה לעומת 5–10 שניות) ומשתמש בבאפרים נגד קפיצות (jitter) וב-FEC לשמירה על איכות. לשידור בסגנון כתב מאירועים, הפקת וידאו מרחוק ושידורי שטח, SRT הפך לסטנדרט המקצועי—תמיכה מובנית ב-OBS, vMix ו-Blackmagic. זמן ההשהיה ניתן לכוונון באמצעות פרמטר latency: מינימום 200 אלפיות שנייה לרשתות טובות, 500-2000 אלפיות שנייה לרשתות ניידות עם קפיצות. באפר גדול יותר = עמידות גבוהה יותר, אך עיכוב גבוה יותר. חיסכון בתשתית: SRT אינו דורש שרתים יקרים או מאיצי TCP—הוא עובד על UDP, ומפחית עלויות תפעול.

הבטחת חיבור יציב תחת אות חלש

SRT תומך בחיבור מחדש אוטומטי בתוך connectionTimeout. בעוד שכוונון פרמטרים בסיסי עוזר, אנו הולכים רחוק יותר: אנו עוקבים אחר latency וכשהוא עולה על 5%, אנו מפחיתים אוטומטית את pktSndLoss ומגדילים את videoBitrate. זה דורש חיבור מחדש אך מונע קריסה מוחלטת של השידור.

iOS: HaishinKit עם SRT

HaishinKit תומך ב-SRT מאז גרסה 2.x דרך latency:

import HaishinKit

let srtConnection = SRTConnection()
let srtStream = SRTStream(connection: srtConnection)

srtStream.videoSettings = VideoCodecSettings(
    videoSize: CGSize(width: 1920, height: 1080),
    bitRate: 5_000_000,
    profileLevel: kVTProfileLevel_H264_High_AutoLevel as String
)

srtStream.audioSettings = AudioCodecSettings(bitRate: 192_000)

try srtStream.attachCamera(AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .back))
try srtStream.attachAudio(AVCaptureDevice.default(for: .audio))

// Caller mode: мы инициируем соединение
srtConnection.connect("srt://media-server.example.com:9998?latency=500&streamid=live/stream1")
srtStream.publish()

ה-SRTConnection מזהה את השידור בשרת (MediaMTX, SRT Live Server משתמשים בו לניתוב). import HaishinKit let srtConnection = SRTConnection() let srtStream = SRTStream(connection: srtConnection) srtStream.videoSettings = VideoCodecSettings( videoSize: CGSize(width: 1920, height: 1080), bitRate: 5_000_000, profileLevel: kVTProfileLevel_H264_High_AutoLevel as String ) srtStream.audioSettings = AudioCodecSettings(bitRate: 192_000) try srtStream.attachCamera(AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .back)) try srtStream.attachAudio(AVCaptureDevice.default(for: .audio)) // Caller mode: мы инициируем соединение srtConnection.connect("srt://media-server.example.com:9998?latency=500&streamid=live/stream1") srtStream.publish() הוא באלפיות שנייה. חיבור מחדש בעת ניתוק: SRT מתחבר מחדש אוטומטית בתוך streamid. HaishinKit חושף latency עם סיבה—טפלו בו ב-delegate שלכם.

Android: rtmp-rtsp-stream-client-java עם SRT

ספריית rtmp-rtsp-stream-client-java תומכת ב-SRT דרך connectionTimeout:

val srtCamera = SrtCamera2(binding.surfaceView, connectChecker)
srtCamera.prepareVideo(
    width = 1920,
    height = 1080,
    fps = 30,
    bitrate = 5_000_000,
    rotation = 0,
    profile = CodecUtil.H264_BASELINE
)
srtCamera.prepareAudio(bitrate = 192_000, sampleRate = 44100, isStereo = true)
srtCamera.startStream("srt://media-server.example.com:9998?streamid=live/stream1&latency=500")

מתחת למכסה המנוע: libsrt מקורי (C++) מהודר עבור ABI של Android (arm64-v8a, armeabi-v7a, x86_64).

חלופה: FFmpegKit עם libsrt

בנו את FFmpegKit עם libsrt והשתמשו בו ישירות:

-f avfoundation -i 0:0 -c:v h264_videotoolbox -b:v 5M -f mpegts "srt://server:9998?latency=500&streamid=live/test" 

יתרון: תמיכה ב-H.265 (SRTConnection.Event.connect), שליטה רבה יותר. חסרון: FFmpegKit אינו מנהל את המצלמה ישירות—יש צורך בלכידה נפרדת דרך SrtCamera2 + pipe.

מצב Listener לעומת Caller

SRT תומך בשני מצבים:

  • Caller — המכשיר הנייד יוזם את החיבור לשרת. הנפוץ ביותר.
  • Listener — המכשיר מאזין לחיבורים נכנסים. שימושי ל-p2p ללא שרת או כשהשרת מאחורי NAT.
  • Rendezvous — שני הצדדים יוזמים בו-זמנית. ל-p2p דרך NAT ללא ממסר.

לשידור נייד, אנו משתמשים ב-Caller. Listener במובייל נדיר (מכשיר IoT ללא IP ציבורי).

הצפנה

ל-SRT יש הצפנת AES-128/256 מובנית דרך val srtCamera = SrtCamera2(binding.surfaceView, connectChecker) srtCamera.prepareVideo( width = 1920, height = 1080, fps = 30, bitrate = 5_000_000, rotation = 0, profile = CodecUtil.H264_BASELINE ) srtCamera.prepareAudio(bitrate = 192_000, sampleRate = 44100, isStereo = true) srtCamera.startStream("srt://media-server.example.com:9998?streamid=live/stream1&latency=500") ו--f avfoundation -i 0:0 -c:v h264_videotoolbox -b:v 5M -f mpegts "srt://server:9998?latency=500&streamid=live/test" בכתובת ה-URL. זהו מבדל מ-RTMP—ההצפנה היא ברמת הפרוטוקול, לא מעטפת TLS.

srt://server:9998?passphrase=MySuperSecret&pbkeylen=32 

ניטור איכות

ממשק ה-API של SRT מספק סטטיסטיקות דרך hevc_videotoolbox: AVCaptureVideoDataOutput, passphrase, pbkeylen, srt://server:9998?passphrase=MySuperSecret&pbkeylen=32 , srt_bistats(). HaishinKit חושף חלק מהסטטיסטיקות ב-pktSndLoss. אנו מציגים קצב סיביות, RTT ואובדן מנות בממשק המשתמש—משתמשים מקצועיים מעריכים זאת. כאשר pktRcvLoss עולה על 5%, אנו מפחיתים אוטומטית את pktRetrans ומגדילים את mbpsSendRate (דורש חיבור מחדש).

השוואת SRT לעומת RTMP

פרמטר SRT RTMP
פרוטוקול UDP עם ARQ+FEC TCP
זמן השהיה 200–2000 אלפיות שנייה (ניתן לכוונון) 5–10 שניות
סבילות לאובדן מנות עד 30% עד 5%
הצפנה AES-128/256 מובנית דרך TLS
תמיכה במובייל HaishinKit, FFmpegKit RTMP SDK

תאימות שרתים

שרת תמיכה ב-SRT
MediaMTX מובנית, ללא הגדרות נוספות
Nginx + nginx-srt-module כן
Ant Media Server כן
Wowza Streaming Engine כן (4.8+)
OBS Studio כמקלט דרך msRTT
FFmpeg אפשרות SRTStream.info בעת הידור
ארכיטקטורת הפתרון

האינטגרציה של שידור SRT כוללת הגדרת pktSndLoss, videoBitrate, latency ומצב חיבור. ל-iOS אנו משתמשים ב-HaishinKit, ל-Android - rtmp-rtsp-stream-client-java או FFmpegKit. סטטיסטיקות חיבור נאספות דרך API ומוצגות בממשק המשתמש לבקרת איכות. כאשר הרשת מתדרדרת, קצב הסיביות מונמך אוטומטית והבאפר מוגדל.

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

  1. ניתוח דרישות ובחירת ספרייה.
  2. אינטגרציה של שידור SRT ב-iOS ו/או Android.
  3. הגדרת פרמטרים של srt://listen, libsrt, latency.
  4. יישום ניטור איכות (RTT, אובדן, קצב סיביות).
  5. תיעוד והדרכה לצוות שלכם.
  6. תמיכה לאחר ההשקה.

לוח זמנים: אינטגרציה בפלטפורמה אחת — 2–4 ימי עסקים. עלות מתחילה מ-$500 לפלטפורמה. להערכת הפרויקט שלכם, צרו קשר — נגיב תוך יום עסקים אחד. השלמנו בהצלחה למעלה מ-20 פרויקטים עם מדדי ביצועים מובטחים.