Banana Studio
Guides · BS Manager

استخدام جميع ميزات CamRelay في Frigate NVR

حوّل هاتف Android غير مستخدم إلى كاميرا لنظام Frigate NVR: يبث CamRelay بروتوكول RTSP مع الصوت، ويلتقطه go2rtc المدمج في Frigate للتسجيل والعرض المباشر مع الصوت والمحادثة ثنائية الاتجاه. شرح خطوة بخطوة مع ملف config.yml كامل.

استخدام جميع ميزات CamRelay في Frigate NVR
On this page

استخدام جميع ميزات CamRelay في Frigate NVR

يُدخل CamRelay هاتف Android إلى Frigate عبر عنوان RTSP واحد فقط. ويتولى go2rtc، المدمج في Frigate، استقبال هذا البث وتوزيعه على المسجّل والعرض المباشر وقناة المحادثة ثنائية الاتجاه.

CamRelay تطبيق من Banana Studio يحوّل الهاتف إلى كاميرا IP على شبكتك المحلية. يبث فيديو H.264 أو H.265 مع صوت Opus أو G.711 أو AAC. ويوفّر واجهة ويب، ويدعم ONVIF، ويستقبل الصوت من المشاهدين عبر قناة RTSP العكسية (backchannel).

مسار البيانات: هاتف يعمل بتطبيق CamRelay ← go2rtc (داخل Frigate) ← التسجيل، والعرض المباشر مع الصوت، والمحادثة ثنائية الاتجاه.

تعتمد الإعدادات أدناه على Frigate 0.16. قد تتغير بعض المفاتيح في الإصدارات اللاحقة، لذا راجع وثائق Frigate الرسمية.

ميزات CamRelay في Frigate

تصل الميزات الأربع الأولى إلى Frigate عبر go2rtc. أما البقية فتُضبط في التطبيق، وتحافظ على استمرار البث على مدار الساعة طوال أيام الأسبوع.

ميزة CamRelay الاستخدام في Frigate مكان الضبط
بث RTSP بترميز H.264/H.265، والدقة ومعدل الإطارات حسب كاميرا الهاتف التسجيل والاكتشاف والعرض المباشر go2rtc، الخطوة 2.1
صوت G.711 (PCMU/PCMA) أو Opus أو AAC الصوت في العرض المباشر والتسجيلات الترميز في التطبيق، الخطوة 2.2
المحادثة ثنائية الاتجاه (RTSP backchannel) زر الميكروفون في العرض المباشر WebRTC + HTTPS، الخطوة 2.3
تراكب التاريخ والوقت واسم الكاميرا وعنوان IP والبطارية ودرجة الحرارة وإحداثيات GPS والسرعة مطبوع على الصورة التي يسجلها Frigate في التطبيق، الخطوة 1
التشغيل التلقائي عند الإقلاع، وتعتيم الشاشة، والإيقاف المؤقت عند ارتفاع الحرارة أو انخفاض البطارية يمنع انقطاع البث في التطبيق، الخطوة 1
تسجيل MP4 على الهاتف، وإدارة الملفات من المتصفح تسجيلات احتياطية خارج Frigate في التطبيق، الخطوة 1
واجهة الويب التحقق من الصورة والصوت وتغيير الإعدادات دون إيقاف البث الخطوة 1

قبل أن تبدأ

ستحتاج إلى:

  • خادم Frigate مثبّت ويعمل (راجع دليل تثبيت Frigate)، على الشبكة المحلية نفسها التي يتصل بها الهاتف.
  • هاتف Android مثبّت عليه CamRelay، موصول بالشاحن بشكل دائم، وله عنوان IP ثابت محدد في جهاز التوجيه (الراوتر).
  • على Android 17: اسمح لتطبيق CamRelay بـ الوصول إلى الشبكة المحلية (يعرضه Android ضمن الأجهزة المجاورة). بدون هذا الإذن لا يستطيع Frigate الاتصال بالهاتف. راجع مقال CamRelay 1.0.5.

يجب أن تفتح حاوية Frigate المنافذ التالية لاستخدام جميع ميزات CamRelay:

المنفذ الاستخدام
8971 واجهة الويب الخاصة بـ Frigate عبر HTTPS، وهي مطلوبة للمحادثة ثنائية الاتجاه
8554 إعادة بث RTSP من go2rtc
8555 TCP وUDP WebRTC: العرض المباشر مع الصوت والمحادثة ثنائية الاتجاه

الخطوة 1: إعداد CamRelay

يتبع CamRelay لغة الهاتف؛ أسماء الإعدادات أدناه هي الأسماء العربية. ملاحظة: فتح الإعدادات يوقف البث. وبعد تشغيل CamRelay يمكنك تغيير الإعدادات من واجهة الويب دون إيقافه.

1.1 منفذ RTSP

يعرض قسم منافذ الخادم كلًّا من منفذ بث RTSP (الافتراضي 1935) ومنفذ واجهة الويب (الافتراضي 8888). القيم الافتراضية مناسبة.

منافذ الخادم في إعدادات CamRelay: منفذ RTSP هو 1935 ومنفذ الويب هو 8888

1.2 الفيديو

  1. من تحديد الكاميرا، اختر الكاميرا التي ستستخدمها (الكاميرا الخلفية تعطي عادةً صورة أفضل).
  2. افتح الإعدادات الخاصة بتلك الكاميرا واختر الدقة ومعدل الإطارات (FPS) ومعدل بت الفيديو. تعتمد الدقات ومعدلات الإطارات المتاحة على كاميرا الهاتف.
  3. من إعدادات الفيديو العامة ← ترميز الفيديو، اختر H.264 حتى تتمكن المتصفحات من تشغيل العرض المباشر.
  4. اترك فاصل الإطارات الرئيسية (GOP) على 1s (الافتراضي) حتى يُفتح العرض المباشر بسرعة.

الدقة ومعدل الإطارات ومعدل البت لكل كاميرا

ترميز الفيديو H.264 وفاصل إطارات رئيسية مدته ثانية واحدة

لأغراض المراقبة، تكفي دقة 1080p بمعدل 15 إطارًا في الثانية، وهي خفيفة على خادم Frigate. يوفّر H.265 عرض النطاق الترددي، لكن على Frigate تحويل ترميزه ليعمل في المتصفح (راجع الخطوة 2.2).

1.3 الصوت

من إعدادات الصوت، فعّل تمكين الصوت. يُختار ترميز الصوت للبث من المحادثة ثنائية الاتجاه ← ترميز صوت المحادثة ثنائية الاتجاه. ينطبق هذا الإعداد الواحد على الصوت الصادر وعلى المحادثة ثنائية الاتجاه معًا:

  • G.711 ULAW: الخيار الموصى به مع Frigate، إذ يعمل مباشرة في MSE وWebRTC كليهما (راجع الخطوة 2.2).
  • OPUS: الافتراضي بدءًا من Android 10، وصوته أوضح، لكنه لا يعمل إلا عبر WebRTC.
  • G.711 ALAW: فقط إذا كان جهاز الاستماع يتطلب A-law.
  • AAC: للتشغيل فقط؛ وتحتاج المحادثة ثنائية الاتجاه إلى تحويل الترميز.

اترك وضع صوت المحادثة ثنائية الاتجاه على الاتصال الصوتي: فهو يتضمن إلغاء الصدى، فلا يحدث صفير أثناء المحادثة ثنائية الاتجاه.

ترميز الصوت ووضع المحادثة ثنائية الاتجاه

1.4 التراكبات والتسجيل والتشغيل على مدار الساعة

  • تراكب الفيديو: اعرض التاريخ والوقت، واسم الكاميرا (اسم الكاميرا؛ اتركه فارغًا لاستخدام اسم الجهاز)، وعنوان IP، والبطارية ودرجة الحرارة، وإحداثيات GPS، أو عدّاد السرعة. تُرسم التراكبات داخل الفيديو نفسه، لذا تظهر أيضًا في تسجيلات Frigate. جميعها معطّلة افتراضيًا.
  • إعدادات التسجيل: فعّل تمكين التسجيل للاحتفاظ بنسخة احتياطية على الهاتف. تُحفظ ملفات MP4 في Movies/CamRelay، وتُقسَّم حسب مدة مقطع التسجيل (بالدقائق). وعند بلوغ الحد الأقصى للتخزين (ميغابايت) تُحذف أقدم الملفات.
  • الأمان والأتمتة: فعّل تشغيل تلقائي عند بدء تشغيل الجهاز حتى يستأنف CamRelay البث بعد إعادة تشغيل الهاتف. على Android 10 والإصدارات الأحدث، يحتاج التطبيق أيضًا إلى إذن الظهور فوق التطبيقات الأخرى. يوقف أمان درجة الحرارة وأمان البطارية البث مؤقتًا عندما ترتفع حرارة الهاتف كثيرًا أو تنخفض البطارية، ثم يستأنفانه عند عودة الأمور إلى طبيعتها.
  • تحسين البطارية: تأكد من إيقاف تحسين البطارية لتطبيق CamRelay، حتى لا يوقفه Android في الخلفية.

خيارات تراكب الفيديو

تسجيل MP4 على الهاتف

التشغيل التلقائي عند الإقلاع وأمان درجة الحرارة

1.5 بدء البث والحصول على العنوان

ارجع إلى الشاشة الرئيسية واضغط على زر التشغيل. يعرض الشريط العلوي الدقة ومعدل الإطارات ومعدل البت والترميزات المستخدمة. وتعرض الزاوية السفلية ثلاثة عناوين، لكلٍّ منها زر نسخ:

  • rtsp://<phone-ip>:1935/: عنوان RTSP الخاص بـ Frigate.
  • http://<phone-ip>:8888: واجهة الويب الخاصة بـ CamRelay.
  • http://<phone-ip>:8889/onvif/device_service: خدمة ONVIF.

CamRelay أثناء البث: عناوين RTSP والويب وONVIF في الأسفل

إذا كانت الكاميرا ثابتة في مكان واحد، فاضغط على أيقونة القمر (تعتيم الشاشة) لإطفاء الشاشة إلى الأسود. يوفّر ذلك الطاقة ويمنع احتراق الشاشة في شاشات OLED. انقر مرتين لإعادة تشغيلها.

تستخدم الأمثلة أدناه العنوان rtsp://192.168.1.50:1935/؛ استبدله بالعنوان الذي يعرضه CamRelay. لا يطلب الإصدار الحالي من CamRelay تسجيل الدخول على RTSP بعد، لذا استخدمه فقط على شبكة تثق بها.

قريبًا: سيتيح تحديث CamRelay القادم تعيين اسم مستخدم وكلمة مرور لحماية بث RTSP. وعندها يكفي إضافتهما إلى العنوان في go2rtc، مثل rtsp://user:[email protected]:1935/.

يمكنك التحقق من البث من خادم Frigate باستخدام ffprobe:

ffprobe -rtsp_transport tcp rtsp://192.168.1.50:1935/

يجب أن تُظهر النتيجة بث فيديو h264 وبث صوت (pcm_mulaw مع G.711 ULAW، وopus مع OPUS).

الخطوة 2: إعداد go2rtc في Frigate

go2rtc داخل Frigate هو الوحيد الذي يتصل بالهاتف. فهو يسحب بث RTSP من CamRelay مرة واحدة ويوزّعه على التسجيل والاكتشاف والعرض المباشر (MSE وWebRTC) والمحادثة ثنائية الاتجاه. أما Frigate نفسه فيقرأ من rtsp://127.0.0.1:8554/camrelay، فلا يضطر الهاتف إلى خدمة عدة اتصالات في وقت واحد. وهذا يحافظ على برودة الهاتف ويوفّر البطارية.

2.1 إضافة البث

أضف كتلة go2rtc إلى ~/frigate/config/config.yml:

go2rtc:
  streams:
    camrelay:                              # الاسم نفسه لكاميرا Frigate
      - rtsp://192.168.1.50:1935/          # العنوان الذي يعرضه CamRelay
  webrtc:
    candidates:
      - 192.168.1.100:8555   # عنوان IP لخادم Frigate
      - stun:8555
  • يكفي سطر RTSP واحد. مع صوت G.711 أو Opus، يمرّر go2rtc الفيديو والصوت مباشرة إلى المتصفح دون تحويل ترميز عبر ffmpeg:. ويحمل سطر RTSP نفسه أيضًا قناة المحادثة ثنائية الاتجاه.
  • الإعداد webrtc.candidates مطلوب عند التشغيل عبر Docker العادي؛ وبدونه لا يعمل WebRTC ولا الميكروفون على الشبكة المحلية. وقد فُتح المنفذ 8555 TCP/UDP في قسم "قبل أن تبدأ".
  • عندما يحمل البث الاسم نفسه الذي تحمله الكاميرا، يستخدمه Frigate تلقائيًا للعرض المباشر. وإلا فاضبط live.streams للكاميرا.

2.2 الترميزات والصوت

اضبط CamRelay على فيديو H.264. ويُعد G.711 أبسط خيار للصوت. وفقًا لوثائق Frigate، يشغّل MSE (العرض المباشر الافتراضي) صوت AAC أو PCMA/PCMU، ويشغّل WebRTC (المستخدم في المحادثة ثنائية الاتجاه) صوت Opus أو PCMA/PCMU. ولا يعمل مباشرة في كليهما سوى G.711.

صوت CamRelay MSE WebRTC سطر إضافي في go2rtc
G.711 ULAW / ALAW (PCMU/PCMA) نعم نعم لا شيء
OPUS لا نعم ffmpeg:camrelay#audio=aac لسماعه في MSE
AAC نعم لا ffmpeg:camrelay#audio=opus لـ WebRTC

صوت Opus أوضح من G.711 (جودة الهاتف بتردد 8 kHz) إذا كنت تشاهد غالبًا عبر WebRTC. وإذا اضطررت إلى استخدام H.265، فأضف سطرًا لتحويل ترميز الفيديو واحتفظ بسطر RTSP:

go2rtc:
  streams:
    camrelay:
      - rtsp://192.168.1.50:1935/
      - "ffmpeg:camrelay#video=h264#hardware"   # نسخة H.264 للمتصفحات

2.3 المحادثة ثنائية الاتجاه

أثناء البث، يكون CamRelay جاهزًا دائمًا لاستقبال الصوت عبر قناة RTSP العكسية؛ ولا يوجد مفتاح يلزم تفعيله. يفتح go2rtc هذه القناة من سطر RTSP في الخطوة 2.1، دون أي إعداد إضافي.

للتحدث، افتح Frigate عبر HTTPS على المنفذ 8971، وانتقل إلى العرض المباشر للكاميرا واضغط على الميكروفون؛ سينتقل Frigate إلى WebRTC تلقائيًا. يُسمع صوتك من مكبر صوت الهاتف بمستوى الصوت المضبوط في مستوى صوت التشغيل داخل CamRelay.

إذا كان تطبيق آخر يحتاج أيضًا إلى التحدث مع الهاتف مباشرة، فأضف #backchannel=0 إلى نهاية عنوان RTSP حتى لا يحتجز go2rtc القناة.

2.4 إضافة الكاميرا إلى Frigate

أضف كتلة cameras أسفل كتلة go2rtc. تقرأ الكاميرا البث من go2rtc بدلًا من الاتصال بالهاتف مباشرة:

cameras:
  camrelay:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/camrelay   # بث go2rtc من الخطوة 2.1
          input_args: preset-rtsp-restream
          roles:
            - record
            - detect   # مطلوب في Frigate، ولا يحتاج إلى أي إعداد آخر
    record:
      enabled: true

يرسل CamRelay بثًا واحدًا (لا يوجد بث فرعي)، لذا تستخدمه الكاميرا للتسجيل والاكتشاف معًا.

أعد التشغيل وتحقق:

docker compose restart frigate
docker logs -f frigate

للتحقق من go2rtc وحده، أضف المنفذ 1984:1984 مؤقتًا إلى docker-compose وافتح http://<server-ip>:1984. يجب أن يحتوي البث camrelay على مصدر RTSP بفيديو H264 وصوت PCMU/PCMA أو OPUS. وعندما يظهر CamRelay في الصفحة الرئيسية لـ Frigate، تكون قد انتهيت.

الخطوة 3: ملف config.yml كامل

يحتوي الملف أدناه على ما يحتاجه CamRelay فقط: بث go2rtc، وWebRTC، وتسجيل الدخول (لتفعيل HTTPS الذي تحتاجه المحادثة ثنائية الاتجاه)، والتسجيل مع الصوت.

go2rtc:
  streams:
    camrelay:
      - rtsp://192.168.1.50:1935/   # العنوان الذي يعرضه CamRelay، H.264 + G.711 ULAW
  webrtc:
    candidates:
      - 192.168.1.100:8555   # عنوان IP لخادم Frigate
      - stun:8555

auth:
  enabled: true

cameras:
  camrelay:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/camrelay
          input_args: preset-rtsp-restream
          roles: [record, detect]   # detect: مطلوب في Frigate
    record:
      enabled: true
    live:
      streams:
        CamRelay: camrelay

version: 0.16-0

استكشاف الأخطاء وإصلاحها

ترجع معظم المشكلات عند إضافة CamRelay إلى Frigate إلى عنوان البث أو الترميزات أو الشبكة.

العَرَض السبب الشائع الحل
تعرض الكاميرا "No frames received" عنوان أو منفذ خاطئ، أو CamRelay لا يبث، أو أوقفه Android في الخلفية انسخ العنوان مجددًا من الشاشة الرئيسية لـ CamRelay؛ وتحقق منه باستخدام ffprobe؛ وافتح http://<ip>:1984 (إن كان مفتوحًا) لمعرفة ما إذا كان go2rtc يستقبل البث
تعذّر الاتصال رغم وجود الجهازين على شبكة Wi-Fi نفسها هاتف Android 17 دون إذن الوصول إلى الشبكة المحلية؛ أو ميزة "عزل العملاء" في الراوتر؛ أو شبكة الضيوف؛ أو VPN اسمح لتطبيق CamRelay بـ الأجهزة المجاورة؛ وأوقف عزل العملاء/نقطة الوصول؛ وضع الخادم والهاتف على الشبكة الرئيسية نفسها
تقطّع الصورة أو تشوّهها فقدان حزم UDP أضف #transport=tcp إلى العنوان في go2rtc
لا يعمل العرض المباشر في المتصفح بث H.265 أو غياب WebRTC candidates اختر H.264 في CamRelay، أو حوّل الترميز باستخدام ffmpeg:...#video=h264؛ واضبط webrtc.candidates
ينقطع الاتصال من حين لآخر شبكة Wi-Fi غير مستقرة، أو تحسين البطارية في Android، أو ارتفاع حرارة الهاتف استخدم عنوان IP ثابتًا، وأبقِ الهاتف على الشاحن، وأوقف تحسين البطارية لتطبيق CamRelay، وفعّل تشغيل تلقائي عند بدء تشغيل الجهاز، واستخدم زر تعتيم الشاشة؛ وراقب درجة الحرارة أعلى شاشة CamRelay؛ وراجع سجلات Frigate من Settings → System → Logs
لا يوجد صوت في العرض المباشر تمكين الصوت معطّل، أو المشاهدة عبر MSE بينما يرسل CamRelay صوت OPUS فعّل الصوت في CamRelay؛ واختر G.711 ULAW لسماع الصوت في MSE وWebRTC معًا
الميكروفون لا يعمل فتح Frigate عبر HTTP بدلًا من HTTPS، أو المنفذ 8555 غير مفتوح افتح Frigate على https://<ip>:8971؛ وافتح المنفذ 8555 TCP/UDP واضبط webrtc.candidates

عند طلب المساعدة في GitHub Discussions الخاص بـ Frigate، أرفق ملف الإعدادات وسجل بدء التشغيل ونتيجة ffprobe لبث CamRelay. ولأسئلة CamRelay، اضغط على ملاحظات في شاشة حول داخل التطبيق.

احصل على CamRelay من Google Play

اكتشف المزيد من الأخبار والأدلة وتطبيقات Banana Studio على xnano.net.


المصادر: وثائق Live View في Frigate بالنسبة إلى go2rtc؛ ودليل مستخدم CamRelay وصفحة التطبيق على Google Play بالنسبة إلى CamRelay.

Related app

CamRelay - كاميرا IP مباشرة عبر RTSP

حوّل هاتف Android إلى كاميرا شبكة RTSP قوية.

Related posts