.TH OGMMERGE "1" "نوامبر 2004" "ogmmerge v1.5" "دستورهای کاربری" .SH "نام (NAME)" ogmmerge \- ادغام جریان‌های چندرسانه‌ای در یک فایل OGG/OGM .SH "خلاصه دستور (SYNOPSIS)" .B ogmmerge [\fIگزینه‌های سراسری\fR] \-o \fIout\fR [\fIگزینه‌ها\fR] [[\fIگزینه‌ها\fR] ...] .SH "توضیحات (DESCRIPTION)" .LP این برنامه ورودی را از چند فایل رسانه‌ای گرفته و جریان‌های آن‌ها را (همه یا فقط انتخابی از آن‌ها) در یک OGM ادغام می‌کند. این ابزار پیش‌تر با نام 'oggmerge' شناخته می‌شد و بر پایه ماژول CVS با نام 'oggmerge' از مخزن Xiph توسعه یافته است .UR http://www.xiph.org () .UE .LP گزینه‌های عمومی: .TP \fB\-v\fR, \fB\-\-verbose\fR افزایش پرگویی (جزئیات خروجی). .TP \fB\-q\fR, \fB\-\-quiet\fR بی‌صدا کردن خروجی وضعیت. .TP \fB\-o\fR, \fB\-\-output\fR \fIout\fR نوشتن در فایل '\fIout\fR'. .LP گزینه‌هایی که می‌توان برای هر فایل ورودی استفاده کرد: .TP \fB\-a\fR, \fB\-\-astreams\fR <\fIn\fR,\fIm\fR,...> رونوشت از \fIn\fR-امین جریان صوتی، نه جریان با شماره سریال \fIn\fR. پیش‌فرض: رونوشت از تمام جریان‌های صوتی. .TP \fB\-d\fR, \fB\-\-vstreams\fR <\fIn\fR,\fIm\fR,...> رونوشت از \fIn\fR-امین جریان ویدئویی، نه جریان با شماره سریال \fIn\fR. پیش‌فرض: رونوشت از تمام جریان‌های ویدئویی. .TP \fB\-t\fR, \fB\-\-tstreams\fR <\fIn\fR,\fIm\fR,...> رونوشت از \fIn\fR-امین جریان متنی، نه جریان با شماره سریال \fIn\fR. پیش‌فرض: رونوشت از تمام جریان‌های متنی. .TP \fB\-A\fR, \fB\-\-noaudio\fR هیچ جریان صوتی از این فایل رونوشت نشود. .TP \fB\-D\fR, \fB\-\-novideo\fR هیچ جریان ویدئویی از این فایل رونوشت نشود. .TP \fB\-T\fR, \fB\-\-notext\fR هیچ جریان متنی از این فایل رونوشت نشود. .TP \fB\-s\fR, \fB\-\-sync\fR <\fId\fR[,\fIo\fR[/\fIp\fR]]> همگام‌سازی دستی، تاخیر در جریان صوتی به میزان \fId\fR میلی‌ثانیه. .br \fId\fR > 0: پر کردن با نمونه‌های بی‌صدا. .br \fId\fR < 0: حذف نمونه‌ها از ابتدا. .br \fIo\fR/\fIp\fR: تنظیم برچسب‌های زمانی با نسبت \fIo\fR/\fIp\fR برای تصحیح انحراف خطی. در صورت عدم ذکر، مقدار پیش‌فرض \fIp\fR برابر 1000 است. هر دو مقدار \fIo\fR و \fIp\fR می‌توانند اعداد ممیز شناور باشند. .br پیش‌فرض‌ها: بدون تصحیح دستی همگام‌سازی (که همانند \fId\fR = 0 و \fIo\fR/\fIp\fR = 1.0 است). .TP \fB\-r\fR, \fB\-\-range\fR <\fIstart\fR-\fIend\fR> فقط از \fIstart\fR تا \fIend\fR پردازش شود. هر دو مقدار به قالب '\fIHH:MM:SS.mmm\fR' یا '\fISS.mmm\fR' هستند، مانند '00:01:00.500' یا '60.500'. اگر یکی از مقادیر \fIstart\fR یا \fIend\fR ذکر نشود، به‌ترتیب مقدار پیش‌فرض 0 یا انتهای فایل در نظر گرفته می‌شود. .br اگر می‌خواهید فایلی را به بخش‌های کوچک‌تر تقسیم کنید، اکیداً پیشنهاد می‌شود از \fBogmsplit(1)\fR استفاده کنید چرا که عملکرد بسیار بهتری نسبت به استفاده از گزینه \fB-r\fR ارائه می‌دهد. .TP \fB\-c\fR, \fB\-\-comment\fR '\fIA=B#C=D\fR' یا '\fI@filename\fR' تنظیم فیلدهای توضیحات اضافی برای جریان‌ها. مقادیر معنادار می‌تواند \&'\fILANGUAGE=English\fR' یا '\fITITLE=Ally McBeal\fR' باشد. اگر پارامتر با '@' شروع شود، توضیحات از فایلی با همان نام بدون علامت '@' ابتدایی خوانده خواهند شد. گزینه \fB\-c\fR می‌تواند چندین بار برای هر فایل مشخص شود. تمام توضیحات به هم الحاق خواهند شد. .TP \fB\-f\fR, \fB\-\-fourcc\fR <\fIFourCC\fR> اجبار کردن FourCC به مقدار مشخص‌شده. فقط برای جریان‌های ویدئویی کار می‌کند. توجه داشته باشید که نمی‌توانید صرفاً با یک ویرایشگر هگز FourCC را دستی تغییر دهید، زیرا قالب فایل OGG از چکسام استفاده می‌کند که پس از چنین تغییری نادرست خواهد بود. .TP \fB\-\-omit\-empty\-packets\fR به‌طور معمول، هنگامی که یک مدخل زیرنویس باید حذف شود، یک بسته خالی ایجاد و با برچسب زمانی مناسب درج می‌شود. با این گزینه، این بسته‌های خالی به‌طور کامل نادیده گرفته می‌شوند. .TP \fB\-\-old\-headers\fR فرض می‌کند که فایل ورودی با نسخه‌ای قدیمی‌تر از \fBogmmerge\fR (کمتر از 1.1) ایجاد شده است. این گزینه ممکن است زمانی لازم باشد که \fRogmmerge\fR نتواند چنین فایلی را به‌درستی بخواند. .TP \fB\-\-nav\-seek\fR <\fIfilename\fR> استفاده از یک فایل نمایه خارجی AVI همان‌طور که توسط \fBaviindex\fR از بسته transcode تولید شده است. می‌توان در صورتی که یک فایل AVI نمایه خرابی داشته باشد از آن استفاده کرد. .LP سایر گزینه‌ها: .TP \fB\-l\fR, \fB\-\-list\-types\fR فهرست کردن انواع فایل‌های ورودی پشتیبانی‌شده. .TP \fB\-h\fR, \fB\-\-help\fR نمایش اطلاعات نحوه استفاده. .TP \fB\-V\fR, \fB\-\-version\fR نمایش اطلاعات نسخه. .SH "نحوه استفاده (USAGE)" .LP برای هر فایل، کاربر می‌تواند انتخاب کند که \fBogmmerge\fR کدام تراک‌ها را بردارد. همه آن‌ها در فایلی که با '-o' مشخص شده قرار می‌گیرند. فهرستی از قالب‌های منبع شناخته‌شده (و پشتیبانی‌شده) را می‌توان با گزینه '-l' به دست آورد. .SH "مثال‌ها (EXAMPLES)" .LP فرض کنید فایلی به نام \fIMyMovie.avi\fP و تراک صوتی آن را در یک فایل جداگانه، مثلاً \fIMyMovie.wav\fP در اختیار دارید. ابتدا می‌خواهید صدا را به OGG تبدیل (انکود) کنید: .LP $ \fBoggenc -q4 -oMyMovie.ogg MyMovie.wav\fP .LP پس از چند دقیقه می‌توانید تصویر و صدا را ادغام کنید: .LP $ \fBogmmerge -o MyMovie-with-sound.ogm MyMovie.avi MyMovie.ogg\fP .LP اگر AVI شما از قبل حاوی یک تراک صوتی باشد، آن نیز رونوشت خواهد شد (در صورتی که \fBogmmerge\fR از قالب صوتی آن پشتیبانی کند). برای جلوگیری از این کار، کافی است این دستور را اجرا کنید: .LP $ \fBogmmerge -o MyMovie-with-sound.ogm -A MyMovie.avi MyMovie.ogg\fP .LP پس از اندکی بررسی، تصمیم می‌گیرید یک تراک صوتی دیگر، مثلاً توضیحات کارگردان یا زبانی دیگر را در \fIMyMovie-add-audio.wav\fP استخراج کنید. آن را دوباره انکود کرده و با فایل دیگر ادغام کنید: .LP $ \fBoggenc -q4 -oMyMovie-add-audio.ogg MyMovie-add-audio.wav\fP .br $ \fBogmmerge -o MM-complete.ogm MyMovie-with-sound.ogm MyMovie-add-audio.ogg\fP .LP همین نتیجه را می‌توان با دستور زیر نیز به دست آورد: .LP $ \fBogmmerge -o MM-complete.ogm -A MyMovie.avi MyMovie.ogg \\\fP .br \fBMyMovie-add-audio.ogg\fP .LP اکنون mplayer را اجرا کرده و لذت ببرید. اگر چندین تراک صوتی (یا حتی تراک ویدئویی) دارید، می‌توانید با پارامترهای \&'\fB-vid\fP' و '\fB-aid\fP' به mplayer بگویید کدام تراک را پخش کند. این پارامترها مبتنی بر صفر هستند و تفاوتی بین ویدئو و صوت قائل نمی‌شوند. .LP اگر نیاز دارید یک تراک صوتی همگام شود، می‌توانید به‌سادگی این کار را با دستور زیر انجام دهید: .LP $ \fBogmmerge -o goodsync.ogm -A source.avi -s 200 outofsync.ogg\fP .LP این دستور ۲۰۰ میلی‌ثانیه سکوت در ابتدای تراک‌های صوتی برگرفته از \fIoutofsync.ogg\fP اضافه می‌کند. گزینه \fB-s\fP همیشه برای تمام تراک‌های صوتی در یک فایل منبع اعمال می‌شود. اگر می‌خواهید \fB-s\fP را فقط برای یک تراک خاص اعمال کنید، همان فایل منبع را بیش از یک بار وارد کرده و \fB-a\fP و \fB-s\fP را متناسب با آن اضافه کنید. .LP برخی فیلم‌ها در ابتدا به‌درستی همگام هستند اما به‌مرور زمان از همگامی خارج می‌شوند. برای این گونه فیلم‌ها می‌توانید ضریب تأخیری را مشخص کنید که بر تمام برچسب‌های زمانی اعمال شود - هیچ داده‌ای افزوده یا کاسته نمی‌شود. بنابراین اگر این ضریب را بیش از حد بزرگ یا بیش از حد کوچک انتخاب کنید، نتایج نامطلوبی دریافت خواهید کرد. به عنوان مثال، قسمتی که من تبدیل کردم در انتهای فیلم که ۷۷۳۴۰ فریم طول داشت، ۰.۲ ثانیه ناهماهنگ بود. در نرخ ۲۹.۹۷ فریم بر ثانیه، ۰.۲ ثانیه تقریباً معادل ۶ فریم است. بنابراین انجام دادم: .LP $ \fBogmmerge -o goodsync.ogm -s 0,77346/77340 outofsync.ogm\fP .LP نتیجه عالی بود. .LP گزینه‌های همگام‌سازی را می‌توان به همین ترتیب برای زیرنویس‌ها نیز به کار برد. .LP برای زیرنویس‌های متنی می‌توانید از برخی نرم‌افزارهای ویندوز (مانند \fBSubRipper\fR) یا بسته \fBsubrip\fR موجود در سورس‌های \fBtranscode(1)\fR (در \fBcontrib/subrip\fR) استفاده کنید. روند کلی به این صورت است: .TP 1. استخراج یک جریان زیرنویس خام از منبع: .br $ \fBtccat -i /path/to/copied/dvd/ -T 1 -L | \\ .br tcextract -x ps1 -t vob -a 0x20 | \\ .br subtitle2pgm -o mymovie\fP .TP 2. تبدیل تصاویر PGM حاصل به متن با \fBgocr\fP: .br $ \fBpgm2txt mymovie\fP .TP 3. غلط‌یابی املایی فایل‌های متنی حاصل: .br $ \fBispell -d american *txt\fP .TP 4. تبدیل فایل‌های متنی به یک فایل SRT: .br $ \fBsrttool -s -w -i mymovie.srtx -o mymovie.srt\fP .LP فایل حاصل می‌تواند به‌عنوان فایل ورودی دیگری برای \fBogmmerge\fR استفاده شود: .LP $ \fBogmmerge -o mymovie.ogm -c 'TITLE=My Movie' mymovie.avi \\ .br -c LANGUAGE=English mymovie.ogg -c LANGUAGE=English mymovie.srt\fP .SH "اندازه فایل (FILE SIZE)" .LP استفاده از OGG به عنوان قالب ظرف (container) مقداری سربار ایجاد می‌کند - هر بسته OGG دارای یک هدر است، و هر بسته OGG می‌تواند در یک یا چند صفحه OGG جای گیرد، که خود آن‌ها نیز مجدداً حاوی هدر هستند. آزمایش‌های متعدد نشان می‌دهد که این سربار از سربار ایجادشده توسط AVI بیشتر است (در مقایسه فایل‌های فقط ویدئویی و فایل‌های حاوی ویدئو و صدای MP3). .LP سربار به‌صورت \fIاندازه فایل\fR \- \fIاندازه جریان خام\fR تعریف می‌شود. ابزار \fBmencoder\fR اندازه جریان خام را پس از انکود چاپ می‌کند، بنابراین می‌توانید این اطلاعات را به‌سادگی به دست آورید. .LP در اغلب موارد می‌خواهید سربار را پیش از انکود محاسبه کنید تا بیت‌ریت را بر همان اساس تنظیم نمایید. متأسفانه سربار به ازای هر فریم ثابت نیست \- تنها درصد آن ثابت است. این درصد به‌صورت 100 * (\fIاندازه OGG\fR \- \fIاندازه خام\fR) / \fIاندازه خام\fR محاسبه می‌شود و به‌نظر می‌رسد مقداری بین \fB1.1%\fR و \fB1.2%\fR باشد. این مقدار به تعداد جریان‌ها و انواع جریان‌های به‌کاررفته بستگی دارد. .LP خود \fIاندازه خام\fR را می‌توان به‌صورت تقریبی محاسبه کرد: .nf \fIframes\fR * \fIvbitrate\fR \fIraw size\fR = ( ----------------- + \fIlength\fR * \fIabitrate\fR ) / 8 * 1000 * 1024 \fIframes per sec\fR .fi .br با این فرض که \fIvbitrate\fR و \fIabitrate\fR بر حسب kbit/s = 1000 bit/s داده شده‌اند، و \fIlength\fR بر حسب ثانیه است. .SH "نکات (NOTES)" .LP آنچه کار می‌کند: .TP * AVI به‌عنوان منبع ویدئو و صدا (در حال حاضر تنها تراک‌های صوتی خام PCM، MP3 و AC3) .TP * OGG به‌عنوان منبع برای ویدئو، صدا (صوت Vorbis، صدای خام PCM، MP3 و AC3) و جریان‌های متنی (زیرنویس‌ها). .TP * WAV به‌عنوان منبع صوتی .TP * فایل‌های صوتی MP3 .TP * فایل‌های صوتی AC3 .TP * انتخاب تراک .TP * همگام‌سازی دستی صدا با افزودن سکوت/حذف بسته‌ها برای صدای Vorbis و برای جریان‌های متنی با تنظیم نقطه شروع و مدت‌زمان. .TP * همگام‌سازی دستی صدا برای صوت AC3 و MP3 با تکرار/حذف بسته‌ها در ابتدا. .TP * افزودن توضیحات کاربر به هدرهای توضیحات الزامی (تنها هدرها الزامی هستند؛ خود توضیحات الزامی نیستند.) .TP * زیرنویس‌های متنی را می‌توان از فایل‌های SRT (SubRipper / subrip) و MicroDVD خواند یا از سایر فایل‌های OGM دریافت کرد. .TP * صدای PCM، AC3 و MP3 اکنون در ویندوز و با MPlayer به‌خوبی کار می‌کنند. .TP * اطلاعات فصل‌ها که توسط \fBdvdxchap\fR تولید می‌شود پشتیبانی می‌شوند. .LP آنچه کار نمی‌کند: .TP * همگام‌سازی دستی صدا برای صدای PCM (به‌هر‌حال چه کسی به آن نیاز دارد؟) .LP قابلیت‌های برنامه‌ریزی‌شده: .TP * پشتیبانی از سایر قالب‌های زیرنویس .SH "فصل‌ها (CHAPTERS)" \fBogmmerge\fR از اطلاعات فصل‌ها که توسط \fBdvdxchap(1)\fR تولید می‌شود پشتیبانی می‌کند. قالب آن بسیار ساده است: .LP .nf CHAPTER01=HH:MM:SS.sss CHAPTER01NAME=the first chapter CHAPTER02=HH:MM:SS.sss CHAPTER02NAME=another chapter .fi .LP که در آن HH = ساعت، MM = دقیقه، SS = ثانیه و sss = میلی‌ثانیه است. .LP اطلاعات فصل‌ها در توضیحات جریان ویدئویی ذخیره می‌شود. بنابراین می‌توانید فصل‌ها را با \fI-c CHAPTER01=...\fR نیز مشخص کنید. استفاده از یک فایل فصل مزیتی دارد: اگر توضیحات جریان ویدئویی پیش‌تر حاوی اطلاعات فصل باشد و در خط فرمان نیز یک فایل اطلاعات فصل مشخص شده باشد، اطلاعات فصل پیشین به‌طور کامل جایگزین خواهد شد. .SH "جنبه‌های فنی (TECHNICAL ASPECTS)" .LP این بخش برای کاربران عادی مورد نیاز نیست. .LP \fBogmmerge\fP از سه بخش تشکیل شده است: .TP * دی‌مالتی‌پلکسرها (که خواننده یا reader نامیده می‌شوند) فایل‌های ورودی مشخص‌شده در خط فرمان را باز کرده و می‌خوانند و تراک‌های مشخصی را استخراج می‌کنند. .TP * بسته‌بندها (یا ماژول‌های خروجی / packetizers) داده‌ها را از دی‌مالتی‌پلکسر گرفته و آن‌ها را در صفحات OGG بسته‌بندی (کپسوله‌سازی) می‌کنند. این صفحات در صف‌ها ذخیره می‌شوند. .TP * برنامه اصلی از هر دی‌مالتی‌پلکسر شناخته‌شده درخواست می‌کند تا مقداری داده بخواند. سپس صفحه OGG با کوچک‌ترین برچسب زمانی را از تمام صف‌های بسته‌بند دریافت می‌کند. این صفحه در فایل خروجی نوشته می‌شود. .LP تعاریف عمومی کلاس‌ها برای خواننده‌ها و بسته‌بندها را می‌توان در \fBogmmerge.h\fP یافت. .LP حلقه اصلی انتظار دارد صف‌هایی که توسط بسته‌بندهای دی‌ماکسر مدیریت می‌شوند، پس از یک فراخوانی تابع \fBread()\fP دی‌ماکسر، دست‌کم با یک صفحه پر شده باشند. دی‌ماکسر باید مطمئن شود داده‌های کافی به هر یک از بسته‌بندهای مرتبط با آن منتقل می‌شود. نگاهی به \fBr_ogm.cpp\fP بیندازید. .LP یک ساختار محتمل می‌تواند به این شکل باشد: .LP .nf +-> p_video +-> r_avi -+ | +-> p_pcm | \fBogmmerge\fR -+-> r_ogm ---> p_vorbis | | +-> p_video | | +-> r_ogm -+-> p_vorbis | +-> p_vorbis .fi .LP یک منبع AVI با یک تراک ویدئو و یک تراک صوت، یک منبع OGG/OGM فقط با یک تراک Vorbis، و یک منبع OGG/OGM دیگر با یک تراک ویدئو و دو تراک Vorbis. .SH "نویسندگان (AUTHORS)" .I ogmmerge توسط Moritz Bunkus نوشته شده است. .SH "همچنین ببینید (SEE ALSO)" .BR ogmdemux (1), .BR ogmsplit (1), .BR ogminfo (1), .BR ogmcat (1), .BR dvdxchap (1) .SH WWW جدیدترین نسخه را همیشه می‌توان در این نشانی یافت: .UR http://www.bunkus.org/videotools/ogmtools .UE