के माध्यम से नोडजेएस और लाल 5 मीडिया सर्वर यह प्रत्यक्ष "यह कैसे करें" के बजाय एक वैचारिक प्रश्न है।आरटीएमपी
क्या एचटीएमएल 5 और नोडजेएस/बाइनरीजेएस में ऑडियो स्ट्रीम करने के लिए फ्लैश-जैसे समाधान को लागू करना आम तौर पर संभव है (जहां से हम स्ट्रीम डेटा प्राप्त करते हैं, जैसे वेबआरटीसी या अन्य)। यदि हां, तो आप इसके बारे में कैसे जाएंगे?
स्टैक ओवरफ्लो found here और 2010 से केवल एक ही पूछताछ की गई है। तब से नोडजेएस और एचटीएमएल 5 बड़े हो गए हैं और परिपक्व हो गए हैं।
लोगों को आमतौर पर क्या करें: मल्टीमीडिया का उपयोग करते समय स्ट्रीमिंग (यानी वीडियो या ऑडियो) एक सर्वर के लिए, वहाँ निश्चित रूप से कुछ भी नहीं getUserMedia() से भरा आगमन तक समय में वर्तमान बिंदु पर फ्लैश धड़कता है - जो काफी ईमानदारी से हो सकता है take a while तक 99% ब्राउज़र उपयोगकर्ताओं को इसका उपयोग करना होगा।
जनरल सर्वर से डेटा स्ट्रीम करने के लिए अभ्यास एक ग्राहक फ़्लैश या फ्लेक्स आवेदन जो तब RED5, FMS या Wowza की तरह एक RTMP प्रोटोकॉल संचालित मीडिया सर्वर से कनेक्ट किया जाता है का उपयोग करना है। उदाहरण के लिए, RTMP से अधिक माइक्रोफोन इनपुट भेजने ग्राहक अनुप्रयोग एक सर्वर अनुप्रयोग एक easibly सर्वर से डेटा स्ट्रीम करने के लिए सक्षम है के साथ मिलकर (सरलीकृत संस्करण)
import flash.net.NetStream;
private var myMic:Microphone;
private var nc:NetConnection;
private var ns:NetStream
nc = new NetConnection();
ns = new NetStream(nc);
nc.connect(rtmp://localhost/serverApp);
myMic = Microphone.getMicrophone();
ns.attachAudio(myMic);
की तरह लग सकता है।
मैं करना चाहते हैं क्या: एक अनुप्रयोग सर्वर nodeJS (संभवतः socketIO और binaryJS को लागू), जो आने वाले RTMP धारा पकड़ता पर चल रहा है। जैसे
//require
var rtmp = require('node-rtmp'),
var fs = require('fs');
//rtmp server address
var rtmpServer = 'rtmp://localhost';
//create a binary server listening that receives stream data
var RTMPServer = rtmp.RTMPServer();
var server = RTMPServer ({port: 1935});
server.on('connection', function(client){
//check if user is allowed to do so
rtmp.newStream(client.stream);
});
कुछ संभवतः यह socketIO उपयोग करने के लिए eventEmitters के माध्यम से उपयोगकर्ता बातचीत के बीच अंतर करने के लिए बेहतर हो सकता है।
क्या फायदे हो सकते हैं: आम तौर पर यह इस तरह के दृष्टिकोण को बनाने के लिए थोड़ा ऊपर की तरह लगता है, लेकिन मेरे लिए फायदे हो सकते हैं और मैं आपको इस पर टिप्पणी करना चाहूंगा।
- उदाहरण के द्वारा उपयोगकर्ता इंटरैक्शन की आसान सत्यापन उदा। express और socketIO
- (RTMP माध्यम से) और getUserMedia() (जोड़ने binaryJS और मोज़िला AudioAPI द्वारा द्विआधारी परिवहन तंत्र के माध्यम से)
- अगर getUserMedia() पूरी तरह से समर्थित हो जाता है, फ्लैश कार्यान्वयन आसानी से छोड़ा जा सकता है एक फ्लैश की संकर कार्यान्वयन मैंने talke:
- RTMP फॉलोअप और सर्वर में सामान्य
- आसान कार्यान्वयन में उपयोगकर्ता बातचीत पर अधिक नियंत्रण
अद्यतन चौखटे श्री मल्कोन्टेंटी-विल्सन के लिए जो only node-rtmp package के लिए ज़िम्मेदार है, जिसे लिखा गया था लेकिन 8 महीने पहले बंद कर दिया गया था क्योंकि इसे खराब लिखा गया था और उसने रोडब्लॉक मारा। कोई भी जिसने इसका इस्तेमाल किया या कोड को जांचने में सक्षम था?
अद्यतन 2: श्री Malcontenti विल्सन बस मुझे node-mtrude (एक अजीब नाम की तरह) जो कि हम क्या शायद चाहेगा की तरह कर रही है करने के लिए मेरा ध्यान पाने के लिए एक मेल भेजें। क्या कोई इस तरह के पैकेज के साथ काम करता है?
बहुत बढ़िया सवाल। हाँ यह संभव है। वहां कुछ आरटीएमपी नोड.जेएस परियोजनाएं हैं। मैंने व्यक्तिगत रूप से उपयोग नहीं किया है, इसलिए मैं एक अच्छी सिफारिश नहीं दे सकता। – Brad
मैं आपको आरटीएमपीम्प (http://rtmpdump.mplayerhq.hu) लाइब्रेरी के लिए एक सी एक्सटेंशन बाइंडिंग लिखने की सलाह दूंगा, जैसा कि यहां वर्णित है https://www.cloudkick.com/blog/2010/aug/23/writing- nodejs-native-extension/ –
मुझे वास्तव में node.js के बारे में कुछ भी पता नहीं है, लेकिन [bigbluebutton] (https://code.google.com/p/bigbluebutton/) फ्लैश में ऐसा कुछ लागू करता है, और वे काम कर रहे हैं एक एचटीएमएल 5 समाधान पर। यह कोड की जांच करने लायक हो सकता है। – ldrumm