lavrec(1) MJPEG tools manual lavrec(1)

lavrec - ضبط ویدیوی MJPEG از یک دستگاه zoran/video4linux

lavrec [options] filename(s)

ابزار lavrec می‌تواند برای ضبط ویدیو در قالب MJPEG (خواه QuickTime یا AVI) از یک دستگاه ضبط ویدیوی zoran مانند Miro/Pinnacle DC10(+)، Iomega Buz یا LML33 از Linux Media Labs، یا از یک دستگاه عمومی video4linux مانند کارت‌های تلویزیونی ارزان‌قیمت مبتنی بر Bt848 یا Bt878 استفاده شود.

lavrec گزینه‌های زیر را می‌پذیرد:

فایلی که ضبط در آن ذخیره می‌شود (*.avi، *.qt). از % برای ضبط در چندین فایل استفاده کنید (استفاده از file%02d.avi باعث ضبط در file00.avi، file01.avi و غیره خواهد شد). همچنین می‌توانید بیش از یک نام فایل مشخص کنید که تأثیر یکسانی خواهد داشت. این کار از بروز مشکلات ناشی از محدودیت اندازه نوع فایل یا فایل‌سیستم جلوگیری می‌کند. برای مثال AVI، مانند ext2fs در هسته‌های 2.2.x دارای محدودیت ۲ گیگابایتی است.
به‌طور پیش‌فرض، lavrec در حالتی تصویربرداری می‌کند که تنها برای ضبط از دستگاه‌های سخت‌افزاری MJPEG مناسب است. استفاده از این گزینه باعث می‌شود lavrec از انکودینگ نرم‌افزاری JPEG (با استفاده از libjpeg) استفاده کند که تصویربرداری ویدیویی MJPEG را از بسیاری از دستگاه‌های عمومی video4linux (مانند دستگاه‌های مبتنی بر Bt848/Bt878) ممکن می‌سازد.
این گزینه پشتیبانی از درایور USB درایور EM28XX را اضافه می‌کند، چرا که این درایور از نوع V4L2 است. از آنجا که پیاده‌سازی نرم‌افزاری اصلی BTTV فرض می‌کند درایور از V4L پشتیبانی می‌کند، با درایور EM28XX حتی با لایه شبیه‌سازی V4L1 کار نخواهد کرد. این گزینه دو ویژگی را فعال می‌کند:
فراخوانی‌های V4L2 را فعال می‌کند تا تعامل با این درایور ممکن شود
قالب YUV بسته‌بندی‌شده (Packed) کارت را انتخاب کرده و آن را در نرم‌افزار به YUV صفحه‌ای (Planar) تبدیل می‌کند فرایند پس از این مرحله، مشابه درایور BTTV است. از نکات قابل توجه این است که درایور EM28XX انتظار ضبط صدا با نرخ ۴۸ کیلوهرتز (48KHz) را دارد. اگر نرخ‌های پایین‌تر را انتخاب کنید کار خواهد کرد، اما فریم‌های حذف‌شده/درج‌شده بسیاری رخ خواهند داد. هر چه نرخ نمونه‌برداری کمتر باشد، این مشکل شدیدتر می‌شود؛ بنابراین ضبط با نرخ ۴۸ کیلوهرتز توصیه می‌شود. این کد آزمایش شده و عملکرد آن با یک Pinnacle Dazzle مدل DVC100 تأیید شده است. این گزینه باید با هر EM28XX دیگری نیز کار کند، هرچند آزمایش نشده است. ممکن است با هر دستگاه V4L2 دیگری که قالب YUV بسته‌بندی‌شده خروجی می‌دهد نیز کار کند، هرچند آزمایش نشده است. ارسال بازخورد مورد استقبال خواهد بود.
قالبی که ویدیو باید بر اساس آن روی دیسک سخت ذخیره شود.
a - قالب MJPEG AVI
A - قالب MJPEG AVI با فیلدهای جابجا شده
q - قالب Quicktime
به‌طور پیش‌فرض، lavrec به پسوند نخستین فایل (*.avi، *.qt) نگاه می‌کند و قالبی را بر پایه آن برمی‌گزیند.
یا
منبع ضبط و قالب استاندارد منبع ویدیویی.
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 ضبط می‌کند.
کاهش ابعاد تصویر (decimation) برای ضبط، شامل ۱، ۲ یا ۴. این گزینه اندازه ویدیوی ضبط‌شده را به‌صورت افقی و عمودی کاهش می‌دهد. برای استفاده از ضرایب کاهش افقی و عمودی متفاوت، از دو عدد استفاده کنید، که اولی ضریب افقی و دومی ضریب عمودی است (-d 12). نکته: این گزینه تنها هنگام ضبط سخت‌افزاری قابل استفاده است.
برای ضبط سخت‌افزاری: یک رشته ابعاد به سبک X، که ابعاد زیرفریم کاهش‌نیافته برای ضبط را مشخص می‌کند. مقدار پیش‌فرض فریم کامل است؛ بنابراین برای کاربران Buz/LML33 برابر با 720x576/480+0+0 و برای کاربران DC10(+) برابر با 640x480+0+0 یا 768x576+0+0 است. برای ضبط نرم‌افزاری: اندازه ویدیویی که باید دریافت شود. در حال حاضر، عرض و ارتفاع باید مضربی از ۱۶ باشند. شما همیشه فریم کامل را تصویربرداری می‌کنید، زیرا اکثر دستگاه‌های video4linux از تصویربرداری زیرفریم پشتیبانی نمی‌کنند.
کیفیت ویدیوی JPEG مورد نظر برای ضبط (به درصد). این مقدار باید عددی بین ۰ و ۱۰۰ باشد. کیفیت پایین‌تر به‌طور کلی به معنای حجم فایل کمتر است؛ کیفیت بالاتر فضای دیسک بیشتری اشغال می‌کند اما دقت و شفافیت بیشتری در ویدیوی ضبط‌شده نهایی ایجاد می‌کند. مقدار پیش‌فرض 50% است.
انتخاب کانال برای ضبط (به سبک xawtv). به‌طور پیش‌فرض، lavrec صرفاً از کانال تلویزیونی فعلی استفاده می‌کند.
مدت زمان ضبط بر حسب ثانیه. مقدار پیش‌فرض نامحدود است. برای توقف تصویربرداری ویدیو در حین ضبط، از کلیدهای ترکیبی Ctrl-C استفاده کنید.
حالت تصویربرداری تک‌فریم. این به معنای آن است که می‌توان فریم‌های منفرد را از دستگاه ضبط تصویربرداری کرد.
ضریب گذر زمان (تایم‌لپس)، به این معنا که تنها فریم‌های n-ام (<num>) در فایل ضبط ذخیره می‌شوند.
اگر این گزینه مشخص شود، lavrec پیش از شروع ضبط، منتظر می‌ماند تا کاربر کلید Enter را فشار دهد.
این گزینه تمام گزینه‌های تعاملی ممکن را غیرفعال کرده و خروجی کنسول را تا حد ممکن محدود می‌سازد. برای ضبط‌های زمان‌بندی‌شده/کرون مفید است.
اندازه داده‌های صوتی بر حسب بیت: 0، 8 یا 16 (پیش‌فرض). مقدار 0 به معنای بدون صدا است.
نرخ نمونه‌برداری صدا بر حسب هرتز. این مقدار باید نرخ نمونه‌برداری‌ای باشد که توسط کارت صدا پشتیبانی می‌شود. مقادیر معمول نرخ نمونه‌برداری صدا عبارتند از: 11025، 22050 یا 44100 (پیش‌فرض).
ضبط به صورت استریو. به‌طور پیش‌فرض، lavrec صدا را به صورت مونو (تک‌کاناله) ضبط می‌کند.
سطح صدای ضبط. این مقدار باید عددی بین 0 (بدون صدا) و 100 (صدای بلند) باشد. مقدار -1 (پیش‌فرض) به معنای دست نزدن به تنظیمات میکسر است.
قطع صدای خروجی در حین ضبط. این مورد هنگام ضبط صدا از میکروفون برای غیرفعال کردن بازگشت صدا (اکو) مفید است. این گزینه به‌طور پیش‌فرض غیرفعال است.
منبع ضبط صدا، شامل خط ورودی ((l)ine-in)، میکروفون ((m)icrophone) یا سی‌دی‌رام ((c)d-rom). پیش‌فرض ضبط از خط ورودی (l) است.
استفاده از فراخوان سیستمی read() به جای mmap() برای ضبط صدا. این گزینه ممکن است بسیاری از مشکلات ضبط صدا را برطرف کند.
سطح تلاش برای همگام‌سازی صدا و تصویر. مقدار (0) به معنای عدم همگام‌سازی است؛ مقدار (1) به معنای تکرار فریم‌ها برای فریم‌های از دست رفته است؛ مقدار (2) به این معناست که lavrec برای فریم‌های از دست رفته تکرار انجام داده و تصحیح همگام‌سازی را اعمال می‌کند. پیش‌فرض 2 است.
تعداد بافرهای MJPEG. پیش‌فرض 32 است. اگر فریم‌های از دست رفته زیادی دارید، این مقدار را تغییر دهید.
اندازه بافر MJPEG بر حسب کیلوبایت. مقدار پیش‌فرض 256 کیلوبایت است.
حداکثر اندازه فایل برای هر فایل JPEG. به‌طور پیش‌فرض، lavrec از حداکثر اندازه ممکن برای آن قالب ضبط خاص استفاده می‌کند.
حداکثر تعداد فریم‌ها در هر فایل JPEG. به‌طور پیش‌فرض، تعداد فریم‌ها تنها توسط عوامل دیگر مانند حداکثر اندازه فایل محدود می‌شود.
تخلیه بافر فایل روی دیسک (flush) پس از هر num فریم تصویربرداری‌شده.
سطح پرگویی (0، 1 یا 2). پیش‌فرض 0 است.

متغیرهای محیطی زیر توسط lavrec شناسایی می‌شوند:

دستگاه ویدیویی. پیش‌فرض /dev/video است
دستگاه صوتی. پیش‌فرض /dev/dsp است
دستگاه میکسر. پیش‌فرض /dev/mixer است

دستور 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 اختلاف زمانی بین صدا و تصویر (میزان ناهماهنگی) هستند.

گزینه‌های زیادی وجود دارند. حال چطور می‌توان به شیوه معمول ویدیو ضبط کرد؟ فرض کنیم می‌خواهید با تفکیک‌پذیری 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

ابزار lavrec باید بتواند به‌طور خودکار تشخیص دهد که از انکودینگ نرم‌افزاری JPEG استفاده کند یا از قابلیت‌های انکودینگ سخت‌افزاری JPEG کارت (در صورت موجود بودن).

علاوه بر این، انکودینگ نرم‌افزاری JPEG به نظر می‌رسد برای برخی افراد باعث ناهماهنگی اندکی در صدا و تصویر می‌شود. پشتیبانی از SMP برای انکودینگ JPEG در حال حاضر در دست توسعه است.

ابزار lavrec برای ضبط صدا از OSS استفاده می‌کند. سیستم ALSA اقدام به شبیه‌سازی OSS می‌کند و این می‌تواند باعث بروز مشکلاتی در هسته‌های سری 4.x.x شود؛ بنابراین توصیه می‌کنیم از هسته‌های قدیمی‌تر استفاده کنید. در حال حاضر برنامه‌ای برای تبدیل بخش صوتی به ALSA بومی وجود ندارد.

این صفحه راهنما توسط Ronald Bultje نوشته شده است.
اگر سؤال، نظر، یا مشکلی دارید یا می‌خواهید با توسعه‌دهندگان تماس بگیرید، فهرست پستی اصلی برای MJPEG-tools به این نشانی است:
mjpeg-users@lists.sourceforge.net
برای اطلاعات بیشتر، وب‌سایت ما را ببینید:
http://mjpeg.sourceforge.net

mjpegtools(1), lavplay(1)

27 August 2003 MJPEG Tools Team