كيفية تشغيل RTSP Media Server [إهمال]

قبل أن تقرأ ، اعلم أن الحل الذي اقترحه في هذه المقالة لم يعد موجودًا ، حيث أنني لم أعد قادرًا على العمل عليه. إذا كنت من مطوري C ++ مرتاحين للعمل مع GStreamer وكنت تشعر بأنك أصبحت مشرفًا مفتوح المصدر ، فيرجى تفرع المستودع والحفاظ على المشروع قيد الحياة

هذه القصة موجهة إلى جمهور متخصص حقًا ، لكنني أعتقد أنها تتصدى لمشكلة ليس لديها حاليًا أي إجابة مرضية ، بقدر ما أستطيع أن أرى عندما كنت أسأل هذا السؤال بنفسي.

يُقصد بـ RTSP بروتوكول Real Time Streaming Protocol ، وهو بروتوكول يستخدم على نطاق واسع بواسطة كاميرات مراقبة الفيديو ، ولكن أيضًا لبث الوسائط على الإنترنت ، وإجراء مكالمات الفيديو ، وغيرها من التطبيقات.

أتذكر في الأصل باستخدام VLC الممتاز لعرض الفيديو عبر RTSP ، وفي يوم من الأيام كنت بحاجة إليه للحصول على مصادقة ، وهو ما يبدو أنه لا يمكن لـ VLC التعامل معه. دخلت خادم VLC IRC وسألتهم عما إذا كان بإمكاني المساعدة في تنفيذه. أجابوا بشيء على غرار "الأشخاص المجنون فقط هم الذين يستخدمون هذا على أي حال ، ولكن من المؤكد المضي قدمًا ، إنه موجود في هذا الملف". وأشاروا إلى ملف C من 5 آلاف سطر ، عمره 10 سنوات.

شيء آخر يجب ملاحظته هو أن الأمر الذي كنت أستخدمه لتشغيل خادم الوسائط الخاص بي كان معقدًا للغاية ، راجعه:

قمت ببعض الأبحاث لمحاولة إيجاد طريقة للحصول على خادم RTSP مع المصادقة ، وكان هناك عدد قليل من المرشحين:

  • كان live555 هو الأكثر وضوحًا ، لكنه واجه مشكلة كبيرة: تم توثيقه بشكل سيء للغاية. الأسئلة الشائعة الخاصة بهم تقول حرفيًا:
    أفضل طريقة لفهم كيفية استخدام المكتبات هي دراسة أمثلة البرامج في دليل "testProgs" ، ودراسة رمز المكتبة نفسه ، وطرح الأسئلة على قائمة المراسلات "المباشرة".
    أيضًا ، لم يكن الأمر سهل الاستخدام على الإطلاق.
  • بدا ffserver مثاليًا ، وقد صنعه نفس الأشخاص مثل ffmpeg المشهود لهم عالميًا ولكن تم إهماله وتوقف التطوير. حاولت استخدام أحدث إصدار ولكن واجهت بعض المشاكل ، لذلك قررت مواصلة البحث.
  • يعد gst-rtsp-server حلاً موثوقًا به ، يستخدمه العديد من البرامج الاحترافية ، لكن للأسف ليس من السهل استخدامه لأنه مكتبة ويتطلب منك كتابة رمز C / C ++ لإنشاء الخادم الخاص بك.

وهذا هو السبب في أنني صنعت خادم الوسائط الخاص بي

أردت أن أصنع شيئًا ما بالكامل عبر النظام ، وسهل الاستخدام ، وله الكثير من الميزات وهذا الأداء. ها هي النتيجة: RTSPAllTheThings.

إنه بعيد عن الكمال ، لكنه يفعل ما تم تصميمه من أجله. إنه خادم وسائط بسيط تم كتابته باستخدام مكتبة خادم gst-rtsp ويمكن استخدامه مع صورة Docker.

إنه يتعامل مع المصادقة (الأساسية والهضم) ، ويمكنه دفق ملفات الإدخال ، وأنماط الفيديو المعينة مسبقًا (كرة تنقل ، والضوضاء البيضاء ، وما إلى ذلك) ، وتغذية الفيديو من جهاز ، أو حتى ترحيل دفق RTSP آخر. يمكنك أيضًا إضافة تراكب زمني أو تغيير معدل إطارات الفيديو أو تغيير دقة البث.

الآن للحصول على دفق الفيديو نفسه كما فعلت مع الأمر الطويل جدًا باستخدام VLC أعلاه ، أحتاج فقط إلى تشغيل docker run - rm -p 8554: 8554 ullaakut / rtspatt.

أمر أكثر تعقيدًا ، والذي من شأنه أن يتعامل مع المصادقة ، ويقدم ملف فيديو ويعين عنوانًا مخصصًا ، وسيتم تشغيل المنفذ بواسطة عامل ميناء - rm -e INPUT = "/ tmp / video.avi" -e RTSP_ADDRESS = 172.100.100.12 -e RTSP_PORT = 18554 -v "/path/to/your/video:/tmp/video.avi" -p 18554: 18554 ullaakut / rtspatt

خاتمة

لا تزال المشكلة قائمة ، على الرغم من أن البرنامج ليس لديه ميزات كافية في الوقت الحالي ليكون حلاً عالميًا ، ويبدو أنه لا يوجد أي حل آخر سهل الاستخدام ويعمل خارج الصندوق. الآن ، إذا كان لديك حاجة محددة لا تغطيها RTSPATT ولم يكن لديك الوقت / المعرفة لاستخدام خادم gst-rtsp أو live555 ، اسمحوا لي أن أعرف عن طريق إنشاء مشكلة على RTSPATT ، وربما أنا سوف تكون قادرة على مساعدتك.

إذا كنت على دراية بحل أفضل ، فيرجى ترك تعليق على هذا المقال لإخبارنا به ، وربما سأعيد كتابة هذا المقال مع وضعه في الاعتبار. أيضًا ، إذا كنت ترغب في مساعدتي في بناء حل لهذه المشكلة ، فأنت أكثر من مرحب بك للمساهمة.

اضغط على زر if إذا استمتعت بهذا المقال :)