| lavpipe(1) | MJPEG tools manual | lavpipe(1) |
نام (NAME)
lavpipe - ایجاد جریانهای خام YUV از اسکریپتهای pipe list
خلاصه دستور (SYNOPSIS)
lavpipe [-o num] [-n num] pipe-list
توضیحات (DESCRIPTION)
دستور lavpipe یک فایل اسکریپت موسوم به «pipe list» (فهرست لوله) را میخواند که ساختاری مشابه با فهرستهای ویرایش (edit lists) ورودی lav2yuv دارد. برای اطلاعات بیشتر درباره قالب pipe list به بخشهای زیر مراجعه کنید.
فهرست pipe list چندین منبع ویدیو و فیلتر را تعریف میکند که توسط lavpipe با یکدیگر ترکیب میشوند تا یک جریان خروجی YUV واحد روی stdout ایجاد کنند (که به عنوان نمونه میتواند از طریق mpeg2enc(1) یا yuv2lav(1) فشردهسازی شده و روی دیسک ذخیره گردد).
گزینهها (OPTIONS)
گزینههای خط فرمان برای خروجی گرفتن از بخش خاصی از جریان ویدیوی حاصل استفاده میشوند. این بدان معناست که میتوانید به lavpipe مشخص کنید چه تعداد فریم نادیده گرفته شود و از آن نقطه به بعد چه تعداد فریم تحویل داده شود.
- -o num
- این گزینه آفست فریمِ (frame offset) ویدیوی خروجی است. تعداد num فریم نخست از ویدیوی حاصل، نه پردازش میشوند و نه در stdout نوشته میشوند. مقدار پیشفرض این گزینه 0 است.
- -n num
- این تعداد فریمها را تعیین میکند. اگر فایلها یا جریانهای ورودی تعریفشده در اسکریپت pipe list به اندازه کافی بلند باشند، طول خروجی دقیقاً num فریم خواهد بود. مقدار 0 به این معنی است که تا زمان وجود ورودی، تمام فریمها تا آخرین فریمِ مشخصشده در pipe list در خروجی نوشته خواهند شد (0 مقدار پیشفرض است).
- pipe-list
- نام فایل pipe list که lavpipe آن را «اجرا» خواهد کرد. برای اطلاعات بیشتر در مورد قالب این فایل به بخش زیر مراجعه کنید.
- -?
- نمایش خلاصهای از ساختار و نحو دستور.
مثالها (EXAMPLES)
- lavpipe -o 100 -n 25 film.pli
- فریمهای ۱۰۰ تا ۱۲۴ تعریفشده در film.pli را محاسبه کرده و در stdout خروجی میدهد (در سامانه PAL این بازه برابر با ثانیه پنجم فیلم خواهد بود).
- lavpipe input.pli | yuv2lav -q80 output.avi
- فیلم مونتاژشده توسط lavpipe را به عنوان یک فایل AVI واحد ذخیره میکند.
نحوه استفاده (USAGE)
در این بخش، قالب فایلهای ورودی lavpipe یعنی اسکریپتهای pipe list توضیح داده میشود. اگر به چند مثال یا یک راهنمای جامعتر نیاز دارید، لطفاً بخش CREATING MOVIE TRANSITIONS در صفحه راهنمای mjpegtools(1) و همچنین فایل README.lavpipe را که باید همراه این توزیع ارائه شده باشد مطالعه کنید. همچنین در صورت تمایل میتوانید از طریق فهرست پستی با ما تماس بگیرید (به بخش زیر مراجعه کنید).
یک pipe list از دو بخش تشکیل شده است: فهرست منابع ( source list) YUV و پس از آن، هر تعداد توصیف توالی ( sequence descriptions) که نیاز باشد. این فایل همیشه با دو خط زیر شروع میشود:
- LAV Pipe List
- این خط نخست در هر اسکریپت pipe list است. از آن به عنوان یک بررسی ساده استفاده میشود تا مشخص گردد آیا واقعاً یک اسکریپت pipe list به lavpipe داده شده است و نه پایاننامه دکترای شما!
- NTSC|PAL
- این خط دوم در هر pipe list است و بسته به استاندارد ویدیویی مورد استفاده شما میتواند PAL یا NTSC باشد. مشخص نیست در حال حاضر از این خط استفاده میشود یا خیر.
اکنون نوبت به فهرست منابع (source list) میرسد:
- num
- تعداد دستورات ورودی است. lavpipe تعداد num خط بعدی را میخواند و آنها را به عنوان دستورات جریان ورودی تفسیر میکند.
- command (num times)
- یک خط فرمان
معتبر است
که شامل دو
متغیر $o و $n
میباشد؛
این
متغیرها
توسط lavpipe با
مقدار آفست
و تعداد
فریمهایی
که برنامه
باید خروجی
دهد
جایگزین
میشوند.
مثال:
lav2yuv -o $o -f $n input.avi
بنابراین،
یک نمونه از
source list
میتواند
به این شکل
باشد:
2
lav2yuv -o $o -f $n scene1.avi
lav2yuv -o $o -f $n scene2.avi
پس از این میتوانید هر تعداد توصیف توالی (sequence descriptions) که نیاز دارید بیفزایید. هر یک از آنها به صورت زیر ساخته میشود:
- num
- تعداد فریمهایی که این توالی طول خواهد کشید.
- num
- تعداد ورودیهایی که در این توالی استفاده خواهند شد. البته این عدد باید کمتر یا مساوی با تعداد ورودیهای تعریفشده در بالا باشد.
- idx [ofs] (num times)
- اینها
شناسههای
منابعی
هستند که در
ابتدای
فایل تعریف
شدهاند
(اولین منبع
0 است) به
همراه یک
آفست فریم
اختیاری
(یعنی توالی
با فریم
شماره ofs از
این ورودی
آغاز
میشود) -
مقدار
پیشفرض
این مقدار 0
است. مثال:
0 150 - command
- این یک خط
فرمان
معتبر برای
یک ابزار
فیلتر YUV است
که num جریان
ورودی را
خوانده و با
ترکیب
ورودیها،
یک جریان
خروجی
تولید
میکند. در
صورت تمایل
میتوان دو
متغیر $o و $n را
به ابزار
فیلتر داد
تا همانند
دستورات
منبع (بالا
را ببینید)
توسط lavpipe
جایگزین
شوند. برای
اطلاعات
بیشتر،
فایل README.lavpipe یا
مستندات
برنامههای
فیلتر را
(در صورت در
دسترس بودن)
مطالعه
کنید. یک
فیلتر
نمونه
میتواند
به شکل زیر
باشد:
transist.flt -o 0 -O 255 -s $o -n $n -d 50
و اگر توالی تنها یک ورودی دارد که صرفاً باید در خروجی کپی شود، میتوانید به جای خط فرمان از یک خط تیره استفاده کنید:
-
در ادامه مثالی از یک pipe list کامل ارائه شده است که یک گذار (انتقال) بین scene1.avi و scene2.avi را پیادهسازی میکند:
یادداشتهای بعد از # را حذف کنید
LAV Pipe List
PAL
2
lav2yuv -o $o -f $n scene1.avi
lav2yuv -o $o -f $n scene2.avi
50 # توالی
نخست: ۵۰
فریم
1 # شامل یک
ورودی:
0 0 # scene1.avi، آفست 0
- # خروجی
ساده
25 # توالی دوم:
۲۵ فریم
2 # شامل دو
ورودی:
0 50 # scene1.avi، آفست 50
1 # scene2.avi، آفست 0
transist.flt -o 0 -O 255 -s $o -n $n -d 50 #
گذار
(انتقال)
50 # توالی سوم:
۵۰ فریم
1 # شامل یک
ورودی:
1 25 # scene2.avi، آفست 25
- # خروجی
ساده
گزارش باگها (BUGS)
مطمئناً به تعداد کافی باگ وجود دارد. lavpipe اغلب pipe listهای بدشکل و ناصحیح را میپذیرد و سپس بدون هیچ هشداری، ویدیویی تولید میکند که هر چیزی هست جز آنچه انتظار داشتید.
ذکر $n در بالا نادرست است. در گذشته دو پارامتر وجود داشت، اما اکنون به برنامه اجازه داده میشود هر تعداد فریمی که میخواهد تولید کند. نویسنده برنامه به دلایلی نامعلوم، مقدار $n را به صورت ثابت (hardcode) برابر 0 قرار داده است.
نکات (NOTES)
همچنین
محدودیتهای
جدی در
سامانه
وجود دارد،
مانند
پردازش
فریمبهفریم.
اما از آنجا
که هدف
هنگام
نوشتن lavpipe
سادگی خط
لوله بوده
است،
ابزارهای
دیگری باید
برای انجام
وظایف
جذابتر
نوشته شوند.
اما ذکر این
نکته ضروری
است که
کاملاً
امکانپذیر
است یک pipe list
بنویسید که
چندین فایل
را ترکیب
کند، و سپس
از همان pipe list به
عنوان
ورودی برای
یک pipe list دیگر
استفاده
کنید؛ برای
این کار
کافی است
دستور lavpipe را
در فهرست
منابع (source list)
قرار دهید
(بالا را
ببینید) - اگر
فیلترهای
مناسبی
داشته
باشید،
همین
قابلیت
امکان
انجام
کارهای
بسیار
جالبی را
فراهم
میکند.
وجود یادداشت (کامنت) در فایلهای pipelist مجاز نیست. یادداشتهای (متنهای پس از #) بالا صرفاً به منظور توضیح آورده شدهاند.
نویسندگان (AUTHORS)
این صفحه
راهنما
توسط Philipp Zabel
نوشته شده
است.
اگر سؤال،
دیدگاه یا
مشکلی
دارید یا
فقط
میخواهید
با
توسعهدهندگان
تماس
بگیرید،
فهرست پستی
اصلی برای
MJPEG-tools عبارت
است از:
mjpeg-users@lists.sourceforge.net
- برای اطلاعات بیشتر، وبسایت ما را ببینید:
- http://mjpeg.sourceforge.net
همچنین ببینید (SEE ALSO)
lav2yuv(1), lavplay(1), lavrec(1), mpeg2enc(1), yuv2lav(1), yuvscaler(1)
| 2 June 2001 | MJPEG Tools Team |