SPUMUX(1) DVDAuthor Man Pages SPUMUX(1)

spumux - تولید و ادغام زیرنویس‌ها در یک جریان برنامه mpeg2 موجود

spumux [ -m dvd | -m cvd | -m svcd ] [ -s stream ] [ -v level ] [ -P ] [ --nomux ] [ --nodvdauthor-data ] file < mpeg > mpeg-with-subtitles

دستور spumux زیرنویس‌ها را کدگذاری کرده و در جریان برنامه (program stream) mpeg2 ادغام (multiplex) می‌کند.

کدگذاری زیرنویس‌ها را تنظیم می‌کند. می‌تواند dvd، cvd یا svcd باشد. پیش‌فرض dvd است.
شناسهٔ جریان (stream ID) زیرنویس را تنظیم می‌کند. پیش‌فرض 0 است.
سطح پرگویی (verbosity) را تنظیم می‌کند.
نوار پیشرفت را فعال می‌کند.
خواندن جریان MPEG از ورودی استاندارد را غیرفعال می‌کند. در عوض، خروجی تنها شامل جریان زیرتصویر (subpicture stream) خواهد بود.
ارسال اطلاعات رنگ و دکمه را به dvdauthor غیرفعال می‌کند.

در اینجا یک نمونه فایل پیکربندی آورده شده است:

<subpictures>
   <stream>
      <spu start="start-time" [ end="end-time" ] [ image="picture.png" ]
           [ highlight="picture.png" ] [ select="picture.png" ]
           [ transparent="color-spec" ] [ force="yes" ]
           [ autooutline="infer" [ outlinewidth="width" ]
             [ autoorder="rows" | autoorder="columns" ] ]
           [ xoffset="x-coord" yoffset="y-coord" ] >
         <button [ name="name" ] [ x0="x0" ] [ y0="y0" ] [ x1="x1" ]
                 [ y1="y1" ] [ up="name" ] [ down="name" ]
                 [ left="name" ] [ right="name" ] />
         <action [ name="name" ] [ x0="x0" ] [ y0="y0" ] [ x1="x1" ]
                 [ y1="y1" ] />
      </spu>
   </stream>
</subpictures>

هر تصویر زیرنویس توسط یک برچسب <spu> توصیف می‌شود. مشخصه‌های start و مشخصهٔ اختیاری end، زمان نمایش زیرنویس روی صفحه را بر حسب «HR:MM:SS.HU» مشخص می‌کنند. مشخصهٔ image تصویر اصلی زیرنویس را توصیف می‌کند که می‌تواند یک فایل PNG یا BMP باشد. اگر تصویر شما تمام‌صفحه نیست، می‌توانید از xoffset و yoffset برای جابه‌جا کردن تصویر استفاده کنید. در صورتی که ایجادکننده نتواند از یک قالب گرافیکی دارای کانال آلفا (alpha channel) استفاده کند، می‌توان از مشخصهٔ transparent برای تعیین رنگی که باید کاملاً شفاف شود، استفاده کرد. برای قالب‌های معتبر color-spec، بخش «مشخص کردن رنگ‌ها (SPECIFYING COLORS)» را در ادامه ببینید. اگر می‌خواهید نمایش زیرنویس را بدون توجه به اینکه کاربر زیرنویس را فعال کرده یا نه، اجباری کنید، می‌توانید از مشخصهٔ force استفاده نمایید. هنگام ایجاد منوها، برچسب force الزامی است.

سایر مشخصه‌ها و برچسب‌ها مربوط به ایجاد منو هستند. مشخصهٔ highlight شکل ظاهری تمام دکمه‌ها را هنگام برجسته‌شدن نشان می‌دهد (یعنی زمانی که در منو از کلیدهای جهت‌نما استفاده می‌کنید)، و مشخصهٔ select شکل دکمه‌ها را هنگام انتخاب‌شدن نمایش می‌دهد (یعنی به مدت ۱ تا ۲ ثانیه پس از فشردن enter در منو). اگر هر یک از این‌ها (یا مشخصهٔ image) حذف شوند، spumux یک تصویر خالی (کاملاً شفاف) ایجاد می‌کند. بدیهی است که حداقل یک برچسب باید مشخص شود.

برای کمک به ایجاد دکمه‌ها، مشخصهٔ autooutline به spumux دستور می‌دهد که محل قرارگیری دکمه‌ها را استنباط کند. این کار را با تلاش برای رسم مستطیل‌هایی پیرامون ترکیبی از تصاویر highlight و select انجام می‌دهد که با هیچ پیکسل کدر یا نیمه‌کدری تلاقی نداشته باشند. به منظور پشتیبانی از دکمه‌های متنی، مشخصهٔ outlinewidth به شما اجازه می‌دهد پهنای مستطیل مورد آزمایش را مشخص کنید. مستطیل‌های عریض‌تر نمی‌توانند بین حروف جای گیرند. در نهایت، autoorder جهت مرتب‌سازی دکمه‌های شناسایی‌شدهٔ خودکار را توصیف می‌کند، که این امر برای دکمه‌های انتخابی عددی و همچنین نگاشت دکمه‌ها به نام‌های آن‌ها یا نام‌های ضمنی اهمیت دارد.

برچسب‌های button و action، دکمه‌ها (اشیاء قابل‌انتخابِ بصری روی صفحه) و کنش‌ها (دستوراتی که به محض فشرده شدن کلید مربوطه روی کنترل از راه دور اجرا می‌شوند) را توصیف می‌کنند. اگر از ویژگی autooutline استفاده می‌کنید، فقط در حال طراحی دکمه‌ها هستید، از پیمایش استنباط‌شدهٔ دکمه‌ها رضایت دارید و با سیستم نام‌گذاری ساده مشکلی ندارید، در واقع نیازی به مشخص کردن هیچ دکمه یا کنشی ندارید. در غیر این صورت، ادامه را بخوانید.

مشخصهٔ name برای دادن یک نام خوانا و ارجاع‌پذیر به دکمه یا کنش استفاده می‌شود. به طور پیش‌فرض، آن‌ها به صورت متوالی و با شروع از «1» شماره‌گذاری می‌شوند. نام‌های up، down، left و right مشخص می‌کنند که هنگام برجسته‌بودن دکمهٔ جاری، کدام دکمه یا کنش باید به کلید متناظر پیوند بخورد؛ هرچند در صورت حذف، spumux از الگوریتمی نسبتاً هوشمند برای تعیین دکمه‌ای که باید به آن حرکت کرد استفاده خواهد کرد.

مختصات (x0,y0) گوشهٔ بالا و چپ را به صورت فراگیر (شامل)، و مختصات (x1,y1) گوشهٔ پایین و راست را به صورت غیرفراگیر (بدون شمول) توصیف می‌کنند. مبدأ مختصات 0,0 برای گوشهٔ بالا و چپ است. در حالت ایده‌آل، هر دو مختصات y0 و y1 باید زوج باشند، تا لبه‌های دکمه به طور کامل دو خط پویش درهم‌بافته (interlaced scanlines) را در بر بگیرند، حتی اگر داده‌ای در خط پویش اضافی وجود نداشته باشد. برخی از دستگاه‌های پخش DVD در صورت مشخص نشدن خط پویش اضافی، آن را پر می‌کنند؛ spumux تلاش می‌کند اطمینان حاصل کند که آن بخش شفاف خواهد بود، اما تضمینی وجود ندارد.

ابزار spumux همچنین قادر به مدیریت زیرنویس‌های متنی است که توسط خود spumux به گرافیک رندر خواهند شد. قالب‌های متنی مختلفی (حتماً باید غیرگرافیکی باشند) پشتیبانی می‌شوند (.sub، .srt، .ssa، .smi، .rt، .txt، .aqt، .jss، .js، ass). ابزار spumux تلاش خواهد کرد تا قالب را به طور خودکار تشخیص دهد.

در صورت پردازش زیرنویس‌های متنی، هیچ جریان دیگری نمی‌تواند تعریف شود؛ دکمه‌ها یا سایر موارد باید در گذر دیگری با spumux و با استفاده از یک فایل xml دیگر پردازش شوند.

فایل .xml زیر برچسب‌های موجود و تنظیمات پیش‌فرض آن‌ها را نشان می‌دهد. تنها برچسب textsub الزامی است و در صورت عدم تعیین برچسب مشخص، مقادیر پیش‌فرض استفاده می‌شوند.

<subpictures [format="NTSC|PAL"]>
   <stream>
      <textsub filename="demo1.srt" characterset="UTF-8"
         fontsize="28.0" font="arial" fill-color="color-spec"
         outline-color="color-spec" outline-thickness="3.0"
         shadow-offset="0, 0" shadow-color="color-spec"
         horizontal-alignment="left"  vertical-alignment="bottom"
         left-margin="60" right-margin="60"
         top-margin="20" bottom-margin="30" subtitle-fps="fps"
         movie-fps="fps"
         movie-width="720" movie-height="height" aspect="4:3"
         force="yes"
      />
   </stream>
</subpictures>

برچسب textsub تنظیمات رندر متن به گرافیک را مشخص می‌کند.

مشخصهٔ filename مسیر و نام فایل متنی ورودی زیرنویس را مشخص می‌کند؛ این تنها مشخصه‌ای است که اجباری است.

مشخصهٔ characterset مجموعه نویسهٔ مورد استفاده را مشخص می‌کند؛ مجموعه‌های نویسهٔ موجود را می‌توان در http://www.gnu.org/software/libiconv یافت.

مشخصهٔ fontsize اندازهٔ قلم را بر حسب واحدهای قلم مشخص می‌کند. مشخصهٔ font قلمِ مورد استفاده را تعیین می‌نماید. دستور spumux در صورت موجود بودن، نام قلم را با استفاده از Fontconfig مطابقت می‌دهد، وگرنه در سیستم‌های لینوکس آن را به عنوان نام فایل در نظر می‌گیرد و برای اجراهای مبتنی بر ویندوز، پوشهٔ windows/fonts، زیرپوشهٔ spumux از پوشهٔ خانگی cygwin/mingw و پوشهٔ محل اجرا را به دنبال قلم مشخص‌شده بررسی می‌کند. آیا به دنبال قلم‌های رایگان هستید؟ یک فهرست در <http://www.microsoft.com/typography/links/links.asp?type=free&part=1> موجود است (این فهرست صرفاً دربارهٔ قلم‌هاست، نه سیستم‌های عامل).

مشخصهٔ fill-color رنگ مورد استفاده برای پر کردن داخل متن را تعیین می‌کند، در حالی که outline-color رنگ کادر پیرامونی را که دور هر نویسه کشیده می‌شود مشخص می‌سازد تا از پس‌زمینهٔ ویدیو متمایز شود. مشخصهٔ outline-thickness ضخامت این کادر پیرامونی را مشخص می‌کند. برای قالب‌های معتبر color-spec، بخش «مشخص کردن رنگ‌ها (SPECIFYING COLORS)» را در ادامه ببینید. رنگ پرکردن پیش‌فرض سفید و رنگ حاشیهٔ پیش‌فرض سیاه است.

مشخصه‌های shadow-offset و shadow-color اثر سایه‌ای را که باید روی متن اعمال شود تعیین می‌کنند. مشخصهٔ shadow-offset به صورت ۲ عدد صحیح علامت‌دار، به ترتیب جابه‌جایی افقی و عمودی، مشخص می‌شود که مقادیر مثبت به سمت راست و پایین هستند. برای قالب‌های معتبر color-spec، بخش «مشخص کردن رنگ‌ها (SPECIFYING COLORS)» را در ادامه ببینید. رنگ سایهٔ پیش‌فرض سیاه است.

مشخصهٔ horizontal-alignment تراز افقی زیرنویس‌ها را مشخص می‌کند. گزینه‌ها عبارتند از: «left»، «right»، «center» و «default». مقدار «default» باعث می‌شود در صورتی که قالب فایل زیرنویس متنی از این مشخصه پشتیبانی کند، spumux از مشخصهٔ تعریف‌شده در همان فایل استفاده کند.

مشخصهٔ vertical-alignment تراز عمودی را مشخص می‌کند. گزینه‌ها عبارتند از: «top»، «center» و «bottom».

مشخصه‌های margin حداقل فاصلهٔ پیکسلی خالی بین حاشیهٔ تصویر و حاشیهٔ خطوط زیرنویس را تعیین می‌کنند.

مشخصهٔ subtitle-fps برای قالب‌های زیرنویسی لازم است که به جای کسرهای ثانیه، از شماره فریم برای مشخص کردن زمان‌های زیرنویس استفاده می‌کنند؛ در حالی که movie-fps نرخ فریم ویدیویی است که زیرنویس‌ها با آن ادغام می‌شوند؛ در صورت عدم تعیین، مقدار پیش‌فرض هر دو برای NTSC برابر با ۲۹٫۹۷ و برای PAL برابر با ۲۵ است.

وجود مشخصه‌های جداگانهٔ subtitle-fps و movie-fps این امکان را به spumux می‌دهد که در صورت یکسان نبودن این مقادیر، زمان‌بندی زیرنویس را دوباره محاسبه کند.

مشخصه‌های movie-width و movie-height حداکثر اندازهٔ صفحهٔ زیرنویس را تعیین می‌کنند؛ این اندازه‌ها نباید بزرگتر از اندازهٔ فریم ویدیو باشند (۷۲۰x۴۸۰ برای NTSC و ۷۲۰x۵۷۶ برای PAL) و معمولاً با آن یکسان هستند. برخی از دستگاه‌های پخش DVD ترجیح می‌دهند ارتفاع فریم‌های زیرنویس ۲ یا ۴ پیکسل کوچکتر باشد. در صورت حذف، عرض فیلم پیش‌فرض ۷۲۰ و ارتفاع آن ۲ پیکسل کمتر از ارتفاع فریم ویدیو خواهد بود.

مشخصهٔ aspect به شما امکان می‌دهد مشخص کنید که نسبت تصویر ویدیو 16:9 (عریض) است یا 4:3. این مشخصه همراه با قالب ویدیو برای تنظیم رندر متن استفاده می‌شود تا اطمینان حاصل شود که بدون اعوجاج نمایش می‌یابد.

گزینهٔ force به شما امکان می‌دهد نمایش زیرنویس را صرف‌نظر از اینکه کاربر زیرنویس‌ها را فعال کرده باشد یا خیر، اجباری کنید.

رنگ‌ها برای شفافیت تصویر، پر کردن متن و حاشیه‌ها را می‌توان به روش‌های مختلفی تعیین کرد:

•
به صورت یک نام رنگ، مثلاً «green». می‌توانید از بیشتر نام‌های رنگ فهرست‌شده در http://www.imagemagick.org/script/color.php استفاده کنید.
•
به صورت یک رشتهٔ هگزادسیمال همراه با پیشوند «#»، شبیه به قالب HTML، مثلاً «#FF8080». تعداد ارقام باید مضربی از ۳ باشد؛ گروه اول مؤلفهٔ قرمز، گروه دوم سبز و سومی آبی را مشخص می‌کند.
•
به صورت نام یک فضای رنگی (color space)، به دنبال آن یک تا چهار مقدار مؤلفه درون پرانتز، مثلاً «hsv(120, 50%, 90%)».

فضاهای رنگی معتبر عبارتند از: «gray» (۱ مؤلفه)، «graya» (۲ مؤلفه)، «hsl» (۳ مؤلفه)، «hsla» (۴ مؤلفه)، «hsv» (۳ مؤلفه)، «hsva» (۴ مؤلفه)، «rgb» (۳ مؤلفه) و «rgba» (۴ مؤلفه). هر مؤلفه را می‌توان به صورت درصدی از حداکثر مقدار همراه با پسوند «%»، یا یک مقدار مطلق در محدودهٔ 0-360 برای رنگ‌ها (فام / hue)، و 0-255 برای بقیه مشخص کرد. برای نام‌های فضای رنگی که به «a» ختم می‌شوند، آخرین مؤلفه مقدار آلفا (شفافیت) است.

توجه داشته باشید که مقادیر آلفا برای مشخصهٔ «transparent» در برچسب <spu> در بالا بی‌معنی هستند. <marc.leeman@gmail.com> MarcLeeman2003Marc Leeman

Fri Dec 30 19:47:26 CET 2005