WebRTC ফায়ারফক্স, অ্যান্ড্রয়েড এবং আইওএস হিট করে

গত কয়েক সপ্তাহে WebRTC এর সাথে অনেক কিছু ঘটেছে। একটি আপডেটের জন্য সময়!

বিশেষ করে, WebRTC একাধিক ব্রাউজার এবং প্ল্যাটফর্মে আসতে দেখে আমরা সত্যিই উচ্ছ্বসিত।

getUserMedia এখন Chrome-এ কোন পতাকা ছাড়াই উপলব্ধ, সেইসাথে Opera, এবং Firefox Nightly/Aurora (যদিও Firefox-এর জন্য আপনাকে পছন্দগুলি সেট করতে হবে)। simpl.info/gum-getUserMedia এর ক্রস-ব্রাউজার ডেমোটি দেখুন - এবং ওয়েব অডিওর জন্য ইনপুট হিসাবে getUserMedia ব্যবহার করার ক্রিস উইলসনের আশ্চর্যজনক উদাহরণগুলি দেখুন।

webkitRTCPeerConnection এখন ক্রোমে স্থিতিশীল এবং এটি পতাকাবিহীন। টার্ন সার্ভার সমর্থন Chrome 24 এবং তার উপরে উপলব্ধ। simpl.info/pc- এ Chrome-এর RTCPeerConnection বাস্তবায়নের একটি অতি-সাধারণ ডেমো এবং apprtc.appspot.com- এ একটি দুর্দান্ত ভিডিও চ্যাট অ্যাপ্লিকেশন রয়েছে। (নাম সম্পর্কে ব্যাখ্যার একটি শব্দ: বেশ কয়েকটি পুনরাবৃত্তির পরে, এটি বর্তমানে webkitRTCPeerConnection নামে পরিচিত। অন্যান্য নাম এবং বাস্তবায়নকে অবমূল্যায়ন করা হয়েছে। যখন মান প্রক্রিয়াটি স্থিতিশীল হবে, তখন webkit উপসর্গটি সরানো হবে।)

ওয়েবআরটিসি এখন ফায়ারফক্স নাইটলি এবং অরোরাতে ডেস্কটপের জন্য এবং এরিকসন বাউজার ব্রাউজারের মাধ্যমে iOS এবং অ্যান্ড্রয়েডের জন্য প্রয়োগ করা হয়েছে।

ডেটা চ্যানেল

DataChannel হল একটি WebRTC API উচ্চ কার্যক্ষমতা, কম লেটেন্সি, নির্বিচারে ডেটার পিয়ার-টু-পিয়ার যোগাযোগের জন্য। API WebSocket-এর মতোই সরল - কিন্তু যোগাযোগ সরাসরি ব্রাউজারগুলির মধ্যে ঘটে, তাই একটি রিলে (টার্ন) সার্ভারের প্রয়োজন হলেও ডেটাচ্যানেল ওয়েবসকেটের চেয়ে অনেক দ্রুত হতে পারে (যখন ফায়ারওয়াল এবং NATs এর সাথে মানিয়ে নিতে 'হোল পাঞ্চিং' ব্যর্থ হয়)।

DataChannel একটি পতাকার পিছনে, Chrome এর 25 সংস্করণের জন্য পরিকল্পনা করা হয়েছে - যদিও এটি এই সংস্করণটি মিস করতে পারে৷ এটি শুধুমাত্র পরীক্ষা-নিরীক্ষার জন্য হবে, সম্পূর্ণরূপে কার্যকরী নাও হতে পারে এবং Firefox বাস্তবায়নের সাথে যোগাযোগ সম্ভব হবে না। পরবর্তী সংস্করণে DataChannel আরও স্থিতিশীল হওয়া উচিত এবং ফায়ারফক্সে DataChannel-এর সাথে মিথস্ক্রিয়া সক্ষম করার জন্য কার্যকর করা হবে।

Firefox Nightly/Aurora mozGetUserMedia , mozRTCPeerConnection এবং DataChannel সমর্থন করে (তবে আপনার সম্পর্কে: কনফিগার পছন্দগুলি সেট করতে ভুলবেন না!)

এখানে ফায়ারফক্সে চলা DataChannel এর একটি স্ক্রিনশট রয়েছে:

ফায়ারফক্স ডেটাচ্যানেল স্ক্রিনশট

এই ডেমোটি http://mozilla.github.com/webrtc-landing/data_test.html এ রয়েছে। এখানে একটি কোড স্নিপেট:

pc1.onconnection = function() {
    log("pc1 onConnection ");
    dc1 = pc1.createDataChannel("This is pc1",{}); // reliable (TCP-like)
    dc1 = pc1.createDataChannel("This is pc1",{outOfOrderAllowed: true, maxRetransmitNum: 0}); // unreliable (UDP-like)
    log("pc1 created channel " + dc1 + " binarytype = " + dc1.binaryType);
    channel = dc1;
    channel.binaryType = "blob";
    log("pc1 new binarytype = " + dc1.binaryType);

    // Since we create the datachannel, don't wait for onDataChannel!
    channel.onmessage = function(evt) {
    if (evt.data instanceof Blob) {
        fancy_log("*** pc2 sent Blob: " + evt.data + ", length=" + evt.data.size,"blue");
    } else {
        fancy_log('pc2 said: ' + evt.data, "blue");
    }
    }
    channel.onopen = function() {
    log("pc1 onopen fired for " + channel);
    channel.send("pc1 says Hello...");
    log("pc1 state: " + channel.state);
    }
    channel.onclose = function() {
    log("pc1 onclose fired");
    };
    log("pc1 state:" + channel.readyState);
        }

ফায়ারফক্স বাস্তবায়নের জন্য আরও তথ্য এবং ডেমো hacks.mozilla.org ব্লগ থেকে পাওয়া যায়। বেসিক WebRTC সমর্থন ফায়ারফক্স 18-এ 2013 সালের শুরুতে প্রকাশের জন্য রয়েছে, এবং getUserMedia এবং CreateOffer/Answer সীমাবদ্ধতা, সেইসাথে TURN (ফায়ারওয়ালের পিছনে ব্রাউজারগুলির মধ্যে যোগাযোগের অনুমতি দেওয়ার জন্য) সহ অতিরিক্ত বৈশিষ্ট্যগুলির জন্য সমর্থন পরিকল্পনা করা হয়েছে।

WebRTC সম্পর্কে আরও তথ্যের জন্য, WebRTC দিয়ে শুরু করা দেখুন। এমনকি একটি WebRTC বইও আছে, যা প্রিন্টে পাওয়া যায় এবং বিভিন্ন ই-বুক ফরম্যাটে।

সমাধান সীমাবদ্ধতা

সীমাবদ্ধতা Chrome 24 এবং তার উপরে প্রয়োগ করা হয়েছেgetUserMedia() এবং RTCPeerConnection addStream() কলের জন্য ভিডিও রেজোলিউশনের মান সেট করতে এগুলি ব্যবহার করা যেতে পারে।

simpl.info/getusermedia/constraints এ একটি উদাহরণ রয়েছে। একটি ব্রেকপয়েন্ট সেট করে এবং মান পরিবর্তন করে বিভিন্ন সীমাবদ্ধতার সাথে খেলুন।

কয়েকটি গোট... একটি ব্রাউজার ট্যাবে সেট করা getUserMedia সীমাবদ্ধতাগুলি পরবর্তীতে খোলা সমস্ত ট্যাবের সীমাবদ্ধতাকে প্রভাবিত করে৷ সীমাবদ্ধতার জন্য একটি অননুমোদিত মান সেট করা একটি বরং রহস্যজনক ত্রুটি বার্তা দেয়:

navigator.getUserMedia error:  NavigatorUserMediaError {code: 1, PERMISSION_DENIED: 1}

একইভাবে যদি আপনি স্থানীয় ফাইল সিস্টেম থেকে getUserMedia ব্যবহার করার চেষ্টা করেন তবে একটি সার্ভারে নয়!

স্ট্রিমিং স্ক্রিন ক্যাপচার

ট্যাব ক্যাপচার এখন Chrome Dev চ্যানেলে উপলব্ধ। এটি ট্যাবের দৃশ্যমান এলাকাটিকে একটি স্ট্রীম হিসাবে ক্যাপচার করা সম্ভব করে, যা স্থানীয়ভাবে বা RTCPeerConnection-এর addStream() এর সাথে ব্যবহার করা যেতে পারে। সিনকাস্টিং এবং ওয়েব পেজ শেয়ার করার জন্য খুবই উপযোগী। আরও তথ্যের জন্য WebRTC ট্যাব বিষয়বস্তু ক্যাপচার প্রস্তাব দেখুন।

এই আপডেটে মন্তব্য করে আমাদের পোস্ট করে রাখুন: আপনি এই APIগুলির সাথে কী করছেন তা আমরা শুনতে চাই।

...এবং chromiumbugs.appspot.com- এ আপনার সম্মুখীন হওয়া কোনো বাগ ফাইল করতে ভুলবেন না!