سؤال

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

يحرر:

لقد وجدت في البحث أن هناك بعض البروتوكولات:RTSP، وبث HTTP، وRTMP، وRTP.

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

RTMP هي تقنية خاصة، وتتطلب خادم وسائط فلاش.حماقة على ذلك.السبب الذي دفعني إلى النظر إلى الفلاش هو أنه مرن للغاية فيما يتعلق بتجربة المستخدم.يوفر SoundManager2 واجهة جافا سكريبت ممتازة لتشغيل الوسائط باستخدام الفلاش.هذا ما سأبحث عنه في تطبيق العميل.

آر تي إس بي/آر تي بي هو ما تحولت مايكروسوفت لاستخدامه، مما أدى إلى إهمال بروتوكول رسائل الوسائط المتعددة (MMS) الخاص بها.RTSP هو بروتوكول التحكم.إنه مشابه لـ HTTP مع بعض الاختلافات الواضحة - يمكن للخادم أيضًا التحدث إلى العميل، وهناك أوامر إضافية، مثل PAUSE.إنه أيضًا بروتوكول ذو حالة، ويتم الحفاظ عليه باستخدام معرف الجلسة.RTP هو بروتوكول تسليم الحمولة (الصوت أو الفيديو المشفر).هناك عدد قليل من المشاريع مفتوحة المصدر، أحدها مدعوم من شركة Apple هنا.يبدو أن هذا قد يفعل ما أريده، ويبدو كذلك عدد غير قليل من اللاعبين يدعمونه.يبدو أنه سيكون مناسبًا للبث "المباشر" من هذه الصفحة هنا.

شكرا جوش

هل كانت مفيدة؟

المحلول

أولاً، اسمحوا لي أن أحذف نقطتين غير صحيحتين بسرعة.التفاصيل لمتابعة أدناه:

  • يمكن إجراء RTMP عبر خوادم أخرى غير Flash Media Server
  • TCP جيد للعيش.هناك الكثير من F. U.D.من الأشخاص المحبين لـ UDP هناك. أصدرت شركة Apple للتو مسودة المواصفات للقيام بالبث المباشر البسيط عبر HTTP (وبالتالي TCP) لجهاز iPhone.أتوقع أنه سينتهي في المتصفحات أيضًا.بالإضافة إلى ذلك، يتمتع TCP بميزة اختراق جدران الحماية الخاصة بالشركة بشكل متكرر وبسهولة أكبر.

قراءتي هي أن البث المعقد والمعتمد على UDP يتضاءل.أنا لا أتوقع الموت، فقط حصة أقل وأقل من السوق.تستهلك خوادم البث المستندة إلى UDP موارد ضخمة، مقارنةً بالحلول المستندة إلى TCP (مثل 10x أو أكثر)، والفوائد ليست ملموسة إلى هذا الحد.

أنت تقول أنك لا تريد التكنولوجيا الاحتكارية، و "حماقة على [فلاش]"، لكنك مازلت تريد القيام بالبث الحقيقي؟أكره أن أكسره لك، ولكن على حد سواء RealAudio و فيديو حقيقي كلاهما ملكية.

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

  • ثورا:خالية من حقوق الملكية، ومفتوحة، وخاسرة فيديو تكنولوجيا الضغط
  • فوربيس:برنامج مجاني / مشروع مفتوح المصدر ينتج صوتي مواصفات التنسيق وتنفيذ البرامج لضغط الصوت مع فقدان البيانات.
  • سطين:تنسيق حاوية قياسي مجاني ومفتوح

إذا تغلبت عليك البراغماتية، فأعد النظر في نفورك من منتجات Adobe.تذكر أن Flash يتم توزيعه على نطاق أوسع من أي مشغل آخر يعتمد على المتصفح (تحديدًا Windows Media Player وQuick Time وReal Players).

لا يزال بإمكانك استخدام RTMP مع المصدر المفتوح: الأحمر5 من المحتمل أن يكون ذا أهمية كبيرة - حيث يمكنه البث المباشر إلى المتصفحات التي تدعم Flash.

أوصي بالتفكير في أولوياتك.وضحها لنا في سؤالك.

نصائح أخرى

أود أن أضيف إلى رد Stu أن بروتوكولات البث المستندة إلى UDP غالبًا ما يكون لها تعقيد إضافي للعمل عندما تكون خلف جدران الحماية أو NAT.على سبيل المثال، إذا كنت تخطط لاستخدام نقاط وصول WIFI خارج المنزل، فإن العديد من هذه النقاط لن تدعم RTP باستخدام تسليم UDP.لدى العديد من العملاء آلية إرجاع الفشل، حيث إذا لم يتم تلقي أي حزم قبل انتهاء المهلة، فسيحاول العميل تسليم TCP.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top