| lavrec(1) | MJPEG tools manual | lavrec(1) |
نام (NAME)
lavrec - ضبط ویدیوی MJPEG از یک دستگاه zoran/video4linux
خلاصه دستور (SYNOPSIS)
lavrec [options] filename(s)
توضیحات (DESCRIPTION)
ابزار lavrec میتواند برای ضبط ویدیو در قالب MJPEG (خواه QuickTime یا AVI) از یک دستگاه ضبط ویدیوی zoran مانند Miro/Pinnacle DC10(+)، Iomega Buz یا LML33 از Linux Media Labs، یا از یک دستگاه عمومی video4linux مانند کارتهای تلویزیونی ارزانقیمت مبتنی بر Bt848 یا Bt878 استفاده شود.
گزینهها (OPTIONS)
lavrec گزینههای زیر را میپذیرد:
- filename
- فایلی که ضبط در آن ذخیره میشود (*.avi، *.qt). از % برای ضبط در چندین فایل استفاده کنید (استفاده از file%02d.avi باعث ضبط در file00.avi، file01.avi و غیره خواهد شد). همچنین میتوانید بیش از یک نام فایل مشخص کنید که تأثیر یکسانی خواهد داشت. این کار از بروز مشکلات ناشی از محدودیت اندازه نوع فایل یا فایلسیستم جلوگیری میکند. برای مثال AVI، مانند ext2fs در هستههای 2.2.x دارای محدودیت ۲ گیگابایتی است.
- --software-encoding
- بهطور پیشفرض، lavrec در حالتی تصویربرداری میکند که تنها برای ضبط از دستگاههای سختافزاری MJPEG مناسب است. استفاده از این گزینه باعث میشود lavrec از انکودینگ نرمافزاری JPEG (با استفاده از libjpeg) استفاده کند که تصویربرداری ویدیویی MJPEG را از بسیاری از دستگاههای عمومی video4linux (مانند دستگاههای مبتنی بر Bt848/Bt878) ممکن میسازد.
- --software-encoding-yuvp
- این گزینه
پشتیبانی
از درایور USB
درایور EM28XX را
اضافه
میکند،
چرا که این
درایور از
نوع V4L2 است. از
آنجا که
پیادهسازی
نرمافزاری
اصلی BTTV فرض
میکند
درایور از V4L
پشتیبانی
میکند، با
درایور EM28XX
حتی با لایه
شبیهسازی
V4L1 کار
نخواهد کرد.
این گزینه
دو ویژگی را
فعال
میکند:
فراخوانیهای V4L2 را فعال میکند تا تعامل با این درایور ممکن شود
قالب YUV بستهبندیشده (Packed) کارت را انتخاب کرده و آن را در نرمافزار به YUV صفحهای (Planar) تبدیل میکند فرایند پس از این مرحله، مشابه درایور BTTV است. از نکات قابل توجه این است که درایور EM28XX انتظار ضبط صدا با نرخ ۴۸ کیلوهرتز (48KHz) را دارد. اگر نرخهای پایینتر را انتخاب کنید کار خواهد کرد، اما فریمهای حذفشده/درجشده بسیاری رخ خواهند داد. هر چه نرخ نمونهبرداری کمتر باشد، این مشکل شدیدتر میشود؛ بنابراین ضبط با نرخ ۴۸ کیلوهرتز توصیه میشود. این کد آزمایش شده و عملکرد آن با یک Pinnacle Dazzle مدل DVC100 تأیید شده است. این گزینه باید با هر EM28XX دیگری نیز کار کند، هرچند آزمایش نشده است. ممکن است با هر دستگاه V4L2 دیگری که قالب YUV بستهبندیشده خروجی میدهد نیز کار کند، هرچند آزمایش نشده است. ارسال بازخورد مورد استقبال خواهد بود. - -f/--format [a|A|q|m]
- قالبی که
ویدیو باید
بر اساس آن
روی دیسک
سخت ذخیره
شود.
a - قالب MJPEG AVI
A - قالب MJPEG AVI با فیلدهای جابجا شده
q - قالب Quicktime
بهطور پیشفرض، lavrec به پسوند نخستین فایل (*.avi، *.qt) نگاه میکند و قالبی را بر پایه آن برمیگزیند. - -i/--input [p|P|n|N|s|S|t|T|f|a]
- یا
- -i/--input input[:norm]
- منبع ضبط و
قالب
استاندارد
منبع
ویدیویی.
p - استاندارد PAL از طریق ورودی کامپوزیت یا ورودی اول Bt8x8
P - استاندارد PAL از طریق ورودی SVHS یا ورودی دوم Bt8x8
t - استاندارد PAL از طریق ورودی تیونر تلویزیون یا ورودی سوم Bt8x8
n - استاندارد NTSC از طریق ورودی کامپوزیت یا ورودی اول Bt8x8
N - استاندارد NTSC از طریق ورودی SVHS یا ورودی دوم Bt8x8
T - استاندارد NTSC از طریق ورودی تیونر تلویزیون یا ورودی سوم Bt8x8
s - استاندارد SECAM از طریق ورودی کامپوزیت یا ورودی اول Bt8x8
S - استاندارد SECAM از طریق ورودی SVHS یا ورودی دوم Bt8x8
f - استاندارد SECAM از طریق ورودی تیونر تلویزیون یا ورودی سوم Bt8x8
a - (یا هر حرف دیگری) تشخیص خودکار (پیشفرض)
ورودی میتواند با استفاده از حروف تکی یا با یک شماره ورودی به همراه یک استاندارد اختیاری مشخص شود، که در آن شماره ورودی n-ام کارت را تعیین میکند و دامنهای از ۱ تا ۱۰ دارد. استفاده از ورودی عددی هنگام استفاده از ورودی چهار یا بالاتر در کارتی با بیش از سه ورودی (مانند AverMedia 6 Eyes) لازم است. هنگام استفاده از ورودی عددی به همراه استاندارد، باید نام کامل استاندارد ذکر شود؛ نامهای معتبر عبارتند از: pal، ntsc و secam. شما میتوانید از انتخاب ورودی عددی برای کارتهایی با تنها سه ورودی نیز استفاده کنید، که اکثر کارتهای مبتنی بر Zoran چنین هستند. گزینه "-i 2:pal" روی Buz معادل با "-i P" است، که از ورودی S-Video در قالب PAL ضبط میکند. - -d/--decimation num
- کاهش ابعاد تصویر (decimation) برای ضبط، شامل ۱، ۲ یا ۴. این گزینه اندازه ویدیوی ضبطشده را بهصورت افقی و عمودی کاهش میدهد. برای استفاده از ضرایب کاهش افقی و عمودی متفاوت، از دو عدد استفاده کنید، که اولی ضریب افقی و دومی ضریب عمودی است (-d 12). نکته: این گزینه تنها هنگام ضبط سختافزاری قابل استفاده است.
- -g/--geometry WxH(+X+Y)
- برای ضبط سختافزاری: یک رشته ابعاد به سبک X، که ابعاد زیرفریم کاهشنیافته برای ضبط را مشخص میکند. مقدار پیشفرض فریم کامل است؛ بنابراین برای کاربران Buz/LML33 برابر با 720x576/480+0+0 و برای کاربران DC10(+) برابر با 640x480+0+0 یا 768x576+0+0 است. برای ضبط نرمافزاری: اندازه ویدیویی که باید دریافت شود. در حال حاضر، عرض و ارتفاع باید مضربی از ۱۶ باشند. شما همیشه فریم کامل را تصویربرداری میکنید، زیرا اکثر دستگاههای video4linux از تصویربرداری زیرفریم پشتیبانی نمیکنند.
- -q/--quality num
- کیفیت ویدیوی JPEG مورد نظر برای ضبط (به درصد). این مقدار باید عددی بین ۰ و ۱۰۰ باشد. کیفیت پایینتر بهطور کلی به معنای حجم فایل کمتر است؛ کیفیت بالاتر فضای دیسک بیشتری اشغال میکند اما دقت و شفافیت بیشتری در ویدیوی ضبطشده نهایی ایجاد میکند. مقدار پیشفرض 50% است.
- -C/--channel LIST:CHAN
- انتخاب کانال برای ضبط (به سبک xawtv). بهطور پیشفرض، lavrec صرفاً از کانال تلویزیونی فعلی استفاده میکند.
- -t/--time num
- مدت زمان ضبط بر حسب ثانیه. مقدار پیشفرض نامحدود است. برای توقف تصویربرداری ویدیو در حین ضبط، از کلیدهای ترکیبی Ctrl-C استفاده کنید.
- -S/--single-frame
- حالت تصویربرداری تکفریم. این به معنای آن است که میتوان فریمهای منفرد را از دستگاه ضبط تصویربرداری کرد.
- -T/--time-lapse num
- ضریب گذر زمان (تایملپس)، به این معنا که تنها فریمهای n-ام (<num>) در فایل ضبط ذخیره میشوند.
- -w/--wait
- اگر این گزینه مشخص شود، lavrec پیش از شروع ضبط، منتظر میماند تا کاربر کلید Enter را فشار دهد.
- -B/--batch
- این گزینه تمام گزینههای تعاملی ممکن را غیرفعال کرده و خروجی کنسول را تا حد ممکن محدود میسازد. برای ضبطهای زمانبندیشده/کرون مفید است.
- -a/--audio-bitsize num
- اندازه دادههای صوتی بر حسب بیت: 0، 8 یا 16 (پیشفرض). مقدار 0 به معنای بدون صدا است.
- -r/--audio-bitrate num
- نرخ نمونهبرداری صدا بر حسب هرتز. این مقدار باید نرخ نمونهبرداریای باشد که توسط کارت صدا پشتیبانی میشود. مقادیر معمول نرخ نمونهبرداری صدا عبارتند از: 11025، 22050 یا 44100 (پیشفرض).
- -s/--stereo
- ضبط به صورت استریو. بهطور پیشفرض، lavrec صدا را به صورت مونو (تککاناله) ضبط میکند.
- -l/--audio-volume num
- سطح صدای ضبط. این مقدار باید عددی بین 0 (بدون صدا) و 100 (صدای بلند) باشد. مقدار -1 (پیشفرض) به معنای دست نزدن به تنظیمات میکسر است.
- -m/--mute
- قطع صدای خروجی در حین ضبط. این مورد هنگام ضبط صدا از میکروفون برای غیرفعال کردن بازگشت صدا (اکو) مفید است. این گزینه بهطور پیشفرض غیرفعال است.
- -R/--audio-source [l|m|c]
- منبع ضبط صدا، شامل خط ورودی ((l)ine-in)، میکروفون ((m)icrophone) یا سیدیرام ((c)d-rom). پیشفرض ضبط از خط ورودی (l) است.
- -U/--use-read
- استفاده از فراخوان سیستمی read() به جای mmap() برای ضبط صدا. این گزینه ممکن است بسیاری از مشکلات ضبط صدا را برطرف کند.
- -c/--synchronization [0|1|2]
- سطح تلاش برای همگامسازی صدا و تصویر. مقدار (0) به معنای عدم همگامسازی است؛ مقدار (1) به معنای تکرار فریمها برای فریمهای از دست رفته است؛ مقدار (2) به این معناست که lavrec برای فریمهای از دست رفته تکرار انجام داده و تصحیح همگامسازی را اعمال میکند. پیشفرض 2 است.
- -n/--mjpeg-buffers num
- تعداد بافرهای MJPEG. پیشفرض 32 است. اگر فریمهای از دست رفته زیادی دارید، این مقدار را تغییر دهید.
- -b/--mjpeg-buffer-size num
- اندازه بافر MJPEG بر حسب کیلوبایت. مقدار پیشفرض 256 کیلوبایت است.
- --max-file-size num
- حداکثر اندازه فایل برای هر فایل JPEG. بهطور پیشفرض، lavrec از حداکثر اندازه ممکن برای آن قالب ضبط خاص استفاده میکند.
- --max-file-frames num
- حداکثر تعداد فریمها در هر فایل JPEG. بهطور پیشفرض، تعداد فریمها تنها توسط عوامل دیگر مانند حداکثر اندازه فایل محدود میشود.
- --file-flush num
- تخلیه بافر فایل روی دیسک (flush) پس از هر num فریم تصویربرداریشده.
- -v/--verbose num
- سطح پرگویی (0، 1 یا 2). پیشفرض 0 است.
محیط (ENVIRONMENT)
متغیرهای محیطی زیر توسط lavrec شناسایی میشوند:
- LAV_VIDEO_DEV
- دستگاه ویدیویی. پیشفرض /dev/video است
- LAV_AUDIO_DEV
- دستگاه صوتی. پیشفرض /dev/dsp است
- LAV_MIXER_DEV
- دستگاه میکسر. پیشفرض /dev/mixer است
خروجی (OUTPUT)
دستور lavrec
وضعیت
کنونی ضبط
را خروجی
میدهد.
بهطور
معمول به
این شکل است:
0.06.14:22 int: 00040 lst:0 ins:0 del:0 ae:0 td1=0.014 td2=0.029
بخش اول مدت
زمانی است
که صرف ضبط
شده است
(ساعت - دقیقه
- ثانیه -
فریم). int
فاصله
زمانی (بر
حسب
میلیثانیه)
بین دو فریم
تصویربرداریشده
است (این
مقدار برای
PAL/SECAM باید حدود
40 و برای NTSC
حدود 33 باشد).
lst تعداد
فریمهای
از دست رفته
است. ins و del
تعداد
فریمهای
درجشده و
حذفشده
برای تصحیح
همگامسازی
هستند. ae
تعداد
خطاهای
صوتی است. td1
و td2 اختلاف
زمانی بین
صدا و تصویر
(میزان
ناهماهنگی)
هستند.
نشستهای نمونه ضبط (TYPICAL RECORDING SESSIONS)
گزینههای زیادی وجود دارند. حال چطور میتوان به شیوه معمول ویدیو ضبط کرد؟ فرض کنیم میخواهید با تفکیکپذیری VCD (برابر با 352x288) از یک منبع PAL ضبط کنید. ممکن است کیفیتی بالاتر از پیشفرض (80%) بخواهید. از گزینههای صوتی پیشفرض استفاده میکنید و در یک فایل AVI ضبط مینمایید. با این تفاسیر، خط فرمان ضبط شما به این شکل خواهد بود:
- از دستگاههای سختافزاری MJPEG (ورودی S-video)
- lavrec --format=a --input=P --quality=80 --decimation=2 /path/to/file.avi
- از دستگاههای معمول video4linux
- lavrec --software-encoding --format=a --input=p --quality=80 --geometry=352x288 /path/to/file.avi
اشکالات (BUGS)
ابزار lavrec باید بتواند بهطور خودکار تشخیص دهد که از انکودینگ نرمافزاری JPEG استفاده کند یا از قابلیتهای انکودینگ سختافزاری JPEG کارت (در صورت موجود بودن).
علاوه بر این، انکودینگ نرمافزاری JPEG به نظر میرسد برای برخی افراد باعث ناهماهنگی اندکی در صدا و تصویر میشود. پشتیبانی از SMP برای انکودینگ JPEG در حال حاضر در دست توسعه است.
ابزار lavrec برای ضبط صدا از OSS استفاده میکند. سیستم ALSA اقدام به شبیهسازی OSS میکند و این میتواند باعث بروز مشکلاتی در هستههای سری 4.x.x شود؛ بنابراین توصیه میکنیم از هستههای قدیمیتر استفاده کنید. در حال حاضر برنامهای برای تبدیل بخش صوتی به ALSA بومی وجود ندارد.
نویسنده (AUTHOR)
این صفحه
راهنما
توسط Ronald Bultje
نوشته شده
است.
اگر سؤال،
نظر، یا
مشکلی
دارید یا
میخواهید
با
توسعهدهندگان
تماس
بگیرید،
فهرست پستی
اصلی برای
MJPEG-tools به این
نشانی است:
mjpeg-users@lists.sourceforge.net
برای
اطلاعات
بیشتر،
وبسایت ما
را ببینید:
http://mjpeg.sourceforge.net
همچنین ببینید (SEE ALSO)
| 27 August 2003 | MJPEG Tools Team |