ইউভিসি ক্যামেরা / ইউএসবি ক্যামেরা কাস্টম অ্যাপ জন্য Android রিভিউ by AndroidFreeware
অ্যান্ড্রয়েড-ইউভিসি-ক্যামেরা
অ্যাপটি আপনার অ্যান্ড্রয়েড ডিভাইস থেকে একটি ইউএসবি ক্যামেরার সাথে সংযুক্ত হয়। (ওটিজি কেবল বা ওটিজি হাব প্রয়োজন)
এই প্রকল্পটি সমস্ত অ্যান্ড্রয়েড ডিভাইসের জন্য (৪.১ আইসক্রিম স্যান্ডউইচের উপরে) ইউভিসি ক্যামেরাসহ একটি আইসক্রোনাস ভিডিও স্ট্রিম করার জন্য তৈরি করা হয়েছে। প্রোগ্রামটি আপনার ইউজারস্পেস ইউএসবি ডিভাইস ড্রাইভার ব্যবহার করে আপনার ক্যামেরা ডিভাইসের সাথে একটি আইসক্রোনাস স্থানান্তর সম্পন্ন করে।
আপনার নিজস্ব ইউজারস্পেস ডিভাইস ড্রাইভার সেট আপ করার জন্য এই পদ্ধতি অনুসরণ করুন:
প্রথমে আপনাকে আপনার ডিভাইসের জন্য সমস্ত ক্যামেরা সেটিংস সেট আপ করতে হবে। তারপর প্রোগ্রামটি মানগুলি সংরক্ষণ করে এবং আপনি পরে সেগুলি পুনরুদ্ধার করতে বা অন্যান্য মানগুলির সাথে ওভাররাইট করতে পারেন। মানগুলি সমন্বয় করতে Edit/Save/Restore বোতামটি ব্যবহার করুন। ক্যামেরা খুঁজে পেতে এবং সেট আপ করার জন্য স্বয়ংক্রিয় ক্যামেরা অনুসন্ধান ব্যবহার করুন।
ব্যাখ্যা:
যখন স্বয়ংক্রিয় অনুসন্ধান সফল হয়, তখন আপনি প্রথমে সর্বাধিক প্যাকেট আকার সেট আপ করেন। যদি আপনার ডিভাইস একটি মিডিয়াথেক ডিভাইস হয়, তাহলে আপনাকে সর্বাধিক প্যাকেট আকারের মান কমাতে হতে পারে। PACKETS PER REQUEST মানটি ডিভাইসে পাঠানো প্যাকেটের সংখ্যা নির্ধারণ করে: একটি প্যাকেটের আকার ৩০০০ বাইট এবং আপনি একবারে ১৬টি প্যাকেট পাঠানোর জন্য ব্যবহার করেন। এখানে আপনি পাঠানো বাইটের পরিমাণ নির্ধারণ করেন।
পরবর্তী বিষয় হল ইউএসবি রিকোয়েস্ট ব্লক (activeUrb): এগুলি সর্বাধিক প্যাকেট আকারের সাথে সম্পর্কিত। আপনাকে এখানে আপনার ডিভাইসের জন্য সঠিক মানগুলি খুঁজে বের করতে হবে এবং Isoread মেনু পয়েন্টের অধীনে স্ক্রীনে আউটপুট নিয়ন্ত্রণ করতে হবে। ক্যালকম ডিভাইসের জন্য কিছু সাধারণ মান হল: activeUrbs এর জন্য ৮ এবং প্রতি রিকোয়েস্টে ১৬টি প্যাকেট....
Isoread পদ্ধতির প্রথম বিষয় হল ক্যামেরা ডিভাইসে একটি নিয়ন্ত্রণ স্থানান্তর:
যদি নিয়ন্ত্রণ স্থানান্তর সফল হয়, তাহলে আপনি প্রস্তুত।
এরপর ফ্রেমগুলোর দিকে নজর দিন।
যখন আপনি একই এবং দীর্ঘ ফ্রেমগুলি পান, আপনি Isostream পদ্ধতির দিকে এগিয়ে যেতে পারেন, যেখানে ফ্রেমগুলি আপনার স্ক্রীনে প্রদর্শিত হয়।
একটি ফ্রেমের আকার কত বড় হওয়া উচিত তা জানতে, আপনি লগে ক্যামেরার নিয়ন্ত্রণ স্থানান্তরের আউটপুট দেখতে পারেন: maxVideoFrameSize। এই মানটি ক্যামেরা থেকে ফিরে আসে এবং এটি বৈধ ফ্রেম আকার হওয়া উচিত (মানটি চিত্রের প্রস্থ x চিত্রের উচ্চতা x ২ দ্বারা গণনা করা হয়)।
IsochronousRead1 ক্লাসটি আপনাকে দেখায় কিভাবে ক্যামেরা দ্বারা ফ্রেমগুলি গঠন করা হয়। বিভিন্ন ক্যামেরা সেটিংস == বিভিন্ন ফ্রেম গঠন। বিভিন্ন সেটিংসের সাথে এটি চেষ্টা করুন এবং আউটপুট দেখুন। eof সূচক লগে ফ্রেমের আকার দেখায়। বৈধ ক্যামেরা সেটিংসের জন্য আকারটি নিয়ন্ত্রণ স্থানান্তরের maxFrameSize মানের সমান হওয়া উচিত।
Isoread পদ্ধতির আউটপুট: (নিয়ন্ত্রণ স্থানান্তর) প্রথমে প্রোগ্রামটি আপনার ক্যামেরা ডিভাইসে একটি নিয়ন্ত্রণ স্থানান্তর পাঠাবে। এর আউটপুটটি নিম্নরূপ দেখায়:
প্রাথমিক স্ট্রিমিং প্যারামস: hint=0x0 format=1 frame=1 frameInterval=2000000 keyFrameRate=0 pFrameRate=0 compQuality=0 compWindowSize=0 delay=0 maxVideoFrameSize=0 maxPayloadTransferSize=0
প্রোবড স্ট্রিমিং প্যারামস: hint=0x0 format=1 frame=1 frameInterval=2000000 keyFrameRate=0 pFrameRate=0 compQuality=0 compWindowSize=0 delay=0 maxVideoFrameSize=614400 maxPayloadTransferSize=3000
চূড়ান্ত স্ট্রিমিং প্যারামস: hint=0x0 format=1 frame=1 frameInterval=2000000 keyFrameRate=0 pFrameRate=0 compQuality=0 compWindowSize=0 delay=0 maxVideoFrameSize=614400 maxPayloadTransferSize=3000
প্রথম লাইনটি হল সেই মানগুলি যা আপনি প্রোগ্রামে সেট করেছেন, ক্যামেরার সাথে সংযোগ করতে। (প্রাথমিক স্ট্রিমিং প্যারামস)
দ্বিতীয় লাইনটি হল ক্যামেরার মানগুলি, যা ক্যামেরাটি আপনার মানগুলি থেকে ফিরিয়ে দিয়েছে।
এবং তৃতীয় লাইনে হল নতুন সংরক্ষিত এবং চূড়ান্ত মানগুলি ইউএসবি ক্যামেরা থেকে।
প্রথম পদ্ধতির আউটপুট: isoRead:
EOF frameLen=10436. --> উদাহরণস্বরূপ এখানে একটি ফ্রেম ১০৪৩৬ দৈর্ঘ্যে শেষ হচ্ছে যা নিয়ন্ত্রণ স্থানান্তর থেকে আমরা ৬১৪৪০০ আশা করেছিলাম, তাই আপনাকে বৈধ ফ্রেম আকার পেতে আপনার প্রোগ্রামের কিছু মান পরিবর্তন করতে হতে পারে।