عنوان:

‫معرفی برنامه‌ی Subtitle Tools


نویسنده: وحید نصیری
تاریخ: ۱۳۸۹/۰۹/۱۳ ۲۳:۰۰:۰۰
آدرس: www.dntips.ir

این روزها زیرنویس‌های فارسی فیلم‌های روز دنیا را راحت می‌شود در اینترنت یافت، اما مشکلات زیادی هم به همراه این نوع فایل‌ها وجود دارند:
- گاها با فیلم دریافت شده هماهنگ نیستند.
- عموما با فرمت windows-1256 تهیه می‌شوند که برای استفاده از آن‌ها در سیستم‌های مختلف بهتر است به UTF8 تبدیل شوند.
- اکثر برنامه‌های موجود برای کار با زیر نویس‌ها و ویرایش آن‌ها، درکی از یونیکد ندارند.
- عموما نیاز است جهت استفاده از آن‌ها در یک جمع، تعدادی از سطور آن‌ها را با حفظ شماره بندی فایل، حذف کرد!
و ...

به همین جهت نیاز به یک برنامه‌ی جمع و جور جهت کار با زیر نویس‌ها داشتم که نتیجه‌ی آن تهیه‌ی برنامه‌ی زیر شد:

الف) تغییر encoding فایل دریافتی به UTF-8
هنگام گشودن اکثر فایل‌های زیر نویس فارسی با تصویر زیر روبرو خواهید شد:



برای تبدیل آن به فرمت یونیکد تنها کافی است بر روی دکمه‌ی To UTF-8 کلیک کنید. در این حالت نتیجه به صورت زیر خواهد بود:



ب) هماهنگ سازی زیر نویس با فیلم دریافتی
ممکن است دیالوگ‌های زیر نویس دریافتی شما به اندازه‌ی مدت زمان خاصی، از دیالوگ‌های فیلم در حال پخش، عقب‌تر یا جلوتر باشند. در این حالت ابتدا باید این مدت زمان را با گوش فرا دادن به ابتدای فیلم و مقایسه‌ی آن با اولین شماره‌ی زیرنویس، پیدا کنید. مثلا پس از بررسی متوجه شده‌اید که به کلیه زمان‌های زیرنویس جاری باید 7 ثانیه اضافه گردد. اینکار را مطابق تصویر ذیل می‌توان انجام داد:



ج) یکی کردن زمان‌های دو زیر نویس با هم
گاهی از اوقات مشکلات زمانی یک زیرنویس وخیم‌تر از مورد ب است. به این معنا که شماره‌های مختلف آن، زمان‌های کاملا بی‌ربطی داشته و به صورت هماهنگ، قابل افزایش یا کاهش نیستند. در این حالت ابتدا زیر نویس مورد نظر را در برنامه باز کنید. سپس یک زیر نویس خوب انگلیسی هماهنگ با فیلم را نیز پیدا کنید و از طریق دکمه‌ی Merge times به برنامه معرفی نمائید. در این حالت به صورت خودکار زمان‌های صحیح از زیر نویس دوم به زیر نویس اول منتقل خواهند شد.

د) یکی کردن دو فایل زیر نویس با هم
ممکن است فیلم دریافتی تنها از یک فایل تشکیل شده باشد، اما شما فقط توانسته‌اید زیر نویس مرتبط با نگارش دو سی دی این فیلم را پیدا کنید. بنابراین نیاز است تا این دو فایل زیر نویس یکی شوند با این شرط که زمان‌های سی دی دوم از انتهای سی دی اول در فایل نهایی یکی شده‌ی تولیدی شروع گردد.
برای این منظور ابتدا فایل زیرنویس سی دی اول را در برنامه باز کرده و سپس به گزینه‌ی join files در برنامه مراجعه کنید. در اینجا ابتدا مسیر فایل زیرنویس سی دی 2 را مشخص نمائید. برنامه سعی خواهد کرد تا زمان آغاز قسمت دوم را بر اساس آخرین زمان سی دی اول و اولین زمان سی دی دوم حدس بزند و نمایش دهد. یا می‌توانید این مقدار پیش فرض را پذیرفته و بر روی دکمه‌ی join کلیک نمائید و یا امکان تغییر دستی آن هم میسر است.



ه) حذف و یا ویرایش ردیف‌ها
به دلایل نامشخصی اشخاصی که سعی در ترجمه‌ی زیرنویس‌ها می‌کنند عموما علاقمندند که به متن اصلی وفادار بمانند. به همین دلیل نیاز به جرح و تعدیل زیرنویس‌های تهیه شده برای نمایش در یک جمع خانوادگی وجود دارد. گزینه‌ی جستجوی موجود در بالای ردیف‌های زیرنویس باز شده در برنامه، امکان نمایش ردیف‌هایی را که حاوی متن وارد شده است، به صورت خودکار دارد.



در این حالت اگر نیاز است سطری حذف شود، آن‌را انتخاب نموده و بر روی دکمه‌ی Delete row کلیک نمائید. در این حالت علاوه بر حذف ردیف، کلیه شماره‌های موجود در زیر نویس نیز به صورت خودکار مجددا تولید و مرتب خواهند شد. (کلیک راست بر روی هر ردیف نیز این گزینه‌ را نمایش می‌دهد)
یا اگر مشغول به ویرایش متنی شدید، پس از ویرایش، کلیک کردن بر روی دکمه‌ی Save را فراموش نکنید (در حالت حذف نیازی به اینکار نیست).

ز) پیدا کردن زیرنویس یک فایل بر اساس امضای دیجیتال آن
سایت opensubtitles.org یک API را جهت پیدا کردن زیرنویسی مطابق با هش یک فایل ویدیویی ارائه داده است، که در برنامه‌ی جاری، کلاینتی برای آن تهیه شده است:



فقط کافی است فایل ویدیویی خود را در این قسمت انتخاب نمائید. برنامه هش فایل را محاسبه کرده و سپس با کمک سرویس XML-RPC سایت opensubtitles.org سعی در یافتن زیرنویس هماهنگ با آن خواهد کرد. در اینجا دیگر مهم نیست نام فایل انتخابی چیست؛ امضای دیجیتال آن مهم است. برای دریافت موارد مورد نظر، ابتدا آن‌ها را تیک زده و سپس بر روی دکمه‌ی دریافت کلیک کنید. کلیک راست بر روی ردیف مورد نظر نیز این امکان دریافت را لحاظ کرده است.
همچنین قسمتی هم برای آپلود زیرنویس به این سایت پیش بینی شده است (لطفا مصرف کننده‌ی صرف یا به قولی لیچر نباشید!)



در اینجا انتخاب فایل ویدیویی، فایل زیرنویس هماهنگ با آن و همچنین زبان زیر نویس الزامی است. از فایل ویدیویی جهت محاسبه‌ی هش آن برای یافتن ساده‌تر زیرنویس‌ها در دفعات آتی استفاده می‌گردد.

پیشنیاز استفاده از این برنامه، نصب دات نت فریم ورک 4 است که اگر از ویندوز 7 استفاده می‌کنید، جزو به روز رسانی‌های اختیاری آن است و در حالت کلی نسخه‌ی کامل 32 بیتی و 64 بیتی آن از این آدرس قابل دریافت است.


نظرات

  • مهمان در ۱۳۸۹/۰۹/۱۴ ۰۹:۰۰:۳۹
    میدونم که نیاز به تعریف نداریم اما عالی بود. ممنون.
  • مهمان در ۱۳۸۹/۰۹/۱۴ ۱۰:۲۷:۳۹
    با سلام و خسته نباشید
    بسیار عالی و زیبا کار کردین.
    امیدوارم همواره موفق باشید.
  • مهمان در ۱۳۸۹/۰۹/۱۴ ۱۳:۳۷:۳۰
    استاد واقعا دستتون در نکنه،وجود یک همچین نرم افزاری واقعا احساس می شد.فقط یک سوال میتونم بپرسم چرا با فریم ورک 4 نوشتید؟منظورم اینه آیا به کلاس یا کنترل خاصی یا ... نیاز داشتید و یا چون جز آخرین ورژن بود از این فریم ورک استفاده کردید؟
    ممنون.
  • وحید نصیری در ۱۳۸۹/۰۹/۱۴ ۱۳:۵۰:۲۵
    برای استفاده از بهبودهای ذاتی موجود در آن برای مثال در WPF4 وضوح نمایشی متون بسیار بهتر از نگارش‌های قبلی است: (+)
  • مهمان در ۱۳۸۹/۰۹/۱۴ ۲۳:۳۰:۲۱
    یه نفر هم پیشنهاد اصلاح متون حاوی فارسی-انگلیسی رو برای زیرنویس ها داده بود که یه برنامه کوچولو براش نوشتم.
    http://salarblog.wordpress.com/2010/04/18/correct-persian-english-text-to-display-in-left-to-right-direction/#comment-484

    دانلود برنامه:
    http://www.4shared.com/file/ET-QeiW7/PersianLeftToRightCorrection.html
  • وحید نصیری در ۱۳۸۹/۰۹/۱۴ ۲۳:۴۳:۰۶
    ممنون. نکته جالبی است.
  • مهمان در ۱۳۸۹/۰۹/۱۵ ۰۹:۰۴:۵۵
    سلام

    بنده برنامه شما رو با ذکر کامل منبع و اسم حضرت عالی در یک فروم معرفی کردم.

    پست بلافاصله ناپدید شد خودتان در جریان هستید؟
  • وحید نصیری در ۱۳۸۹/۰۹/۱۵ ۱۰:۲۱:۱۲
    سلام؛ خیر.
  • وحید نصیری در ۱۳۸۹/۰۹/۱۹ ۰۹:۵۱:۲۵
    یک Review از برنامه : (+)
  • وحید نصیری در ۱۳۸۹/۱۰/۱۶ ۱۹:۴۵:۲۲
    نسخه جدید برنامه در CodePlex قرار گرفت.
    تغییرات:
    - اضافه شدن امکان یکی کردن دیالوگ‌های دو فایل زیر نویس. برای مثال دو زیرنویس فارسی و انگلیسی را می‌خواهید یکی کنید.
  • مهمان در ۱۳۸۹/۱۲/۲۰ ۱۳:۵۶:۱۱
    سلام آقای وحید نصیری، منم وحید نصیری هستم لینک وبلاگ شما رو تو هفته نامه کلیک پیدا کردم.

    این شباهت اسم و فامیلی برام جالب بود گفتم یه عرض ادبی بکنم

    موفق باشی.
  • مهمان در ۱۳۸۹/۱۲/۲۱ ۱۰:۱۰:۲۳
    بی نظیری . دستت درد نکنه
  • مهمان در ۱۳۸۹/۱۲/۲۲ ۱۹:۲۰:۵۴
    اقا بسیار عالی از کلیک پیدات کردم البته عجیب اینه که فیلتر بود من با خیلی نرم افزار زیر نویس کار کردم و فیلم زیر نویس میکنم خیلی به دردم میخوره دستت طلا بهت افتخار میکنیم به عنوان همزبان واقعا که مغز ایرانی تکه منتظر نسخه های جدید ترش هستم خدا قوت
  • وحید نصیری در ۱۳۹۶/۰۱/۱۳ ۱۳:۳۲
    به روز رسانی
    نکته‌ی مطلب «تخمین مدت زمان خوانده شدن یک مطلب» به این برنامه اضافه شد (یکبار کلیک بر روی recalculate در نوار ابزار آن). کار آن تصحیح مدت زمان نمایش یک ردیف زیرنویس بر اساس مدت زمان خوانده شدن آن هست تا سریع، پیش از خوانده شدن آن، ردیف بعدی نمایش داده نشود و اگر نمایش داده شد، در بالا و یا ذیل آن توسط برنامه‌ی پخش کننده، برای مدتی باقی بماند (روش کار KMPlayer).