কেবলমাত্র পরে + x + y ছাড়াই আমার পর্দার H + W জ্যামিতি পান


9

আমি এই নিবন্ধটি পড়ছি । সেখানে একটি বিবৃতি আছে যে:

ffmpeg -f alsa -ac 2 -i hw:0,0 -f x11grab -s $(xwininfo -root | grep 'geometry' | awk '{print $2;}') -r 25 -i :0.0 -sameq -f mpeg -ar 48000 -s wvga -y sample.mp4 

কমান্ডটি চালানোর সময় আমি যে বিভাগটি বলি তাতে একটি ত্রুটি পাই:

xwininfo -root | grep 'geometry' | awk '{print $2;}' 

কারণটি হ'ল আপনি যখন আমার কম্পিউটারে এই আদেশটি ব্যবহার করেন তখন তা আউটপুট হয়:

1360x768+0+0 

এর 1360x768পরিবর্তে স্ক্রিন রেজোলিউশন আউটপুটটির শেষ অংশটি আমি কীভাবে সরিয়ে ফেলব 1360x768+0+0?


1
যদি আপনি জ্যামিতি জানেন, 1360x768, কেবল পরিবর্তে একটি পরিবর্তনশীল ব্যবহার করুন
প্যান্থার

1
আমি এটি উপলব্ধি করেছি এবং ইতিমধ্যে এটি সফলভাবে এটি করেছি। তবে আমি অভিজ্ঞতাটি আমার বিশদ জ্ঞানের পাশাপাশি বাড়াতে চেষ্টা করছিলাম। :)
গেস্ট 123 এবিসি

ঠিক আছে, শুভ কামনা রইল. ইন্টারনেটে অ্যাডাব্লিক করার জন্য বেশ কয়েকটি দুর্দান্ত টিউটোরিয়াল রয়েছে।
প্যান্থার

উত্তর:


10
  • আপনি perlকেবল রেজোলিউশন পেতে ব্যবহার করতে পারেন :

    xwininfo -root | perl -lne 's/.*geometry (\w+).*/$1/ or next; print'
    1360x768
    
  • বা স্রেফ জিএনইউ সহ আরও খাটো grep:

    xwininfo -root | grep -oP '(?<=geometry )\w+'
    1360x768
    

    ব্যাখ্যা : লুকবাইন্ডটি দৃ as়ভাবে (?<=geometry )দাবি করে যে স্ট্রিংয়ের বর্তমান অবস্থানে, পূর্ববর্তীগুলি "জ্যামিতি" অক্ষরগুলি কী। যদি দৃ suc়তা সফল হয় তবে ইঞ্জিনটি রেজোলিউশন প্যাটার্নের সাথে মেলে।

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

    সূত্র: http://www.rexegg.com/regex-disambiguation.html#lookbehind


@ Guest123ABC আমি রেগুলার এক্সপ্রেশন একটি খাটো সংস্করণের সাথে আমার উত্তর আপডেট করেছি
সিলভাঁ Pineau

6

awkস্পেস এবং প্লাস চিহ্নগুলির উপর ভিত্তি করে আমার খাঁটি পদ্ধতির ক্ষেত্রগুলিতে স্ট্রিংকে বিভক্ত করা:

xwininfo -root | awk -F'[+| ]' '/geometry/ {print $4}'

সিলভেনের পার্ল অভিব্যক্তির সাথে একই রকম পদ্ধতি তবে এর সাথে sed:

xwininfo -root | sed -nr 's/.*geometry ([0-9x]+).*/\1/p'

5

আপনি সম্ভবত ব্যবহার করতে পারে awk substr। আপনার বিশেষ ক্ষেত্রে:

xwininfo -root | awk '/geometry/ {print substr($2,1,8);}'

বা আপনি যদি এটি কোনও ক্ষেত্রে কাজ করতে চান তবে:

xwininfo -root | awk '/geometry/ {print $2;}' | cut -d'+' -f1

এই সাহায্য আশা করি।


হ্যাঁ! আপনাকে অনেক ধন্যবাদ! প্রথম কাজ! :) দ্বিতীয়টি দুটি ফলাফল তৈরি করে: একটি 1 এবং তারপরে রেজোলিউশন যা এই ক্ষেত্রে কার্যকর হবে না, তবে সাধারণ জ্ঞানের জন্য এখনও একটি দুর্দান্ত বিবৃতি।
অতিথি 123ABC

2
আপনার উত্তরটি সিলেভেন থেকে ব্যবহার করা উচিত। এটা ভাল।
রেলিক

1
আমি গ্রেপ অংশটি awk কমান্ডে স্থানান্তরিত করেছি (কারণ আমি নিজেকে সাহায্য করতে পারি না)। সাবস্ট্রটারের সমস্যা হ'ল এটি স্থির স্থান নির্ধারণ করে। 1000x1000 এর মতো রেজোলিউশনগুলি এটি ভেঙে দেবে কারণ এগুলি অনেক দীর্ঘ।
অলি

@ অলি বাহ ভাল সরানো আমি সেই গ্রেপ প্রতিস্থাপনটি ভুলব না। টিপস জন্য ধন্যবাদ। আপনি সাবস্ট্রিট সম্পর্কে পুরোপুরি ঠিক বলেছেন, এই কারণেই আমি দ্বিতীয় কমান্ড যুক্ত করেছি।
রেলিক

2

অন্যরা ইতিমধ্যে সম্পূর্ণ অপারেশন জন্য উত্তর প্রদান করে, কিন্তু শুধুমাত্র উত্তর দিতে আমি থেকে পেতে পারি 1360x768+0+0করতে 1360x768? তবে আমি cutসহজতম সমাধান হিসাবে উদাহরণস্বরূপ ব্যবহার করে ক্ষতিপূরণ দেব

$ echo 1360x768+0+0 | cut -d+ -f1
1360x768
$

1

আমি কয়েক সপ্তাহ আগে কমান্ড লাইন স্ক্রিন ক্যাপচার উদাহরণগুলিও চেষ্টা করেছি। বিকল্প সমাধান হিসাবে আপনি ব্যবহার করতে পারেন

 xdpyinfo  | grep dimensions | awk -F ' ' ' { print $2 } ' 

স্ক্রিন রেজোলিউশন সনাক্তকরণের জন্য।

অভ্যন্তরীণ অডিও এবং মাইক্রোফোন দিয়ে পর্দা ক্যাপচার করতে, আপনি ব্যবহার করতে পারেন

 avconv -f   pulse -i default -f x11grab -r 15 -s $(xdpyinfo  | grep dimensions | awk -F ' ' ' { print $2 } ' ) -i :0.0+0,0 -acodec libmp3lame -vcodec libx264  $(date +"%m%d%Y_%H%M%S_$HOSTNAME")_screencast.mp4
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.