تطوير تطبيق دردشة الفيديو مع دفق الفيديو عالي الجودة

StackOverflow https://stackoverflow.com/questions/470698

  •  19-08-2019
  •  | 
  •  

سؤال

أنا أعمل في شركة نقوم بتطوير دعم دردشة الفيديو على تطبيق موجود. لقد نظرت إلى حلول مختلفة لهذا مثل

  1. استخدام العرض المباشر المدارة لالتقاط الفيديو والتدفق في C#
  2. بعض عينات التعليمات البرمجية في مشروع التعليمات البرمجية حيث نلتقط صورة ونمررها عبر الشبكة (أود أن أسميها حلًا خامًا لأن هذا سيأكل الكثير من النطاق الترددي.
  3. رمز خوارزمية ضغط من نقطة الصفر واستخدمها لضغط الفيديو غير المكثف.

الآن التحدي هو أننا نتطلع إلى تحقيق بث فيديو عالي الجودة للغاية وأن تطبيق الحاوية مشفرة في C#.NET

هذا ما اقترحته حتى الآن. يتم كتابة منطق الشبكة لدفق البيانات في C# ، وضغط الفيديو المراد كتابته في VC ++ واستدعاء هذا VC ++ DLL باستخدام Pinvoke أو CLI أي طريقة ممكنة.

أنا أبحث عن شخص آخر أكثر خبرة لي في هذا المجال الذي يمكن أن يقترح علي ما إذا كان أنا صواب أو يمكن أن يكون هذا محسّنًا.

الهدف النهائي هو تدفق الفيديو عالي الجودة. يمكن أن يكون برنامج الترميز أي شيء مثل H.2633 ، H.264 إلخ.

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

المحلول

لقد استخدمت عدة طرق للحصول على تدفق الفيديو/المؤتمرات باستخدام .NET بسهولة ، دون الحاجة إلى البحث في DirectShow. (حسنًا ، حفر بعضًا ، ولكن ليس عميقًا :)

1) استخدام مكونات تشفير وسائط Windows العادية. تم توثيقه مع عينات في Windows Media Encoder SDK. جيد لأي تدفق عالي الدقة ، ولكن التأخير كبير جدًا بالنسبة للدردشة في الوقت الفعلي (0.5-2 ثانية في أحسن الأحوال). تشفير Express Modern SDK خيار آخر.

2) Microsoft Research ConferenceXP http://cct.cs.washington.edu/ واجهة برمجة تطبيقات المؤتمرات الكاملة المميزة بما في ذلك تدفق التطبيقات. إنها مرشحات وسائط Windows ذات المستوى المنخفض للغاية ولفها في التعليمات البرمجية المدارة. يعمل بشكل جيد. يمكن تخصيصها بسهولة. يبدو مهجورا قليلا الآن.

3) عميل Microsoft RTC حتى الإصدار 1.3 - Core of Windows Messenger.

PROS: العينات المدارة من Microsoft ، مستندات جيدة ، أداء موثوق به ، قابلة للتوزيع بحرية ، مكدس SIP متوافق مع Microsoft (جيد). استند البائعون الرئيسيون في المؤتمرات مثل Emblaze Vcon إلى حلولهم في بعض القرب من الماضي ، غير متأكدين من هذا الأيام ، لكنني أعلم أن Tandberg قد رخص VC-1 من Tandberg.

سلبيات: إصدار ما يصل إلى 1.3 دعم فيديو H261-H263 فقط. لا يسمح الإصدار الحديث بدعم من برنامج ترميز VC-1 (H264) اتصالات IP-IP مباشرة. إنه في مطالبة Microsoft Live Communications Server. الإصدار الأحدث لا يغطي SDK مكالمات مؤتمرات الفيديو بشكل جيد.

http://msdn.microsoft.com/en-us/library/ms775892(vs.85).aspx

يرجى إعلامنا بالمنصة التي اخترتها. بالمناسبة ، لقد استخدمت حتى جزء RTP ConferenceXP مع ميزات RTC 1.3 Voice/SIP معًا لتحسين جودة الفيديو ، لذلك لديك مجموعة واسعة من التقنيات المدارة هنا. شيء آخر هو اجتماع مباشر لم يكن لدي أي فرصة لإلقاء نظرة جيدة بعد.

نصائح أخرى

وفر لنفسك المشكلة واستخدم VLC. هناك بعض أغلفة .NET لائقة (http://forum.videolan.org/viewtopic.php؟f=32&t=52021&start=30)

نحن نستخدم C# و VLC لشبكة IPTV. نأخذ إدخال الأقمار الصناعية لشبكة الطبق عبر أجهزة التقاط الفيديو OSPREY-450 على خادم Windows XP. من هناك ، لدينا مكون خادم .NET كتبناه في C# يستخدم VLC وراء الكواليس (بدء عمليات منفصلة في .NET للتحكم في مثيلات VLC.Exe). تقوم VLC بمعالجة الإشارات وتدفق الإشارات عبر الشبكة (.H264 أو MPEG-4 ، لقد نجحنا في ذلك على حد سواء).

على جانب العميل ، لدينا تطبيق C# winform يستخدم عارض VLC مضمن لعرض إشارات البث المتعدد. هذا التطبيق أساسا للأمر والتحكم. يحدث الاستخدام الحقيقي لإشارات البث المتعدد عندما يتم إرفاق مربعات المجموعة العلوية الخاصة بنا بفصل التلفزيون وعرض التدفقات.

كنا نظن أنه سيتعين علينا كتابة مشفرات DirectX الخاصة بنا أيضًا ، لكن لا نذهب إلى كل المشاكل. يعمل VLC بشكل جيد حقًا ولديه دعم C# ما يكفي ليكون مفيدًا جدًا. لا تتردد في البريد الإلكتروني لي إذا كان لديك أسئلة محددة حول التنفيذ.

يجب عليك التحقق من Ucentrik SDK. ستمكنك SDK هذه من دمج وظائف الوسائط الغنية مثل الفيديو والصوت والدردشة ومشاركة ومراقبة التحكم عن بُعد وتسجيل الفيديو في تطبيقاتك. برامج ترميز الفيديو المدعومة هي VP8 (Google) و Theora و X.264. بالإضافة إلى ذلك ، يتم تغليف حركة الوسائط الغنية داخل بروتوكول HTTP لتمكينه من اجتياز جدران الحماية التي تمكن حركة المرور العادية. هذه التقنية مجانية تمامًا ويمكنك تنزيل SDK وطلب مفتاح API حتى تتمكن من التقييم دون الاستثمار في أي وقت عند إنشاء البنية التحتية. في الأشهر القليلة المقبلة ، نقوم بإصدار مكون الخادم حتى تتمكن من تنزيل واستضافة البنية التحتية لذاتك أو عميلك. تدعم هذه التكنولوجيا اتصالات من 1 إلى عدد ، مما يعني أنه يمكنك إنشاء مؤتمرات الفيديو إذا أردت. الميزات وحدات للغاية بحيث يمكنك دمج مشاركة الفيديو أو الصوت أو سطح المكتب فقط أو مجموعة من التقنيات باستخدام نفس SDK ... يجب أن تطلب SDK متاحًا هنا: www.ucentrik.com. بالإضافة إلى ذلك ، هناك بعض الفيديو هنا: http://www.youtube.com/user/ucentrik

حظا طيبا وفقك الله.

أصدرت Ucentrik للتو تطبيقًا مفتوحًا للمركز الذي يدمج تقنية CTX. ينفذ تطبيق مركز الاتصال هذا الفيديو والصوت ومشاركة سطح المكتب/التطبيق (مع التحكم) ووظائف الدردشة النصية المتاحة من CTX API. يتضمن التطبيق أيضًا بعض منطق الأعمال على وجه التحديد حول توفير القدرة على توجيه المكالمات إلى وكيل متاح أو يحتوي على مهارة محددة. المشروع متاح في http://vcca.codeplex.com - يرجى ملاحظة أنك ستتطلب الوصول إلى Ucentrik CTX SDK المتوفرة للطلب على موقع Ucentrik (www.ucentrik.com). حظا طيبا وفقك الله.

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