আমি বর্তমানে ফায়ারওয়্যারের মাধ্যমে সংযুক্ত 3 মিনিডিভি ক্যামেরা থেকে অনলাইন স্ট্রিমিং বিকাশ করি যা আপনার প্রয়োজনের সাথে সামঞ্জস্যপূর্ণ।
দ্রুত ইঙ্গিত: ভিএলসি + ফ্লোপ্লেয়ার / জেডাব্লু প্লেয়ার
প্রথমত, দুটি ভিডিও ফর্ম্যাট রয়েছে যা আপনি অনলাইন স্ট্রিমিংয়ে ব্যবহার করতে পারেন: এফএলভি এবং এইচ 264। এফএলভি ট্রান্সকোড করা সহজ, এইচ 264 এর আকার / মানের অনুপাত আরও ভাল তবে ট্রান্সকোডিং অনেক বেশি সিপিইউ গ্রহণযোগ্য। উভয়ই ওয়েব পৃষ্ঠায় ফ্ল্যাশ প্লেয়ার দ্বারা প্রদর্শিত হতে পারে।
সর্বোপরি, স্ট্রিমিং অবকাঠামো। যেহেতু ল্যাপটপ থেকে আপনার ব্যান্ডউইথ সীমাবদ্ধ (দম্পতি এমবিপিএস শীর্ষে) আপনার সার্ভারে প্রবাহ পেতে হবে এবং এটি ক্লায়েন্টদের কাছে পুনরায় প্রবাহিত করতে হবে। সুতরাং স্ট্রিমটি 1 বার সার্ভারে প্রবাহিত হবে এবং তারপরে সেখান থেকে ক্লায়েন্টদের কাছে এন টাইম হবে। আপনি আপনার ল্যাপটপের জন্য আপনার ইন্টারনেট সংযোগটি বর্ণনা করেননি, সুতরাং দৃশ্যটি দুটি বিভাগে বিভক্ত:
ল্যাপটপটি সর্বজনীন আইপি ঠিকানার সাথে সংযুক্ত বা আপনি ল্যাপটপে NAT পোর্ট করতে পারবেন । এই দৃশ্যটি অনেক সহজ, যেহেতু আপনি সার্ভার থেকে ল্যাপটপের সাথে সুন্দর এবং সহজ সংযোগ করতে পারবেন। বড় অসুবিধা হ'ল, আপনি একটি অবস্থানের জন্য আবদ্ধ (একটি আইপি ঠিকানা)।
ল্যাপটপ জনসাধারণের সাথে আমি ঠিকানা দিয়ে সংযুক্ত নেই । এটি সামান্য কৌশলযুক্ত, তবে এমন কোনও নেটওয়ার্ক থেকে কাজ করবে যা আপনাকে আপনার সার্ভারে এসএসএইচ করার অনুমতি দেবে এবং পর্যাপ্ত আপলোড হবে (1 এমবিপিএস এটি করা উচিত)।
ব্যবহৃত দৃশ্যে নির্বিশেষে, ইনফ্রাস্ট্রাক্টর এর মতো দেখাবে
CAMERA - (usb) - LAPTOP - (network, limited upload) - SERVER - (network) - Client 0
- Client 1
- Client 2
- Client N
ল্যাপটপ থেকে স্ট্রিমিং
ওয়েবক্যাম থেকে ভিডিও ক্যাপচার করুন । আমি স্থানীয়ভাবে সংযুক্ত ওয়েবক্যাম থেকে কখনও স্ট্রিম ক্যাপচার করি নি, তবে ভি 4 এল এর মাধ্যমে এটি কীভাবে করা যায় তার অনেক উদাহরণ রয়েছে যেমন:
ওয়েবক্যাম সেটআপ । আপনার আগ্রহী হওয়া উচিত কেবলমাত্র অংশটি:
laptop$ vlc v4l:// :v4l-vdev="/dev/video0" :v4l-adev="/dev/audio2"
যা ওয়েবক্যামের সাথে সংযোগ স্থাপনের জন্য ভিএলসি কমান্ডের প্রথম অংশ। আরও তথ্যের জন্য উল্লিখিত হাওটো অনুসরণ করুন। বিশেষত "ভিডিও গ্রুপ" অংশটি দেখুন এবং / ডিভ / ভিডিও এবং / দেব / অডিওতে সঠিক ডিভাইস পাথ। এগুলি আপনার ল্যাপটপে আলাদা হতে পারে।
এফএলভিতে ট্রান্সকোড ভিডিও । আমি ব্যক্তিগতভাবে এফএলভি ব্যবহার করি, কারণ এটি সিপিইউর চাহিদা কম। ট্রান্সকোড স্ট্রিংটি আমি ব্যবহার করি এটি হ'ল:
--sout '#transcode{vcodec=FLV1,vb=512,acodec=mpga,ab=64,samplerate=44100}'
যা এমপিজিএ অডিও (এমপি 3 আমার উবুন্টুতে পাওয়া যায় না) সহ ভিডিও প্রবাহকে এফএলভি ফর্ম্যাটে ট্রান্সকোড করবে। নমুনা একরকম বাধ্যতামূলক, এটি ছাড়া এটি কাজ করবে না। তবে আপনি 22050 এর মতো ছোট চয়ন করতে পারেন This এটি ভিডিও স্ট্রিমটিকে 'যেমন আছে' তে ট্রান্সকোড করবে, সুতরাং স্কেলটি 1: 1। আপনি প্রস্থ এবং উচ্চতা পরামিতি, এমনকি স্কেল প্যারামিটার যুক্ত করতে পারেন। ভিএলসি ডকুমেন্টেশন দেখুন।
এটি ল্যাপটপ থেকে স্ট্রিম করুন । এখন আপনাকে স্থানীয় স্ট্রিম তৈরি করতে হবে, যার উপর সার্ভার সংযুক্ত হবে:
:std{access=http{mime=video/x-flv},mux=ffmpeg{mux=flv},dst=0.0.0.0:8081/stream.flv}
এটি ভিএলসি স্ট্রিমটি 0.0.0.0:8081/stream.flv এ আবদ্ধ করবে। পুরো কমান্ডটি এর মতো দেখবে:
laptop$ vlc v4l:// :v4l-vdev="/dev/video0" :v4l-adev="/dev/audio2" --sout '#transcode{vcodec=FLV1,vb=512,acodec=mpga,ab=64,samplerate=44100}:std{access=http{mime=video/x-flv},mux=ffmpeg{mux=flv},dst=0.0.0.0:8081/stream.flv}'
সার্ভারে পুনরায় প্রবাহ করা হচ্ছে
সার্ভারে স্ট্রিম ক্যাপচার করুন এবং এটি পুনরায় চালু করুন । আবার, আমরা ক্যাপচার এবং স্ট্রিম করতে ভিএলসি ব্যবহার করি। ব্যবহার এই পোস্টের প্রথম থেকেই অবকাঠামোগত দৃশ্যের উপর ভিত্তি করে। আমি যেমন দেখিয়েছি, ল্যাপটপের ভিএলসি কিছু বন্দরে ভিডিও প্রবাহিত করে। এই পোর্টটি সার্ভার থেকে অ্যাক্সেসযোগ্য হতে হবে। আপনার যদি ল্যাপটপের জনসাধারণের আইপি ঠিকানা, বা নাটেড পোর্ট থাকে তবে আপনি এটি টেলনেটের মাধ্যমে পরীক্ষা করতে পারেন:
server$ telnet public_ip_address 8081
"সংযোগের সময়সীমা" ব্যতীত যে কোনও কিছুই প্রকাশ পাবে, আপনি নিজের ল্যাপটপের স্ট্রিমের সাথে সংযোগ করতে পারবেন। আপনার যদি সার্বজনীন আইপি ঠিকানা না থাকে বা আপনি NAT পোর্ট করতে না পারেন তবে আপনাকে অন্য উপায়ে এটি করতে হবে। আপনি ল্যাপটপ থেকে সার্ভারে এসএসএইচ করতে পারেন এবং আপনার ল্যাপটপ পোর্টটিকে সার্ভারে রিমোট করতে পারেন। সঠিক এসএসএইচ কমান্ডটি হ'ল:
laptop$ ssh your_user@server_ip_address -R 8081:127.0.0.1:8081
এই ম্যাজিক কমান্ডটি আপনার ল্যাপটপ পোর্ট ৮০৮১, সার্ভার পোর্ট ৮০৮১-তে 'আবদ্ধ' করবে That এর অর্থ যখন আপনি সার্ভারে ৮০৮১ এ যুক্ত হন, আপনি নিঃশব্দে এসএসএইচ টানেলের মাধ্যমে আপনার ল্যাপটপ পোর্ট ৮০৮১ এর সাথে সংযোগ স্থাপন করবেন। দুর্দান্ত, হাহ? :) সুতরাং আমাদের যা করতে হবে তা হ'ল সহজ ভিএলসি সংযোগ এবং স্ট্রিম:
server$ vlc http://localhost:8081/stream.flv --sout '#std{access=http{mime=video/x-flv},mux=ffmpeg{mux=flv},dst=0.0.0.0:8082/stream.flv}'
অথবা সর্বজনীন আইপি ঠিকানা বা নাট পোর্টের ক্ষেত্রে:
server$ vlc http://public_ip_address:8081/stream.flv --sout '#std{access=http{mime=video/x-flv},mux=ffmpeg{mux=flv},dst=0.0.0.0:8082/stream.flv}'
ল্যাপটপের অংশের মতো, সার্ভারে থাকা আপনার ভিএলসি 8082 পোর্টের সাথে আবদ্ধ 80 কেন 8082 এবং 8081 নয়? 8081 ইতিমধ্যে এসএসএইচ রিমোট ফরওয়ার্ড নিয়েছে। কেন আমরা প্রথম উদাহরণ হিসাবে ট্রান্সকোড অংশ ব্যবহার করি না? ভিডিওটি ইতিমধ্যে সঠিক ফর্ম্যাটে রয়েছে, সুতরাং আমাদের যা করতে হবে তা হ'ল এটি কেবল স্ট্রিম হিসাবে করা।
পরীক্ষা হচ্ছে । উভয় উদাহরণে, আপনি ভিএলসির মাধ্যমে স্ট্রিমগুলি দেখে কার্যকারিতা পরীক্ষা করতে পারেন। আপনি আপনার স্থানীয় স্ট্রিম পরীক্ষা করতে পারেন:
laptop$ vlc http://localhost:8081/stream.flv
এবং আপনি আপনার সার্ভারের স্ট্রিম পরীক্ষা করতে পারেন:
laptop$ vlc http://server_ip_address:8082/stream.flv
উভয় ক্ষেত্রেই আপনার ওয়েবক্যাম ইনপুটটি দেখতে হবে।
ওয়েবে স্ট্রিম প্রদর্শন করুন
ওয়েবে স্ট্রিম প্রদর্শন করা, যা বেশিরভাগ ক্ষেত্রে কাজ করবে, ফ্ল্যাশ প্লেয়ারের মাধ্যমে। : আমি দুই পণ্য, যা অ বাণিজ্যিক ব্যবহারের জন্য মুক্ত চেষ্টা JW প্লেয়ার এবং Flowplayer । আমি ফ্লোপ্লেয়ারের সাথে রয়েছি, তবে এর কারণটি আমি মনে করতে পারি না, সম্ভবত প্লাগিনগুলির কারণে (যা আমি ব্যবহার করি না :)) বা আরও ভাল ডকুমেন্টেশনের কারণে।
ওয়েব পৃষ্ঠায় ভিএলসি থেকে কীভাবে এফএলভি স্ট্রিম প্রদর্শন করবেন তা এখানে আচ্ছাদিত রয়েছে: এসএফ এবং ফ্ল্যাশ সহ ওয়েবসাইটটিতে ভিএলসি স্ট্রিম করুন
সমস্যা সমাধান
যে সমস্যাগুলি দেখা দেয় সে সম্পর্কে সচেতন হন। প্রথম জিনিস, সব কিছু হিসাবে, পড়ুন । ভিএলসি খুব চ্যাটি প্রোগ্রাম, তাই সমস্যাটি কোথায় তা এটি আপনাকে জানাবে। ভিডিও / অডিও ডিভাইস অ্যাক্সেসের অনুমতি, সমস্যা হারিয়ে যাওয়া কোডেক, ভুল বানান - আউটপুট প্যারামিটার, ... ব্যবহার iftop
করতে শিখুন সমস্যাটি ডেটা নেটওয়ার্কের মাধ্যমে সত্যই প্রবাহিত হয় কিনা তা দেখতে শিখুন etc.