اصنع بنفسك خط أنابيب لبث الفيديو المباشر: حديث عن FFmpeg وMediaMTX

robot
إنشاء الملخص قيد التقدم

هل فكرت يومًا في مشاهدة البث المباشر لكاميرات المراقبة أو أجهزة إنترنت الأشياء عبر متصفح الويب؟ يبدو الأمر بسيطًا، لكن عندما تحاول فعليًا القيام بذلك يصبح الأمر معقدًا جدًا.

ما هي المشكلة؟

كاميرات IP تبث باستخدام بروتوكول RTSP (بروتوكول البث المباشر)، لكن المتصفحات لا تدعم RTSP. منذ عقد 2010 أزالت المتصفحات دعم RTSP لأسباب أمنية. بمعنى آخر، الكاميرا والمتصفح يتحدثان لغتين مختلفتين.

هناك أداتان رائعتان لحل هذه المشكلة:

FFmpeg — ملك معالجة الفيديو. أداة متعددة الاستخدامات تُستخدم حتى في VLC وأنظمة ترميز Netflix.

MediaMTX — خادم بث خفيف الوزن. يقوم بتحويل RTSP إلى WebRTC وغيرها.

الخطوات الثلاث للعمل

1. بث ملف فيديو

أنشئ ملف إعدادات MediaMTX (mediamtx.yml): yaml paths: test_video: source: publisher

بث الملف عبر RTSP: bash ffmpeg -re -i your_video.mp4 -c:v libx264 -preset fast -c:a aac -f rtsp rtsp://localhost:8554/test_video

يمكنك التحقق من البث عبر VLC.

2. بث كاميرا الويب في الوقت الحقيقي

أضف في إعدادات MediaMTX: yaml paths: webcam: source: publisher

Windows: bash ffmpeg -f dshow -rtbufsize 100M -i video=“Integrated Webcam” -c:v libx264 -preset ultrafast -tune zerolatency -f rtsp rtsp://localhost:8554/webcam

Mac: bash ffmpeg -f avfoundation -framerate 30 -video_size 1280x720 -i “0” -c:v libx264 -preset ultrafast -tune zerolatency -f rtsp rtsp://localhost:8554/webcam

Linux: bash ffmpeg -f v4l2 -i /dev/video0 -c:v libx264 -preset ultrafast -tune zerolatency -c:a aac -f rtsp rtsp://localhost:8554/webcam

3. مشاهدة البث في المتصفح (سحر WebRTC)

هنا تبدأ المتعة الحقيقية. قم بتفعيل دعم WebRTC في MediaMTX:

yaml webrtc: yes webrtcAddress: :8889 webrtcEncryption: no webrtcAllowOrigin: ‘*’ webrtcLocalUDPAddress: :8189 webrtcIPsFromInterfaces: yes

paths: test_video: source: publisher webcam: source: publisher

افتح http://localhost:8889/ في المتصفح، وسيتم تحويل RTSP تلقائيًا إلى WebRTC ليظهر البث في المتصفح. الأمر بهذه البساطة.

تدفق البيانات

  1. الكاميرا → إطارات حية
  2. FFmpeg → ترميز H.264 → بث RTSP
  3. MediaMTX → استقبال RTSP
  4. المتصفح → طلب WebRTC
  5. MediaMTX → تحويل تلقائي → بث WebRTC
  6. المتصفح → تشغيل مباشر

التحويل يتم بدون إعادة ترميز، لذا فهو فعال جدًا. حتى أنظمة Netflix الكبرى تعتمد نفس المبدأ.

ما الخطوة التالية؟

الإعداد الحالي على مستوى العرض فقط. هناك أشياء ناقصة للإنتاج الفعلي:

  • لا يوجد توثيق
  • فقط localhost
  • لا يدعم كاميرات IP الحقيقية
  • لا يوجد معالجة للأخطاء

في الجزء 2، سنضيف الأمان، وندعم الاتصال بكاميرات IP حقيقية، ونجهز النظام للبيئة الإنتاجية.

شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • تعليق
  • إعادة النشر
  • مشاركة
تعليق
0/400
لا توجد تعليقات
  • Gate Fun الساخنعرض المزيد
  • القيمة السوقية:$3.63Kعدد الحائزين:1
    0.00%
  • القيمة السوقية:$3.63Kعدد الحائزين:1
    0.00%
  • القيمة السوقية:$3.69Kعدد الحائزين:2
    0.00%
  • القيمة السوقية:$3.63Kعدد الحائزين:1
    0.00%
  • القيمة السوقية:$3.64Kعدد الحائزين:1
    0.00%
  • تثبيت