রাস্পবেরি পাই লিনাক্স মোশন গুগল ফটো ইন্টিগ্রেশন: 5 টি ধাপ
রাস্পবেরি পাই লিনাক্স মোশন গুগল ফটো ইন্টিগ্রেশন: 5 টি ধাপ
Anonim
রাস্পবেরি পাই লিনাক্স মোশন গুগল ফটো ইন্টিগ্রেশন
রাস্পবেরি পাই লিনাক্স মোশন গুগল ফটো ইন্টিগ্রেশন

ধারণাটি হল ক্লাউডে ফাইল আপলোড করার জন্য রাস্পবেরি পাই এর সাথে সংযুক্ত মোশন অ্যাক্টিভেটেড ক্যামের সাহায্যে তৈরি ফটো এবং ভিডিও আপলোড করা। 'মোশন' সফটওয়্যার পাইড্রাইভের মাধ্যমে গুগল ড্রাইভে আপলোড করা সমর্থন করে। এই নিবন্ধে 'মোশন' গুগল ফটোতে আপলোড করার জন্য ব্যবহৃত হয়।

হার্ডওয়্যার:

রাস্পবেরি পাই 3 বি+

ইউএসবি ওয়েবক্যাম লজিটেক C920

হার্ডওয়্যার নির্বাচন নির্ধারিত ছিল না, আমি যা হাতে ছিল তা নিয়েছিলাম।

পূর্বশর্ত:

সুবিধার জন্য রাস্পবেরি পাই আপনার স্থানীয় নেটওয়ার্কে থাকা উচিত - মনিটর/কীবোর্ড ছাড়া এটি নিয়ন্ত্রণ করতে এবং ফাইল আপলোড/ডাউনলোড করতে। এর জন্য আপনার পিসিতে ssh এজেন্ট থাকা উচিত (যেমন পুটি)।

একটি দুর্দান্ত টিউটোরিয়ালের জন্য ssandbac কে অনেক ধন্যবাদ। পরিবেশ কীভাবে সেটআপ করবেন সে সম্পর্কে আপনার আরও তথ্যের প্রয়োজন হলে এই নিবন্ধটি দেখুন। আমি গতি ইনস্টলেশন এবং এটি থেকে পদক্ষেপগুলি কনফিগার করেছি এবং কিছু পরিবর্তন যুক্ত করেছি। বিশেষ করে, ফাইল এবং সতর্কতা ইমেল করার পরিবর্তে এই উদাহরণটি গুগল ফটো শেয়ার করা অ্যালবামে আপলোড করা এবং বিজ্ঞপ্তি বারে বিজ্ঞপ্তি ধরনের "যোগ করা ফটো" ব্যবহার করে।

এখানে ধাপগুলি:

ধাপ 1: রাস্পবেরিতে লিনাক্স মোশন ইনস্টল করুন

বিশেষ করে এই উদাহরণে গতি v4.0 ব্যবহার করা হয়েছিল।

1.1 পাই আপডেট করুন

pi@raspberrypi: ~ $ sudo apt-get update

pi@raspberrypi: ~ $ sudo apt-get upgrade

1.2 ডাউনলোড গতি

pi@raspberrypi: ~ $ sudo apt-get install মোশন

1.3 এখন নিম্নলিখিত পরিবর্তনগুলি সহ এই ফাইলটি সম্পাদনা করুন

pi@রাস্পবেরি: ~ $ sudo ন্যানো /etc/motion/motion.conf

# ডেমন (ব্যাকগ্রাউন্ড) মোডে শুরু করুন এবং টার্মিনাল ছেড়ে দিন (ডিফল্ট: বন্ধ)

ডেমন চালু

# লগ বার্তাগুলি সংরক্ষণ করতে একটি ফাইল ব্যবহার করুন, যদি নির্ধারিত না হয় stderr এবং syslog ব্যবহার করা হয়। (ডিফল্ট: সংজ্ঞায়িত নয়)

logfile /var/log/motion/motion.log

# ছবির প্রস্থ (পিক্সেল)। বৈধ পরিসীমা: ক্যামেরা নির্ভর, ডিফল্ট: 352

প্রস্থ 1920

# ছবির উচ্চতা (পিক্সেল) বৈধ পরিসীমা: ক্যামেরা নির্ভর, ডিফল্ট: 288

উচ্চতা 1080

# প্রতি সেকেন্ডে সর্বোচ্চ সংখ্যক ফ্রেম ধরা হবে।

ফ্রেমরেট 30

# গতির আগে থেকে প্রি-ক্যাপচার (বাফার্ড) ছবির সংখ্যা উল্লেখ করে

pre_capture 5

# গতির পরে ক্যাপচার করার জন্য ফ্রেমের সংখ্যা আর সনাক্ত করা যায় না

পোস্ট_ক্যাপচার 5

# গতি ধরা পড়লে আউটপুট 'স্বাভাবিক' ছবি (ডিফল্ট: চালু)

output_pictures বন্ধ

# গুণমান (শতাংশে) jpeg কম্প্রেশন দ্বারা ব্যবহার করা হবে

মান 100

# রিয়েলটাইমে মুভি এনকোড করতে ffmpeg ব্যবহার করুন

ffmpeg_output_movies বন্ধ

# বা পরিসীমা 1 - 100 যেখানে 1 মানে সবচেয়ে খারাপ মানের এবং 100 সেরা।

ffmpeg_variable_bitrate 100

# ভিডিও তৈরি করার সময়, ফ্রেমগুলি ক্রমে নকল করা উচিত

ffmpeg_duplicate_frames মিথ্যা

# এক্সটপাইপ সক্ষম বা নিষ্ক্রিয় করার জন্য বুল (ডিফল্ট: বন্ধ)

use_extpipe চালু

extpipe ffmpeg -y -f rawvideo -pix_fmt yuv420p -video_size %wx %h -framerate %fps -i পাইপ: 0 -vcodec libx264 -preset ultrafast -f mp4 %f.mp4

target_dir/var/lib/গতি

# মুভি ফাইল করার সময় কমান্ডটি কার্যকর করা হবে

; on_movie_end sudo python3 /var/lib/motion/photos.py %f.mp4 &

ভিডিও রেকর্ডিং এবং আপলোড করার কাজ নিশ্চিত করার পরে আপাতত সেমিকোলন দিয়ে শেষ (মন্তব্য) ছেড়ে দিন।

1.4 তারপর পরিবর্তন করুন

pi@raspberrypi: ~ $ sudo nano/etc/default/motion

pi@raspberrypi: ~ $ start_motion_daemon = হ্যাঁ

পদক্ষেপ 2: পাইথনের জন্য গুগল ফটো এপিআই সেটআপ করুন

পাইথনের জন্য গুগল ফটো এপিআই সেটআপ করুন
পাইথনের জন্য গুগল ফটো এপিআই সেটআপ করুন
পাইথনের জন্য গুগল ফটো এপিআই সেটআপ করুন
পাইথনের জন্য গুগল ফটো এপিআই সেটআপ করুন

2.1 নতুন ফাইল যোগ করার সময় বিজ্ঞপ্তি পেতে আপনার প্রধানের সাথে একটি অ্যালবাম শেয়ার করার জন্য একটি নতুন অ্যাকাউন্ট তৈরি করার সুপারিশ করা হয়েছে, আরও সঞ্চয় স্থান রয়েছে। আপনি যে অ্যাকাউন্টটি আপলোড করার জন্য ব্যবহার করতে যাচ্ছেন তার জন্য গুগল ফটো এপিআই সক্ষম করুন।

এর পরে আপনার credentials.json ফাইল থাকা উচিত।

2.2 পাইথন পরিবেশ সেটআপ

মূলত পরিবেশগত সেটআপ শুধুমাত্র রাস্পবেরিতে প্রয়োজন। কিন্তু এটির জন্য অনুমোদনের প্রয়োজন যা পিসিতে সম্পন্ন করা আরও সুবিধাজনক। রাস্পবেরিতে এটি করার জন্য আপনাকে এটির সাথে মনিটর/কীবোর্ড সংযুক্ত করতে হবে বা কিছু দূরবর্তী ডেস্কটপ UI সেটআপ করতে হবে। আমি শুধু রাস্পবেরি এবং পিসি উভয়ে একই পরিবেশ ইনস্টল করেছি। সুতরাং 2.2.1..2.2.3 ধাপগুলি পিসিতে, 2.2.1, 2.2.2, 2.2.5, 2.2.6 Rpi এ তৈরি করা হয়েছিল

2.2.1 পাইথন 3 ইনস্টল করুন

2.2.2 ম্যানুয়াল অনুযায়ী গুগল এপিআই প্যাকেজ ইনস্টল করুন (দেখুন 5.1)

পিসিতে

pip3 install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib

রাস্পবেরিতে

pi@raspberrypi: ~ $ sudo pip3 install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib

2.2.3 গুগল ফটোগুলিতে স্ক্রিপ্ট আপলোড করে দেখুন.. এটা আমার গিথুবের উপর রাখা আছে Credentials.json সহ একই ডিরেক্টরিতে রাখুন।

2.2.4 কিছু ছবি তুলুন এবং আপলোড করার পরীক্ষা করুন

python3 photos.py image.jpg

অনুপস্থিত নির্ভরতাগুলি ইনস্টল করুন এবং আবার চেষ্টা করুন। ফলস্বরূপ আপনার স্ক্রিপ্টের ডিরেক্টরিতে token.pickle এবং image-j.webp

2.2.5 অ্যাকাউন্টের সাথে অ্যালবামটি শেয়ার করুন যা আপনি নতুন মিডিয়াতে বিজ্ঞপ্তি যোগ করতে চান। আপনার ফোনে এই অ্যাকাউন্ট যোগ করুন।

2.2.6 রাস্পবেরিতে photos.py এবং token.pickle/var/lib/motion রাখুন। 'পিআই' ব্যবহারকারী 'মোশন ডির' -এ লিখতে পারেন না তাই প্রথমে /home /pi এ আপলোড করুন

scp photos.py token.pickle pi@IP:/home/pi

তারপর রাস্পবেরিতে লগইন করুন এবং ফাইলগুলিকে sudo এর অধীনে সরান

ssh pi@আইপি

pi@raspberrypi: ~ $ sudo mv photos.py token.pickle/var/lib/motion

2.2.7 রাস্পবেরিতে কীভাবে আপলোড করা যায় তা পরীক্ষা করুন। Fswebcam দিয়ে কিছু ছবি তুলুন এবং এটি আপলোড করার চেষ্টা করুন

pi@রাস্পবেরি: ~ $ sudo fswebcam /var/lib/motion/image.jpg

pi@raspberrypi: ~ $ sudo python3 /var/lib/motion/photos.py /var/lib/motion/image.jpg

"Helloworld" অ্যালবামে image-j.webp

ধাপ 3: পরীক্ষা

3.1 মোশন পরিষেবা শুরু করুন

pi@raspberrypi: ~ $ sudo সার্ভিস মোশন শুরু

আপনি কমান্ডটি "স্টপ", বা "রিস্টার্ট" এ পরিবর্তন করতে পারেন

3.2 মোশন লগ সক্ষম করুন

pi@রাস্পবেরি: ~ $ tail -f /var/log/motion/motion.log

3.2 একই স্থানীয় নেটওয়ার্কের সাথে সংযুক্ত অন্য ডিভাইসে ক্যামেরা আউটপুট দেখুন। ব্রাউজারে প্রবেশ করুন:

IP: 8081

3.3 লগের দিকে তাকিয়ে মোশন শনাক্ত না হওয়া পর্যন্ত অপেক্ষা করুন এবং NAME.mp4 ফাইলটি/var/lib/motion এ লেখা আছে। তারপরে ম্যানুয়ালি আপলোডিং স্ক্রিপ্ট চালু করুন

pi@raspberrypi: ~ $ sudo python3 /var/lib/motion/photos.py /var/lib/motion/NAME.mp4

অজগর ট্রেস চেক করুন। ইভেন্ট_এন্ড মোশন.লগে দেখা না হওয়া পর্যন্ত অপেক্ষা করুন। তারপরে আপনার গুগল ফটোগুলিতে "হ্যালোওর্ল্ড" অ্যালবামে যান এবং কোনও ভিডিও আপলোড করা আছে কিনা তা পরীক্ষা করুন।

3.4 যদি আপলোড করা সফল হয় /etc/motion.conf লাইনে:

pi@raspberrypi: ~ $ sudo nano /etc/motion.conf

# একটি মুভি ফাইল প্রস্তুত হলে কমান্ডটি কার্যকর করা হবে

on_movie_end sudo python3 /var/lib/motion/photos.py %f.mp4 &

পিআই@রাস্পবেরিপি: ~ $ সিঙ্ক

pi@raspberrypi: ~ $ sudo সার্ভিস মোশন রিস্টার্ট

3.5 মোশন লগ দেখে এবং অ্যালবামে চেক করুন ভিডিও স্বয়ংক্রিয়ভাবে আপলোড হয়েছে কিনা।

3.6 নতুন ভিডিও বা ফটো যোগ করার সময় বিজ্ঞপ্তি পেতে mainচ্ছিকভাবে আপনার প্রধান অ্যাকাউন্টের সাথে অ্যালবামটি শেয়ার করুন।

ধাপ 4: ptionচ্ছিক: রিয়েল টাইম স্ট্রিমিং ক্যামেরায় ওয়েব অ্যাক্সেস কনফিগার করুন

Alচ্ছিক: রিয়েল টাইম স্ট্রিমিং ক্যামেরায় ওয়েব অ্যাক্সেস কনফিগার করুন
Alচ্ছিক: রিয়েল টাইম স্ট্রিমিং ক্যামেরায় ওয়েব অ্যাক্সেস কনফিগার করুন
Ptionচ্ছিক: রিয়েল টাইম স্ট্রিমিং ক্যামেরায় ওয়েব অ্যাক্সেস কনফিগার করুন
Ptionচ্ছিক: রিয়েল টাইম স্ট্রিমিং ক্যামেরায় ওয়েব অ্যাক্সেস কনফিগার করুন
Ptionচ্ছিক: রিয়েল টাইম স্ট্রিমিং ক্যামেরায় ওয়েব অ্যাক্সেস কনফিগার করুন
Ptionচ্ছিক: রিয়েল টাইম স্ট্রিমিং ক্যামেরায় ওয়েব অ্যাক্সেস কনফিগার করুন

এই পদক্ষেপটি মিশেলের প্যারেনো টিউটোরিয়ালের উপর ভিত্তি করে। আমি এখানে সুপারিশ অনুযায়ী NoIP এর পরিবর্তে FreeDNS বেছে নিয়েছি।

4.1 ভিডিও স্ট্রিমিং মোশন সার্ভারে অনুমোদিত অ্যাক্সেস কনফিগার করুন:

pi@রাস্পবেরি: ~ $ sudo ন্যানো /etc/motion/motion.conf

# প্রমাণীকরণ পদ্ধতি সেট করুন (ডিফল্ট: 0)

# 0 = নিষ্ক্রিয়

# 1 = প্রাথমিক প্রমাণীকরণ

# 2 = MD5 ডাইজেস্ট (নিরাপদ প্রমাণীকরণ)

stream_auth_method 2

# স্ট্রীমের জন্য প্রমাণীকরণ। সিনট্যাক্স ব্যবহারকারীর নাম: পাসওয়ার্ড

# ডিফল্ট: নির্ধারিত নয় (অক্ষম)

webcontrol_authentication ব্যবহারকারীর নাম: পাসওয়ার্ড

# স্ট্রিম স্ট্রিমগুলির জন্য সর্বোচ্চ ফ্রেমরেট (ডিফল্ট: 1)

stream_maxrate 30

# শুধুমাত্র স্থানীয় হোস্টে স্ট্রিম সংযোগ সীমাবদ্ধ করুন (ডিফল্ট: চালু)

stream_localhost বন্ধ

আপনি যদি বাহ্যিক নেটওয়ার্ক থেকে ওয়েব কন্ট্রোল ইন্টারফেস ব্যবহার করতে না যান তবে এটি অক্ষম রাখুন (ডিফল্টরূপে)

# শুধুমাত্র স্থানীয় হোস্টে নিয়ন্ত্রণ সংযোগ সীমাবদ্ধ করুন (ডিফল্ট: চালু)

webcontrol_localhost চালু

এছাড়াও, যেহেতু রাস্পবেরি অনলাইনে যায়, তাই আমি ডিফল্ট রাস্পবেরি পাসওয়ার্ড পরিবর্তন করার পরামর্শ দিই

pi@রাস্পবেরি: ~ $ passwd

যদিও এসএসএইচ পোর্ট 22 টি রাস্পবেরিতে ফেরত দেওয়া হয়নি, এখনও।

4.2 FreeDNS সাইটে যান

4.3 সাইন আপ করুন

4.4 সাবডোমেন যোগ করুন (সদস্যদের জন্য -> সাবডোমেন)

4.5 রাস্পবেরিতে ইনস্টল করার জন্য DNS ক্লায়েন্ট নির্বাচন করুন (সদস্যদের জন্য -> ডায়নামিক DNS -> সিনামিক DNS রিসোর্স -> ডায়নামিক DNS ক্লায়েন্ট)

আমি অ্যাডাম ডিন থেকে wget_script update.sh বেছে নিয়েছি (পৃষ্ঠার নীচে)

স্থানধারক _YOURAPIKEYHERE_ এবং _YOURDOMAINHERE_ আছে। তাদের পেতে (সদস্যদের জন্য -> ডায়নামিক DNS)

এবং নীচের পৃষ্ঠায় আপনি আপনার APIKEY এবং DOMAIN (4.4 এ যোগ করা) সহ স্ক্রিপ্টের উদাহরণ পাবেন। আমি Wget স্ক্রিপ্ট থেকে এই মানগুলো নিয়েছি এবং update.sh এ _YOURAPIKEYHERE_ এবং _YOURDOMAINHERE_ প্রতিস্থাপন করেছি

4.6 তারপর রাস্পবেরিতে update.sh চালান। এটি nslookup এর জন্য dnsutils প্রয়োজন হতে পারে। তারপর এটি ইনস্টল করুন:

pi@raspberrypi: ~ $ sudo apt-get dnsutils

4.7 তারপর আপনার রাউটার কনফিগার করুন বহির্বিশ্বের অনুরোধগুলিকে 8081 পোর্টে রাস্পবেরির আইপি -তে ফেরত পাঠাতে

4.8 ডিএইচসিপি সেটিংয়ে আপনার রাস্পবেরির ম্যাকের জন্য আইপি সংরক্ষণ করুন যাতে Rpi সর্বদা একই আইপি থাকে

4.9 তারপর একটি ডিভাইসে ব্রাউজারে প্রবেশ করুন যা স্থানীয় নেটওয়ার্কের সাথে সংযুক্ত নয়:

আপনার ডোমেন: 8081

আপনার শংসাপত্রগুলি প্রবেশ করান যা আপনি গতিতে সংজ্ঞায়িত করেছেন।

ভিডিওটি কীভাবে কাজ করে তা পরীক্ষা করুন।

4.10 ডিডিএনএস আপডেট করার জন্য স্বয়ংক্রিয়ভাবে ক্রোন টাস্ক সেটআপ করুন। Quick_cron_example দেখুন (সদস্যদের জন্য -> ডায়নামিক DNS)

ধাপ 5: টিপস

5.1 রাস্পবেরিতে পাইথন প্যাকেজ ইনস্টল করার জন্য মনোযোগী হন। আমি এটি ডিবাগ করে একটি দিন কাটিয়েছি - সমস্যাটি হ'ল কনসোল থেকে স্ক্রিপ্টটি ভালভাবে চলছিল, কিন্তু মোশন ইভেন্ট কলব্যাক থেকে কল করা হয়নি। যে বিষয়টি আরও খারাপ করেছে তা হ'ল পরবর্তী ক্ষেত্রে স্ক্রিপ্টের চিহ্নগুলি অনুপলব্ধ ছিল।

কারণ ছিল যে গাইড অনুসরণ করে আমি 'পাই' ব্যবহারকারীর জন্য প্যাকেজ ইনস্টল করেছি (যা ডিফল্টভাবে /home /pi ডিরেক্টরিতে আছে এবং অন্যান্য ব্যবহারকারীদের জন্য সীমাবদ্ধ) কিন্তু স্ক্রিপ্টটি 'মোশন' সেবার সন্তান হিসাবে চালানোর জন্য প্যাকেজগুলি অবশ্যই হতে হবে 'মোশন' ব্যবহারকারীর জন্যও উপলব্ধ। তাই অবশেষে আমি প্যাকেজগুলি ইনস্টল করার জন্য এটি ঠিক করেছি

sudo pip3…

এটি এখনও সঠিকভাবে কাজ করে না। Pip3 --system হিসাবে sudo ছাড়া ইনস্টলেশন আমাকে কিছু কারণে ত্রুটি দিচ্ছিল।

অনুরূপভাবে স্ক্রিপ্টটি সুডোর অধীনেও বলা হয় (গতি। কনফ দেখুন)।

এই সমস্যা সমাধানের সময় আমি অনেক অপ্রয়োজনীয় পরিবর্তন করেছি এবং নিশ্চিত নই যে কী প্রয়োজন এবং এখন সেগুলি ক্রমবর্ধমানভাবে ফিরিয়ে আনতে এবং এটি কখন কাজ বন্ধ করে দেয় তা দেখতে খুব অলস। বিশেষ করে, গতির প্রশাসকের অধিকার প্রদান করা হয়েছে:

pi@raspberrypi: ~ $ groups গতি

গতি: মোশন অ্যাডম সুডো অডিও ভিডিও ব্যবহারকারীরা নেটদেব পাই

pi@raspberrypi: ~ $ sudo cat /etc/sudoers.d/010_pi-nopasswd

pi ALL = (ALL) NOPASSWD: ALL

মোশন ALL = (ALL) NOPASSWD: ALL

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

5.2 গুগল ফটো এপিআই শুধুমাত্র শেয়ার করা অ্যালবামে ফাইল যোগ করতে দেয় যাতে লিঙ্ক সহ যে কেউ এটি অ্যাক্সেস করতে পারে। লিঙ্ক দ্বারা এটি ভাগ করবেন না এবং পুরানো সিনেমাগুলি মুছবেন না বা সেগুলি ট্র্যাশে বা অ্যালবাম থেকে সরান না। পরবর্তী ক্ষেত্রে তারা অ্যাকাউন্টে থাকে।

5.3 গুগল ফটো সহকারী মুখ সনাক্ত করে, যা ক্যামেরার মান ঠিক থাকলে বেশ উপকারী। একটি বোনাস হিসাবে এটি অভিনব মিডিয়া ধরনের সংকলন এবং জিআইএফ ইত্যাদি তৈরি করে।

5.4 আমি ইন্টারনেট অ্যাক্সেসের জন্য 4G LTE ইউএসবি মডেম ব্যবহার করার চেষ্টা করেছি এবং এখানে আমার ফলাফল 5.4.1 হুয়াওয়ে E3372h-153 সমস্যা এবং অতিরিক্ত সফ্টওয়্যার ছাড়াই রাস্পবেরি নিয়ে কাজ করে 5.4.2 এছাড়াও হটস্পট সক্ষম করেছে তাই রাস্পেরি ওয়াইফাইয়ের মাধ্যমে ইন্টারনেট সংযোগ শেয়ার করেছে। Https://howtoraspberrypi.com/create-a-wi-fi-hotspot-in-less-than-10-minutes-with-pi-raspberry/ একটি সত্যিই সহজ গাইড আছে কিভাবে RaspAP ব্যবহার করে এটি করতে হয়। 5.4.3 ডায়নামিক DNS আমার ক্যারির 4G নেটওয়ার্কে কাজ করে না। এর ব্যাখ্যা আছে কেন

5.5 এই সিস্টেমটি কয়েক সপ্তাহ ব্যবহার করার পর দেখা গেল, যদিও ভিডিওগুলি দেখতে এবং আপলোড করার জন্য আরও সুবিধাজনক, গুগল ফটো ছবিগুলির সাথে আরও ভাল কাজ করে। উদাহরণস্বরূপ এটি শুধুমাত্র ছবি/বিশ্লেষণ বিশ্লেষণ করতে সক্ষম হয়, এবং শুধুমাত্র তারপর ভিডিওতে ছবি থেকে মুখ/জিনিস খুঁজছে, কিন্তু বিপরীত নয়। তাই আমি ভিডিও আপলোড করার পরিবর্তে ছবিগুলি পরীক্ষা করতে যাচ্ছি।

প্রস্তাবিত: