DVGRAB(1) General Commands Manual DVGRAB(1)

dvgrab - ضبط داده‌های ویدیویی و صوتی DV یا جریان انتقال MPEG-2 (HDV) از FireWire

dvgrab [گزینه‌ها] [پایه] [-]

برنامه dvgrab ابزاری برای ضبط داده‌های صوتی و ویدیویی DV یا HDV (MPEG2-TS) از دوربین‌های فیلم‌برداری دیجیتال از طریق FireWire (IEEE 1394) است. داده‌ها در یک یا چند فایل ذخیره می‌شوند و بعداً می‌توانند توسط نرم‌افزارهای ویرایش ویدیو پردازش شوند. برنامه dvgrab می‌تواند دوربین فیلم‌برداری را از راه دور کنترل کند، اما محتوای ویدیو را روی صفحه نمایش نشان نمی‌دهد.

برنامه dvgrab همچنین از دستگاه‌های DV سازگار با UVC (کلاس ویدیویی USB) با استفاده از ماژول هسته لینوکس uvcvideo که یک درایور V4L2 است، پشتیبانی می‌کند. در این حالت، هیچ کنترل AV/C VTR وجود ندارد و بنابراین حالت تعاملی تقریباً بدون کاربرد است.

آرگومان پایه برای ساختن نام فایل ذخیره داده‌های ویدیویی استفاده می‌شود: پایه-شماره.پسوند. مقدار شماره یک شماره ترتیبی است که از 001 شروع می‌شود و پسوند پسوند نام فایل است که قالب فایل استفاده‌شده را مشخص می‌کند (مانند avi). هرگاه گزینه‌های -timestamp، -timecode یا -timesys داده شوند، از الگوی نام‌گذاری متفاوتی استفاده می‌شود (به زیر مراجعه کنید). اگر پایه یک نام فایل کامل شامل پسوند باشد، آنگاه dvgrab تلاش می‌کند قالب فایل خروجی را از روی پسوند تشخیص دهد، اما همچنان شماره را درج می‌کند. مقدار پیش‌فرض برای پایه برابر "dvgrab-" است.

اگر یک '-' در انتها مشخص کنید، قالب فایل به DV یا HDV خام اجبار شده و به خروجی استاندارد (stdout) ارسال می‌شود. همچنین اگر خروجی استاندارد از طریق پایپ یا ریدایرکت هدایت شود، dvgrab هنگام ضبط در فایل، DV یا HDV خام را به خروجی استاندارد نیز می‌فرستد.

شما می‌توانید از قابلیت‌های قدرتمند ذخیره‌سازی فایل dvgrab با سایر برنامه‌هایی که DV یا HDV خام تولید می‌کنند استفاده کنید. با استفاده از گزینه -stdin و در صورتی که dvgrab تشخیص دهد که در انتهای دریافت‌کننده یک پایپ قرار دارد و در حالت تعاملی نیست، تلاش خواهد کرد DV یا HDV خام را از ورودی استاندارد (stdin) بخواند.

گزینه‌های طولانی‌تر از یک نویسه می‌توانند با یک یا دو خط تیره در ابتدا مشخص شوند. همچنین می‌توانید از نویسه فاصله یا علامت مساوی برای جداسازی نام گزینه و مقدار آرگومان آن استفاده کنید.

تلاش می‌کند تا زمان شروع یک ضبط جدید را تشخیص داده و آن را در یک فایل جداگانه ذخیره کند. این گزینه می‌تواند با گزینه‌های -frames و -size ترکیب شود و هر زمان که رویداد مشخص‌شده‌ای رخ دهد، برش فایل انجام می‌شود. تقسیم خودکار (Autosplit) به طور پیش‌فرض غیرفعال است.
مقدار شماره اختیاری است. بدون آن، dvgrab زمان تقسیم را بر اساس یک پرچم در جریان داده یا ناپیوستگی در تایم‌کد تعیین می‌کند؛ که در آن ناپیوستگی تایم‌کد هرگونه جهش به عقب یا جهش بزرگتر از یک ثانیه است. اگر آرگومان اختیاری شماره را تنظیم کنید، می‌توانید حساسیت زمانی را بر حسب ثانیه تنظیم کرده و از پرچم ضبط جدید در جریان داده چشم‌پوشی کنید. این امر اساساً به شما امکان می‌دهد روی بازه‌های زمانی بزرگتر مانند دقیقه یا ساعت برش دهید. برای مثال، -autosplit=3600 هر زمان که شکافی به مدت یک ساعت یا بیشتر در ضبط وجود داشته باشد، فایل را برش می‌دهد.
تعداد فریم‌های مورد استفاده برای بافر کردن تاخیرهای ورودی/خروجی دستگاه. مقدار پیش‌فرض 100 است.
به dvgrab می‌گوید داده‌ها را از کارت FireWire شماره شماره دریافت کند. رفتار پیش‌فرض انتخاب خودکار نخستین کارتی است که شامل اولین دوربین کشف‌شده باشد. اگر همراه با -noavc استفاده شود، هیچ پویشی روی گذرگاه انجام نمی‌شود. اگر همراه با -guid هگز استفاده شود، فقط گذرگاه مشخص‌شده برای گره با GUID هگز پویش می‌شود.
کانال همگام (Isochronous) برای دریافت داده‌ها. مقدار پیش‌فرض 63 است که این روزها در میان دوربین‌های فیلم‌برداری DV استاندارد به شمار می‌رود. اگر مقدار متفاوتی تعیین کنید، در این حالت هیچ تلاشی برای اطلاع به دستگاه جهت استفاده از آن کانال انجام نمی‌شود. باید روش دستی برای تعیین کانال ارسالی به دستگاه فرستنده داشته باشید.
این گزینه برای شروع مجموعه جدید در صورتی استفاده می‌شود که یک برش به میزان شماره مگابایت (در واقع مبی‌بایت) پیش از پایان مجموعه رخ دهد. این گزینه ایجاد فایل‌های کوچک را هنگام استفاده از گزینه -csize کاهش می‌دهد. هنگامی که یک مجموعه جدید به این روش شروع می‌شود، میزان فضای خالی در مجموعه قبلی ذخیره شده و تا زمانی که کلیپ‌های بعدی در مجموعه قبلی جا شوند، نقطه شروع مجموعه جدید بازنشانی می‌شود.
این گزینه به dvgrab می‌گوید هرگاه حجم مجموعه فایل‌ها از شماره فراتر رفت، فایل‌ها را تقسیم کند. این گزینه برای ایجاد مجموعه‌ای از فایل‌ها استفاده می‌شود که دقیقاً در شماره مگابایت (در واقع مبی‌بایت) جا شوند (برای مثال جهت آرشیو روی DVD). در این هنگام، یک مجموعه جدید آغاز می‌شود (همچنین به گزینه -cmincutsize مراجعه کنید).
نمایش اطلاعات اشکال‌زدایی HDV. نوع یک یا چند مورد از گزینه‌های زیر است: all,pat,pmt,pids,pid=N,pes,packet,video,sonya1
تنظیم حداکثر مدت‌زمان ضبط در تمام بخش‌های تقسیم‌شده فایل برای یک نشست ضبط واحد (در حالت تعاملی چندین نشست امکان‌پذیر است). مقدار زمان در قالب زمانی SMIL2 MediaClipping بیان می‌شود. برای مشخصات به نشانی http://w3.org/AudioVideo مراجعه کنید.
به طور خلاصه، قالب‌ها عبارتند از:
XXX[.Y]h, XXX[.Y]min, XXX[.Y][s], XXXms,
[[HH:]MM:]SS[.ms]، یا smpte=[[[HH:]MM:]SS:]FF.
این گزینه به dvgrab می‌گوید فقط هر n-اُمین فریم را بنویسد (پیش‌فرض تمام فریم‌ها است).
قالب فایل(های) خروجی را تعیین می‌کند. قالب فایل همچنین در صورت درج پسوند در نام پایه قابل تشخیص است. پسوندهای زیر قابل شناسایی هستند: avi، dv، dif، mov، jpg، jpeg و m2t (HDV).
قالب‌های dv1 و dv2 هر دو فایل‌های AVI با قالب‌هایی اندکی متفاوت هستند. قالب dv2 یک ترک صوتی جداگانه علاوه بر ترک ویدیویی DV ذخیره می‌کند که سازگاری بیشتری با سایر برنامه‌ها دارد. قالب dv1 فقط یک ترک یکپارچه DV ذخیره می‌کند زیرا قالب DV ذاتاً صدا را با ویدیو ترکیب (interleave) می‌کند. بنابراین، در حالی که dv1 خروجی کم‌حجم‌تری تولید می‌کند، برخی برنامه‌ها آن را متوجه نمی‌شوند و به جای آن به dv2 نیاز دارند. برنامه dvgrab قادر به ساخت فایل‌های AVI بسیار بزرگ — بسیار بیشتر از 2 یا 4 گیگابایت — است؛ با این حال، سازگاری با ابزارهای دیگر از حجم بالای 1 گیگابایت شروع به کاهش می‌کند.
قالب raw داده‌ها را دست‌نخورده ذخیره کرده و پسوند .dv دارد. این فایل‌ها توسط تعدادی از ابزارهای گنو/لینوکس و همچنین Apple Quicktime خوانده می‌شوند.
قالب dif گونه‌ای از DV خام است که فایل‌ها را با پسوند .dif نام‌گذاری می‌کند تا بتوان آن‌ها را مستقیماً در MainConcept MainActor5 بارگذاری کرد.
قالب qt مربوط به Quicktime است، اما نیاز دارد که dvgrab با پشتیبانی از libquicktime کامپایل شده باشد.
قالب‌های jpg یا jpeg برای توالی‌ای از فایل‌های تصویری JPEG در صورتی است که dvgrab با libdv و jpeglib کامپایل شده باشد. این گزینه فقط با ورودی DV قابل استفاده است، نه HDV (MPEG2-TS).
قالب‌های mpeg2 یا hdv برای جریان انتقال MPEG-2 هنگام استفاده از دوربین فیلم‌برداری HDV یا ستاپ‌باکس تلویزیون دیجیتال است.
مقدار پیش‌فرض برابر raw است.
این گزینه به dvgrab می‌گوید حداکثر شماره فریم را در هر فایل پیش از تقسیم به یک فایل جدید ذخیره کند، که در آن شماره = 0 به معنای نامحدود است. زمان متناظر بستگی به سیستم ویدیویی مورد استفاده دارد. سیستم PAL تعداد 25 فریم در ثانیه و NTSC حدود 30 فریم در ثانیه نمایش می‌دهد.
اگر بیش از یک دستگاه DV دارید، یکی را با استفاده از GUID گره مشخص‌شده در قالب هگز (هگزادسیمال) انتخاب کنید. این قالب همان قالبی است که در مسیر /proc/bus/ieee1394/devices یا سیستم‌فایل sys/ در هسته 2.6 نمایش داده می‌شود. هنگامی که یک GUID مشخص می‌کنید، dvgrab به جای گوش دادن به پخش همگانی دستگاه، یک اتصال همتا به همتا (peer-to-peer) با دستگاه برقرار (یا همپوشانی) می‌کند. اگر مقدار هگز را 1 بدهید، dvgrab تلاش می‌کند دستگاه را کشف کرده و اتصال همتا به همتا را نیز برقرار سازد. این ویژگی به ویژه برای گیرنده‌های دیجیتال MPEG2-TS که معمولاً برای شروع ارسال به یک فرآیند مدیریت اتصال نیاز دارند بسیار مفید است.
نمایش خلاصه گزینه‌ها.
خواندن از فایل به جای FireWire. می‌توانید به جای استفاده از گزینه -stdin از '-' برای ورودی استاندارد استفاده کنید.
فعال‌سازی حالت تعاملی در dvgrab، که در آن فشردن تک‌کلیدها روی ورودی استاندارد (stdin) قابلیت VTR دوربین را کنترل کرده یا ضبط را شروع و متوقف می‌کند. در غیر این صورت، dvgrab در حالت نشست (session) اجرا می‌شود، جایی که بلافاصله ضبط را آغاز کرده و طبق دستور یا با وقفه (ctrl-c) متوقف می‌شود.
در صورت استفاده از -format jpeg، خروجی را با دو برابر کردن خطوط میدان بالایی دی‌اینترلیس (deinterlace) می‌کند. این روش ساده‌ای از دی‌اینترلیس است که منجر به افت وضوح مؤثر 50 درصدی می‌شود.
در صورت استفاده از -format jpeg، ارتفاع تصویر خروجی را به شماره (1 تا 2048) تغییر مقیاس می‌دهد.
نوشتن روی یک فایل تصویری یکسان برای هر فریم، به جای ایجاد دنباله‌ای از فایل‌های تصویری.
در صورت استفاده از -format jpeg، سطح کیفیت JPEG را از 0 (بدترین) تا 100 (بهترین) تنظیم می‌کند.
استفاده از یک فایل موقت برای ایجاد تصویر jpeg و تغییر نام فایل به نام فایل مقصد پس از پایان کار. هنگام استفاده از dvgrab با -jpeg-overwrite برای تولید تصویر وب‌کم بسیار مفید است.
در صورت استفاده از -format jpeg، عرض تصویر خروجی را به شماره (1 تا 2048) تغییر مقیاس می‌دهد.
عرض و ارتفاع تغییر مقیاس JPEG باید هر دو یا کمتر یا بیشتر از اندازه فریم عادی باشند. برای مثال، اندازه مقیاس‌بندی‌شده 700 در عرض و 525 در ارتفاع، تصویری با نسبت 4:3 و پیکسل‌های مربع ایجاد می‌کند، اما برای NTSC غیرمجاز است زیرا 700 کمتر از عرض عادی 720 است در حالی که ارتفاع بیشتر از ارتفاع عادی 480 است.
از آنجا که DV از پیکسل‌های غیرمربع استفاده می‌کند، امکان تغییر مقیاس به تصویری بر پایه نسبت تصویر 4:3 با استفاده از پیکسل‌های مربع مناسب است. برای NTSC، اندازه‌های نمونه 800x600، 640x480 و 320x240 هستند. برای PAL، اندازه‌های نمونه با پیکسل مربع 384x270 و 768x540 هستند.
حذف پرچم repeat_first_field و تنظیم تعداد فریم بر ثانیه روی 25 برای اصلاح جریان داده ضبط‌شده در حالت JVC HDV P25.
تراز کردن ضبط با مضربی از -frames بر پایه تایم‌کد. این گزینه برای افزونگی مفید است، زمانی که بیش از یک دستگاه در حال ضبط از یک دستگاه FireWire مشترک باشند و بخواهید اطمینان حاصل کنید که هر فایل حاوی همان بخش از ویدیو است. برای اطمینان از اینکه فایل‌های هر سیستم نام یکسانی دارند، از گزینه -timecode و همان نام پایه استفاده کنید.
اگر تعداد شماره فریم به صورت متوالی افت کند (drop شود)، فایل را بسته و ضبط را در بازه lockstep بعدی از سر می‌گیرد. اگر شماره برابر 1- باشد، تعداد نامحدودی از فریم‌های افت‌کرده متوالی مجاز است؛ این حالت پیش‌فرض است.
اگر تعداد شماره فریم در فایل جاری افت کند، فایل را بسته و ضبط را در بازه lockstep بعدی از سر می‌گیرد. اگر شماره برابر 1- باشد، تعداد نامحدودی از مجموع فریم‌های افت‌کرده مجاز است؛ این حالت پیش‌فرض است.
غیرفعال کردن استفاده از کنترل AV/C VTR. این گزینه زمانی مفید است که ویدیوی زنده را از یک دوربین ضبط می‌کنید زیرا در حالت دوربین، یک دستور پخش AV/C به دوربین می‌گوید شروع به ضبط کند، که شاید روی محتوای نوار فعلی ضبط انجام شود. این گزینه برای هر دو حالت تعاملی و غیرتعاملی اعمال می‌شود زیرا حالت غیرتعاملی هنگام شروع و پایان ضبط دستور پخش و توقف را به VTR می‌فرستد.
غیرفعال کردن ارسال دستور توقف AV/C VTR هنگام خروج از dvgrab.
در صورت استفاده از -format dv2، یک فایل AVI نوع 2 DV سازگار با OpenDML ایجاد می‌کند. این مورد برای پشتیبانی از فایل‌های dv2 بزرگتر از 1 گیگابایت الزامی است. قالب dv1 همیشه از فایل‌های بزرگتر از 1 گیگابایت پشتیبانی می‌کند.
هنگامی که دوربین در حالت ضبط است، این گزینه باعث می‌شود dvgrab فقط زمانی ضبط کند که دوربین در حال ضبط باشد و متوقف (pause) نشده باشد. به طور معمول در حالت ضبط، dvgrab همیشه ضبط را انجام می‌دهد تا بتوانید از دوربین فیلم‌برداری صرفاً به عنوان یک دوربین استفاده کنید که کنترل آن در دست کاربر رایانه است. این گزینه باعث می‌شود dvgrab مانند یک VCR عمل کند که فیلم‌بردار زمان ضبط را کنترل می‌کند. این گزینه هنگام استفاده همراه با -autosplit برای ایجاد خودکار فایل جدید برای هر نما (shot) بسیار کاربردی است. این گزینه به AV/C نیاز دارد و با گزینه -noavc کار نخواهد کرد.
بازگردانی کامل نوار به ابتدا پیش از شروع ضبط. طبیعتاً این گزینه به AV/C نیاز دارد؛ با این حال، شاید بدیهی نباشد که این گزینه در حالت تعاملی اعمال نمی‌شود.
به طور معمول، اطلاعات وضعیت ضبط پس از اتمام نوشتن در هر فایل نمایش داده می‌شود. این گزینه باعث می‌شود وضعیت ضبط در حین ضبط نمایش داده شده و برای هر فریم به‌روزرسانی شود.
این گزینه به dvgrab می‌گوید حداکثر شماره مگابایت (در واقع مبی‌بایت) را در هر فایل ذخیره کند، که در آن شماره = 0 به معنای اندازه فایل نامحدود برای فایل‌های حجیم است. محدودیت اندازه پیش‌فرض 1024 مگابایت است.
تولید فایل‌های زیرنویس شامل تاریخ و زمان ضبط در قالب SRT. برای هر فایل ویدیویی ایجادشده، دو فایل اضافی با پسوندهای .srt0 و .srt1 ایجاد می‌شوند. آن‌ها حاوی تاریخ و زمان ضبط به عنوان زیرنویس در قالب SRT هستند. فایل .srt0 حاوی زیرنویس‌هایی با زمان‌بندی بر اساس زمان سپری‌شده از ابتدای فایل جاری است. اگر ویدیو را به قالبی مانند AVI تبدیل می‌کنید از این فایل استفاده کنید. فایل .srt1 شامل زیرنویس‌هایی با زمان‌بندی بر اساس کد زمانی ارائه‌شده توسط دوربین است. برنامه mplayer این نوع زیرنویس را شناسایی می‌کند.
خواندن جریان داده DV از یک پایپ روی ورودی استاندارد (stdin) به جای FireWire.
قرار دادن تایم‌کد اولین فریم هر فایل در نام فایل.
قرار دادن اطلاعات تاریخ و زمان ضبط در نام فایل.
قرار دادن تاریخ و زمان سیستم به جای زمان ضبط در نام فایل. این گزینه هنگام استفاده از دستگاه‌های مبدلی که تاریخ و زمان ضبط را در جریان داده DV تغییر نمی‌دهند مفید است.
ضبط از یک دستگاه کلاس ویدیویی USB (UVC) که از DV پشتیبانی می‌کند. این گزینه از ماژول هسته uvcvideo از طریق V4L2 استفاده می‌کند. فایل دستگاه پیش‌فرض /dev/video است. از گزینه -input برای تعیین فایل دستگاه متفاوت استفاده کنید.
نمایش نسخه برنامه.
-24p
برای Quicktime DV، نرخ فریم را در فایل Quicktime روی 24 فریم بر ثانیه تنظیم می‌کند. این مورد تنها زمانی به درستی عمل می‌کند که ویدیو در حالت 24p فیلم‌برداری شده باشد.
-24pa
برای Quicktime DV، علاوه بر تنظیم نرخ فریم روی 24 در فایل Quicktime، همچنین فرآیند پول‌داون 2:3:3:2 را با حذف فریم اینترلیس شده "C" معکوس می‌کند. این مورد تنها زمانی به درستی عمل می‌کند که ویدیو در حالت 24p Advanced فیلم‌برداری شده باشد. به نشانی http://www.adamwilt.com/24p مراجعه کنید.

داده‌های ویدیویی را از منبع پیش‌فرض FireWire ضبط کرده و در فایل‌های foo-001.avi، foo-002.avi و غیره ذخیره می‌کند.
با فرض یک منبع ویدیویی PAL، این دستور ارزش یک ثانیه داده‌های ویدیویی را در هر فایل ضبط می‌کند.
داده‌های ویدیویی را از منبع پیش‌فرض FireWire ضبط می‌کند، آن را به قطعات 30 ثانیه‌ای (با فرض PAL) یا هنگام شروع یک ضبط جدید برش می‌دهد و فایل‌های حاصل را بر اساس اطلاعات تاریخ و زمان در جریان ویدیویی نام‌گذاری می‌کند.
داده‌های ویدیویی را از منبع پیش‌فرض FireWire ضبط می‌کند، آن را زمانی که ضبط جدیدی آغاز شود یا زمانی که فایل جاری از 1998 مگابایت (در واقع مبی‌بایت) بیشتر شود، یا مجموعه فایل‌های جاری از 4400 مگابایت بیشتر شود، برش می‌دهد. همچنین اندازه کوچک‌ترین فایل ساخته‌شده در اثر برش اندازه مجموعه را به 10 مگابایت کاهش می‌دهد.
این گزینه برای تهیه نسخه پشتیبان از DV روی DVDها بسیار عالی است زیرا 2 گیگابایت تقریباً حداکثر اندازه فایلی است که پیاده‌سازی (فعلی) سیستم‌فایل ISO9660 در لینوکس می‌تواند مدیریت کند!
هشدار: ساخت سیستم‌فایل‌های ISO9660 با فایل‌های بزرگتر از 2 گیگابایت امکان‌پذیر است، اما درایور فعلی ISO9660 لینوکس نمی‌تواند آن‌ها را بخواند! هسته‌های جدیدتر لینوکس ممکن است بتوانند سیستم‌فایل‌های ISO9660 با اندازه فایل بیشتر از 2 گیگابایت را مدیریت کنند.
ضبط از یک دوربین فیلم‌برداری HDV.
ضبط از یک ستاپ‌باکس تلویزیون دیجیتال.
ضبط یک فریم منفرد، ذخیره آن به صورت یک تصویر JPEG به نام webcam.jpg و خروج. این مثال همچنین نحوه مدیریت گزینه‌ها را نشان می‌دهد. شما فقط باید بخش کافی از یک نام گزینه طولانی را برای شناسایی یکتای آن مشخص کنید. می‌توانید از فاصله یا علامت مساوی برای جداسازی نام گزینه و آرگومان استفاده کنید. قالب فایل از روی پسوند نام فایل استنباط می‌شود. همچنین از آنجا که -jpeg-overwrite استفاده شده است، نام فایل دقیقاً "webcam.jpeg" خواهد بود و شامل هیچ عددی نمی‌شود.
ضبط از طریق USB از یک دستگاه DV سازگار با UVC.
ضبط از طریق USB از یک دستگاه DV سازگار با UVC با استفاده از فایل دستگاه /dev/video1.
ضبط از یک دوربین فیلم‌برداری HDV، با تقسیم هر زمان که فاصله‌ای بیشتر از 8 ساعت در ضبط وجود داشته باشد. این احتمالاً یک فایل جداگانه برای هر روز تولید خواهد کرد (برای ویدیوهای تعطیلات مناسب است). همچنین فایل‌های زیرنویس ایجاد می‌کند. با فرض اینکه فایل‌های foo-001.m2t و foo-002.m2t تولید شوند، فایل‌های زیرنویس متناظر foo-001.srt0، foo-001.srt1 و foo-002.srt0، foo-002.srt1 خواهند بود. می‌توانید از فایل‌های زیرنویس برای نمایش تاریخ و زمان ضبط در حین مشاهده ویدیو استفاده کنید.

Dan Dennedy <dan@dennedy.org> and Daniel Kobras <kobras@debian.org>

برای اطلاعات بیشتر و پشتیبانی به نشانی https://github.com/ddennedy/dvgrab مراجعه کنید.