בניית אפליקציית מעקב וידאו לנייד עם שילוב RTSP ו-ONVIF

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

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

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

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

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

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

שאלות נפוצות

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

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

בעת פיתוח אפליקציה לנייד למעקב וידאו במצלמות IP, האתגר המרכזי הוא בחירת פרוטוקול זרם הווידאו: RTSP למצלמות מקומיות, HLS/DASH לענן, WebRTC לשהייה מינימלית. בחירה שגויה מובילה לחוסר סנכרון שמע, צריכת נתונים גבוהה או התראות push שבורות. נפרק כל פרוטוקול ונראה כיצד ליישם אותם ב-iOS ו-Android, כולל זיהוי תנועה והקלטת וידאו.

אפליקציית מעקב וידאו לנייד היא אינטגרציה מורכבת של פרוטוקולי רשת, מצלמות ויכולות ניידות. הגדרת זרם RTSP נכונה קובעת אם המשתמש יראה וידאו בזמן אמת. לצוות שלנו ניסיון רב בתחום זה, עם למעלה מ-50 פרויקטים שהושלמו. ערימת הטכנולוגיה שלנו כוללת ExoPlayer, VLCKit, FFmpegKit, יחד עם אינטגרציית ONVIF ופתרונות גילוי מצלמות מותאמים אישית. ציינו את המקרה שלכם לפתרון מותאם.

בחירת פרוטוקול סטרימינג

פרוטוקול שהייה תמיכה בנייד מקרה שימוש
RTSP <1 שנייה ExoPlayer (Android), VLCKit/iOS מצלמות מקומיות
HLS 5-30 שניות AVPlayer מקורי מצלמות ענן
WebRTC <500 אלפיות שנייה ספריות WebRTC נדרשת שהייה נמוכה במיוחד

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

RTSP: פענוח וידאו בנייד

זרמי RTSP ממצלמות מכילים וידאו H.264/H.265 עטוף בחבילות RTP. גם iOS וגם Android אין נגן RTSP מקורי. אפשרויות:

Android: ExoPlayer עם extension-rtsp (Media3 1.0+) מהיר בערך פי 2 בפענוח מ-VLC עבור Android SDK (libvlc-android). ExoPlayer מתמודד עם רוב מצלמות H.264, אך עם H.265 חלק משרתי RTSP עלולים לזרוק SOURCE_ERROR עקב מאפייני SDP לא סטנדרטיים.

iOS: AVPlayer אינו תומך ב-RTSP. פתרונות חלופיים: VLCKit (פונקציונלי אך בינארי ~20 MB), FFmpegKit עם קומפילציית FFmpeg מקורית (כבד יותר אך גמיש), או לקוח RTSP מותאם אישית על RTP/UDP באמצעות Network.framework. האחרון דורש עבודה רבה אך נותן שליטה מלאה על ביטול השהייה והשהייה.

ספרייה פלטפורמה תמיכת RTSP גודל רישיון
ExoPlayer Media3 Android כן (הרחבה) ~2 MB Apache 2.0
VLCKit iOS כן ~20 MB LGPL
FFmpegKit iOS/Android כן (בנייה) ~30 MB LGPL/GPL

למה ONVIF הוא התקן למצלמות IP?

ONVIF הוא תקן בינלאומי למצלמות IP (Hikvision, Dahua, Axis, Reolink). פרופיל S מגדיר GetStreamUri, GetSnapshotUri, בקרת PTZ. WS-Discovery לגילוי מכשירים ברשת המקומית. לפי ONVIF Profile S, GetStreamUri מחזיר את כתובת ה-RTSP עבור כל מצלמה.

דוגמת WS-Discovery ב-Android (Kotlin)
// Android: WS-Discovery multicast class ONVIFDiscovery {
    private val MULTICAST_ADDRESS = "239.255.255.250"
    private val MULTICAST_PORT = 3702

    suspend fun discoverDevices(timeout: Long = 3000): List<ONVIFDevice> {
        val socket = MulticastSocket(MULTICAST_PORT)
        socket.joinGroup(InetAddress.getByName(MULTICAST_ADDRESS))
        socket.soTimeout = timeout.toInt()

        val probeMessage = buildWSDiscoveryProbe()
        val packet = DatagramPacket(
            probeMessage.toByteArray(),
            probeMessage.length,
            InetAddress.getByName(MULTICAST_ADDRESS),
            MULTICAST_PORT
        )
        socket.send(packet)

        val devices = mutableListOf<ONVIFDevice>()
        val buffer = ByteArray(4096)

        try {
            while (true) {
                val response = DatagramPacket(buffer, buffer.size)
                socket.receive(response)
                parseWSDiscoveryResponse(String(response.data, 0, response.length))
                    ?.let { devices.add(it) }
            }
        } catch (e: SocketTimeoutException) {
            /* нормальное завершение */
        }

        socket.close()
        return devices
    }
}

כדי לקבל את כתובת ה-RTSP: בקשת SOAP // Android: WS-Discovery multicast class ONVIFDiscovery { private val MULTICAST_ADDRESS = "239.255.255.250" private val MULTICAST_PORT = 3702 suspend fun discoverDevices(timeout: Long = 3000): List<ONVIFDevice> { val socket = MulticastSocket(MULTICAST_PORT) socket.joinGroup(InetAddress.getByName(MULTICAST_ADDRESS)) socket.soTimeout = timeout.toInt() val probeMessage = buildWSDiscoveryProbe() val packet = DatagramPacket( probeMessage.toByteArray(), probeMessage.length, InetAddress.getByName(MULTICAST_ADDRESS), MULTICAST_PORT ) socket.send(packet) val devices = mutableListOf<ONVIFDevice>() val buffer = ByteArray(4096) try { while (true) { val response = DatagramPacket(buffer, buffer.size) socket.receive(response) parseWSDiscoveryResponse(String(response.data, 0, response.length)) ?.let { devices.add(it) } } } catch (e: SocketTimeoutException) { /* нормальное завершение */ } socket.close() return devices } } עם WS-Security (אימות Digest). הספרייה GetStreamUri מפשטת, אך לעיתים קרובות מפגרת אחרי קושחת המצלמות העדכנית — אנו מעדיפים לכתוב לקוח SOAP מותאם אישית על Retrofit עם ממיר מותאם.

צפייה בריבוי מצלמות

רשת של 4 או 9 מצלמות בו-זמנית היא משימה כבדה. כל זרם RTSP דורש מפענח נפרד. ב-Android עם 9 מצלמות Full HD, אנו מסתכנים במיצוי מפענחי החומרה (בדרך כלל 4–8 לכל שבב); השאר נופלים לפענוח תוכנה, מה שמוריד את קצב הפריימים ל-5–10.

פתרון: עבור הרשת, השתמשו בתמונות MJPEG דרך ONVIF onvif4java, המתעדכנות כל 2–3 שניות במקום זרמי וידאו מלאים. RTSP מלא מופעל רק בעת לחיצה על מצלמה למעבר למסך מלא. זה מאזן בין עומס לאינפורמטיביות.

הקלטה והיסטוריה: אחסון מקומי וענן

הקלטת קטעים מהמצלמה לטלפון: הורדה דרך ONVIF GetSnapshotUri או ISAPI (Hikvision). אחסון מקומי ב-GetRecordings (Android 10+) או MediaStore (iOS). עבור מצלמות ענן, קישורי MP4 ישירים מענן היצרן.

זיהוי תנועה: או מבוסס חומרה (במצלמה, אירועים דרך ONVIF Event Service) או מבוסס תוכנה בנייד על ידי השוואת הבדלי YUV בין פריימים. זיהוי חומרה אמין יותר — פחות התראות שווא.

מה כלול בפיתוח

  • ניתוח דגמי מצלמות ותאימות ONVIF
  • בחירת פרוטוקול והגדרת זרם RTSP
  • רשת ריבוי מצלמות עם תמונות MJPEG
  • אינטגרציה של הקלטה וזיהוי תנועה
  • פרסום ל-App Store ו-Google Play
  • תיעוד טכני והדרכת צוות
  • תמיכה לאחר השחרור (אופציונלי)

יישום צפיית RTSP שלב אחר שלב

  1. בדקו אילו פרוטוקולים המצלמות שלכם תומכות (RTSP, ONVIF, HLS).
  2. בחרו נגן: עבור Android — ExoPlayer עם הרחבת RTSP, עבור iOS — VLCKit או FFmpegKit.
  3. הגדירו ביטול השהייה לשהייה מינימלית (יעד מתחת ל-500 אלפיות שנייה).
  4. בדקו על מצלמות שונות ותנאי רשת שונים.
  5. עבור מצבי ריבוי מצלמות, יישמו תמונות MJPEG לחיסכון במשאבים.

לוחות זמנים ועלויות

פיתוח אפליקציה לנייד עם צפיית RTSP למצלמה אחת ובקרת ONVIF בסיסית: 4–5 שבועות (החל מ-$5,000). מערכת ריבוי מצלמות עם WS-Discovery, בקרת PTZ, היסטוריית הקלטות והתראות push לתנועה: 8–12 שבועות ($15,000-$25,000). העלויות מחושבות בנפרד לאחר ניתוח דגמי המצלמות ודרישות האחסון שלכם. שימוש בספריות מוכנות חוסך עד 40% מזמן הפיתוח בהשוואה לבניית לקוח RTSP מותאם אישית. קבלו ייעוץ לפרויקט שלכם — נעריך לוחות זמנים ועלויות.

הניסיון שלנו בפיתוח אפליקציות מעקב וידאו כולל למעלה מ-50 פרויקטים מוצלחים עבור מצלמות Hikvision, Dahua, Axis, Reolink. אנו מבטיחים עמידה בהנחיות סקירת ה-App Store (סעיפים 4.2/5.1) ואבטחת מידע.