قدرت و کارایی عالی خط فرمان در گنو/لینوکس (1)

خب خلاصه یک راست میریم سر بحث شیرین تکنیکی و عملی!!
چون دیروز یک چیزی رو تازه خودم امتحان کردم که قبلا شنیده بودم ولی تجربه نکرده بودم و مطلب جالب و سرگرم کننده ای هست اون رو الان شرح میدم؛ اگر قبلا تجربش رو داشتم در پست آغازین تاپیک بهش اشاره میکردم.
حکایت از این قراره که در محیط متن و خط فرمان لینوکس حتی میشه فیلم نگاه کرد.
تاجایی که میدونم این قابلیت با استفاده از تکنیکی بنام Linux framebuffer صورت میگیره که بنابراین اگر سیستم شما مجهز به این قابلیت و فعال باشه میتونید در خط فرمان ویدئو داشته باشید.

یه قسمت مفید و مختصر از مقالهء ویکی پدیا:

The Linux framebuffer (fbdev) is a graphic hardware-independent abstraction layer to show graphics on a console without relying on system-specific libraries such as SVGALib or the heavy overhead of the X Window System.

خب حالا میرسیم به وادی عملی و تست و سرگرمی!!
برای استفاده از این قابلیت بنده از mplayer استفاده کردم که یک مالتی مدیا پلیر عالی تحت لینوکس هست. باید از برنامه ای استفاده کنید که بهرحال امکان استفاده از این سیستم نمایش گرافیک در محیط متنی رو داشته باشه.

یک خط فرمان نمونه بسادگی:

mplayer /media/data/video/g11-1-128.mpg

البته اگر در محیط گرافیکی باشید، با وارد کردن این فرمان یک پنجرهء جداگانه برای نمایش فیلم باز میشه.
اگر در محیط متنی باشید فیلم بصورت فول اسکرین نمایش داده میشه.
در توزیع فدورا، بنده میتونم با کلید ctrl+alt+f5 یا ctrl+alt+f1 به محیط تماما متنی وارد بشم و با کلید ctrl+alt+f7 برمیگردم به محیط گرافیکی.
موقع پخش فیلم با کلید p میتونید فیلم رو نگه دارید؛ با کلید q یا ESC هم پخش متوقف میشه و به خط فرمان برمیگردید. چند کلید دیگه هم هست که کارهای مختلف مثل عقب و جلو بردن، تنظیم ولوم و نمایش یا عدم نمایش نشان دهنده های وضعیت (کلید o) رو انجام میدن.
بهرحال همونطور که ابتدای تاپیک گفتم هدف ما اینجا آموزش و ذکر جزء به جزء نیست و فقط سرنخها رو بدست میدیم و قابلیتها و کارهای جالب و مفید و پیشرفته در محیط متن لینوکس رو لیست میکنیم.
البته بنده کم نمیذارم و بهترین چیزهایی رو که میدونم تاجایی که توان و وقتم اجازه میده براتون میگم. امیدوارم در ادامه دوستان دیگر هم مطالب ارزشمند و تجربه های شخصی خوبی رو در اختیار همگان بذارن.

قابلیت جالب دیگر mplayer که باهاش حتی میشه کارهایی فراتر از نمایش فیلم کرد مثل این هست:

mplayer -vo aa /media/data/video/g11-1-128.mpg

اینجا توسط آپشن vo (ظاهرا مخفف video output) میگیم که ویدئو رو با استفاده از درایور ASCII ART نمایش بده که فکر میکنم بیشتر شما بدونید چی هست، ولی برای مبتدیها و تازه واردها بگم که فیلم در این حالت با کاراکترهای معمولی اسکی نمایش داده میشه که دیدنش خالی از لطف نیست! میتونید با این روش صحنه های مناسب دلخواه از فیلمهاتون رو به چنین فرمی دربیارید (در نقطهء مورد نظر متوقف و تبدیل به عکس کنید).
اگر بجای aa عبارت caca رو وارد کنید فرم دیگری از همین رو نمایش میده که از تعدادی رنگهای مختلف محدود استفاده میکنه و نمایش رنگی شاید جذابتر و واضحتری خواهید داشت.
سعی میکنم تصویری از این نوع رو ضمیمه کنم.
درایورهای دیگه که تست کردم شامل gif89a , jpej , png هست.
بغیر از خروجی gif89a، اون دوتای دیگه هر فریم فیلم رو تبدیل به تصویری جداگانه میکنن و در دایرکتوری جاری میریزن. پس مواظب تعداد زیاد فایلهای ایجاد شده باشید! فکر نمیکنم زیاد بدردتون بخوره.
اما خروجی gif89a جالب هست که ویدئوی شما رو تبدیل به یک تصویر گیف متحرک میکنه. احتمالا ازش بشه استفاده های عملی کرد. مثلا قسمت کوتاه جالبی از یک فیلم رو که جداکردیم با این روش میتونیم به تصویر متحرک تبدیل کرده و روی وب و کاربردهای دیگه که دنبال چنین چیزی هستیم استفاده کنیم. البته سعی کنید ذوق زده نشید و افراط نکنید! اینها تنها ابزارهایی هستن که وجود دارن و باید موقع لازم ازشون استفاده بشه. معمولا برای کارهای تخصصی تر و استفادهء مستمر و گسترده خب ابزارهای مخصوص و پروفشنال تری وجود دارن، اما برنامه های لینوکس اینقدر گسترده و متنوع و هرکدوم با ویژگیهای جالب خودشون هستن که واقعا از همشون در شرایط خاص میشه استفادهء عملی کرد و گاهی برای کاری ساده یا خاص یک ابزار ساده بهتر و مناسبتر یا از معدود گزینه های معقول/شدنی هست.
اگر با gif89a خواستید کار کنید متوجه افزایش شدید حجم عکس باشید؛ برای تست توصیه میکنم حدود یک ثانیه از یک فیلم رو تست کنید. یعنی با کلید q یک ثانیه بعد از شروع نمایش، از فیلم خارج بشید.
ضمنا میدونید که کیفیت تصویر گیف بخاطر محدود بودن تعداد رنگهاش به فکر میکنم ۲۵۶، کمتر از تصاویر ویدئوی اصلی خواهد بود.
حال این رو تست کنید:

mplayer -ao pcm /media/data/video/g11-1-128.mpg

این خط فرمان توسط آپشن ao (مخفف audio output) صدای فیلم شما رو به فایل wav تبدیل میکنه! (فایل در دایرکتوری جاری ریخته میشه که با فرمان pwd میتونید دربارش اطلاع حاصل کنید).
پس به همین راحتی و خوشمزگی میشه صدای یک فیلم رو ازش استخراج کرد. کاری که یادمه بعضی براش دنبال نرم افزار ویرایش فیلم میگشتن.
ضمنا شما میتونید با درایوری با نام null برای هرکدوم از آپشنهای ویدئو و صوت، اون خروجی رو نابود کنید. یعنی فیلم بدون تصویر یا صدا پخش بشه (البته برای پخش بدون صدا از آپشن -nosound هم میتونید استفاده کنید).
این برنامهء خط فرمانی جزیی از یک خانواده/پکیج هست که مثلا برنامه ای بنام mencoder هم داره که ظاهرا روی سیستم بنده نصب نیست. منوال رو الان نگاه کردم؛ واقعا مفصل هست! با mencoder ظاهرا میتونید فرمتهای مختلف فیلم رو به هم تبدیل کنید، اونهم با امکانات ویرایشی مختلف (فرضا از کجا تا کجا تبدیل بشه و غیره)؛ توضیح مفصلش در منوال mplayer آمده که دیگه بنده مطالعه نکردم.

اگر میخواید بطور حرفه ای با این برنامه (mplayer) آشنا بشید، حتما بقیهء آپشنهای خط فرمان و منوالش رو بدقت بررسی کنید. خیلی کارهای دیگه هم انجام میده؛ فرضا میشه تعداد فریم در ثانیه رو تنظیم کرد (مثلا شاید برای کاهش حجم تصاویر گیف متحرک مفید باشه). تنظیمات و انعطاف و قابلیتهای بسیار بیشتر از چیزی که اینجا گفتیم درش هست. اما بنده دیگه بهشون نمیپردازم. تازه با این برنامه آشنا شدم وگرنه احتمالا منوالش رو دقیق میخوندم و چیزهای بیشتری برای گفتن داشتم.
بعنوان اولین برنامه خط فرمان مطرح شده این برنامه رو گفتم ولی امیدوارم زیاد به زرق و برق و جنبهء سرگرمی پرداخته نشه و تاپیک از مسیر/گرایش فنی و تخصصی خودش خارج نشده باشه. بهرحال اینجا فروم برنامه نویسی هست و هدف و محتویات درنظر گرفته شده برای این جستار هم بی ارتباط با این زمینه نیستن و اکثرا برای کاربرهای خانگی معمولی و غیر متخصص کاربرد چندانی ندارن، اما متخصصان و حرفه ایها و برنامه نویسان در جریان پیشرفت تاپیک احتمالا متوجه خواهند شد که ابزارها و قابلیتهای مطرح شده چقدر جالب و مفید هستن برای کارهای مختلفی که برای این قشر افراد کم پیش نمیان.

———–
تصویر ضمیمهء ذیل حاصل استفاده از caca (libcaca) video output driver هست:

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

*

شما می‌توانید از این دستورات HTML استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>