লিনাক্স (v4l) ওয়েবক্যাম - সেটিংস "স্টিক" করুন


3

আমার লজিটেক ক্যামেরা (সি 300) সঠিকভাবে সনাক্ত করা হয়েছে এবং / ডেভ / ভিডিও0 এ উপস্থিত রয়েছে। তবে, ডিফল্টরূপে চিত্রটির বিপরীতে এবং স্যাচুরেশন সর্বাধিকতে সেট করা থাকে, যা চিত্রের গুণমানকে উল্লেখযোগ্যভাবে হ্রাস করে। আমি গুভকভিউ ব্যবহার করে সেটিংস পরিবর্তন করতে পারি তবে সেটিংসটি ছাড়ার পরে স্বাভাবিক অবস্থায় ফিরে আসে (ফ্রেমগুলি ক্যাপচারের জন্য আমি এমপ্লেয়ার ব্যবহার করছি)। গুভভিউতে আমি যে পরিবর্তনগুলি করব তা কীভাবে স্থায়ী করতে পারি?

সম্পাদনা করুন:

দেখে মনে হচ্ছে গুভভিউয়ের সেটিংস প্রকৃতপক্ষে "স্টিকি" - যদি আমি এটি আবার খুলি, চিত্রটি একই থাকে। সুতরাং এটি অন্য প্রোগ্রামগুলি ওয়েবক্যামের সূচনা করার জন্য করছে (এমপ্লেয়ার এবং ভিএলসি একই সমস্যা)

উত্তর:


3

প্রথম খারাপ সংবাদ: আমি জানি কোনও ডিস্ট্রোতে এটি করার জন্য বর্তমানে কোনও অন্তর্নির্মিত সমাধান নেই।

সুসংবাদটি হ'ল এই জাতীয় সমাধান কার্যকর করা খুব সহজ এবং অনেকগুলি অনুরূপ সমস্যার জন্য খাপ খাইয়ে নেওয়া যেতে পারে: আমাদের কেবলমাত্র কিছুটা উদেব এবং বাশ ব্যবহার করা দরকার।

প্রথমত, আমাদের এই সেটিংসটি সেট করার জন্য একটি প্রোগ্রাম্যাটিক (স্ক্রিপ্ট-বান্ধব) উপায় প্রয়োজন। আমার v4l2ctrlপ্রিয়টি হ'ল এটি ভি 4 এল 2 কনফিগারেশনগুলি সংরক্ষণ করতে পারে এবং তারপরে তাদের চাহিদা অনুসারে পুনরুদ্ধার করতে পারে। উদাহরণ স্বরূপ:

  1. আপনার পছন্দের যে কোনও প্রোগ্রামের সাথে প্রথমে আপনার ক্যামেরা সেটিংস পরিবর্তন করুন। আমি সত্যিই এর জন্য qv4l2 এর প্রস্তাব দিচ্ছি, এটি দুর্দান্ত।
  2. তারপরে, একটি ফাইলে ক্যামেরা সেটিংস সংরক্ষণ করুন। ( -d /dev/video0isচ্ছিক, তবে আপনার যদি একাধিক ক্যামেরা থাকে তবে দরকারী))

    v4l2ctrl -d /dev/video0 -s camera-settings.txt
    
  3. যদি আপনি প্লাগ প্লাগ করে আবার প্লাগ করেন তবে সেটিংসটি হারিয়ে যাবে, তবে এখন আমরা সেগুলি পুনরুদ্ধার করতে পারি:

    v4l2ctrl -d /dev/video0 -l camera-settings.txt
    

একবার আপনি এটির মতো কাজটি করার পরে, এটি ইউদেব দিয়ে স্বয়ংক্রিয় করার সময়। এর জন্য আমরা আমাদের পছন্দের একটি নিয়ম ফাইল তৈরি করব যা ক্যামেরার সাথে মেলে। ফাইলটি বলা যেতে পারে /etc/udev/rules.d/99-v4l2-default-settings.rulesএবং এর মতো কিছু থাকতে পারে:

SUBSYSTEM=="video4linux", ATTR{name}=="HD Pro Webcam C920", RUN+="/etc/camera-defaults/udev-hook.sh"

উপরেরগুলি স্ক্রিপ্টটিকে মূল হিসাবে চালিত করবে /etc/camera-defaults/udev-hook.sh যা আমরা শীঘ্রই তৈরি করব যখনই সাবসিস্টেমের এমন একটি ডিভাইস video4linuxযার প্রস্তুতকারকের নাম "এইচডি প্রো ওয়েবক্যাম সি 920" সনাক্ত করা হয় বা প্লাগযুক্ত করা যায়।

আমরা আমাদের নিয়মে বিভিন্ন ফিল্টার যুক্ত করতে পারি। আপনি udevadm info -a -p $(udevadm info -q path -n /dev/video0)ডিভাইস, পাশাপাশি এর প্যারেন্ট ডিভাইসের জন্য সমস্ত সম্ভাব্য ভেরিয়েবলগুলি পেতে ব্যবহার করতে পারেন ।

শেষ পর্যন্ত স্ক্রিপ্টটি তৈরি করুন। এখানে এমন কিছু সহজ যা কাজ করবে। এটি কার্যকর করার অনুমতি দিন!

#!/bin/bash
set -eu

# Useful for debugging, if you want to check what variables are available:
# set > /tmp/vars

if [ "$ACTION" == "add" ]; then
  v4l2ctrl -d "$DEVNAME" -l "/etc/camera-defaults/camera-settings.txt"
fi

camera-settings.txtনির্দিষ্ট ডিরেক্টরিতে সরান , আনপ্লাগ এবং আবার প্লাগ করুন। এই ফাইলটি থেকে সেটিংস সফলভাবে পুনরুদ্ধার করা উচিত ছিল।

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

v4l2ctrl -s /etc/camera-defaults/camera-settings.txt

আমি এই সমাধানটি একত্রীকরণ করেছি এবং এটি একটি গিট সংগ্রহস্থলে প্রকাশ করেছি: git.ao2.it/v4l2-persistance-settings.git আমি লিনাক্স-মিডিয়ায় ভি 4 এল বিকাশকারীদের কী সম্পর্কে এটি দেখুন তা জানতে জিজ্ঞাসা করার চেষ্টা করেছি: স্পিনিকস.নেট
অ্যান্টোনিও অস্পাইট

1

আমি এই পদক্ষেপগুলি অনুসরণ করে অনুরূপ সমস্যাটি সমাধান করেছি ( উত্স থেকে অভিযোজিত ):

$ sudo apt-get install mercurial
$ hg clone http://linuxtv.org/hg/v4l-dvb
$ cd v4l-dvb
$ sudo make menuconfig <-- dont change anything, just "Exit" and save changes
$ sudo emacs v4l/.config <-- change CONFIG_DVB_FIREDTV=m to CONFIG_DVB_FIREDTV=n
$ make
$ sudo make install
$ v4l2ucp <-- Auto Gain off
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.