ساختار و ویژگیهای قالبهای زیرنویس SRT و VTT
زیرنویسهای متنی به طور معمول در یکی از دو قالب استاندارد SRT (SubRip Subtitle) یا VTT (WebVTT) ذخیره میشوند. هر دو قالب از کدهای زمانی برای تعیین دقیق لحظه آغاز و پایان نمایش هر بخش از متن استفاده میکنند، اما تفاوتهای ساختاری مشخصی با یکدیگر دارند.
قالب SRT یک ساختار ساده و مبتنی بر متن دارد که در آن هر بخش زیرنویس (Cue) شامل سه بخش اصلی است: شماره ترتیب بخش، کدهای زمانی آغاز و پایان که با نماد --> از هم جدا میشوند، و متن زیرنویس. کدهای زمانی در قالب SRT به صورت HH:MM:SS,mmm (ساعت:دقیقه:ثانیه,میلیثانیه) نوشته میشوند.
قالب VTT که برای پخش ویدیو در وب توسعه یافته است، با عبارت WEBVTT در اولین خط فایل آغاز میشود. این قالب علاوه بر پشتیبانی از کدهای زمانی با فرمت HH:MM:SS.mmm (که در آن از نقطه به جای ویرگول برای جدا کردن میلیثانیه استفاده میشود)، امکاناتی مانند تنظیمات موقعیت متن، سبکهای نگارش (Styles)، ناحیهها (Regions) و یادداشتها را نیز فراهم میکند.
هنگام پردازش و جابهجایی زمان در این فایلها، حفظ یکپارچگی ساختار اهمیت بالایی دارد. ابزار جابهجایی زمان زیرنویس به گونهای طراحی شده است که تمام شناسهها، تنظیمات، یادداشتها، سبکها، ناحیهها، پایان خطها و متن اصلی زیرنویس را بدون هیچ تغییری حفظ کرده و تنها مقادیر عددی کدهای زمانی را تغییر میدهد.
اهمیت هماهنگی زمانبندی در محتوای ویدیویی
هماهنگی دقیق میان صدا، تصویر و متن زیرنویس یکی از عوامل کلیدی در کیفیت تجربه کاربری برنامههای آموزشی، فیلمها و محتوای چندرسانهای است. ناهماهنگی حتی به اندازه چند دهم ثانیه میتواند تمرکز بیننده را مختل کند. این مشکل معمولاً به دلایل مختلفی رخ میدهد:
- تفاوت در نسخه ویدیو (مانند وجود آگهی یا مقدمه در ابتدای یک نسخه خاص).
- تفاوت در نرخ فریم (Frame Rate) ویدیوهای مختلف که موجب جابهجایی زمان شروع میشود.
- تأخیرهای ناشی از برش یا ویرایش مجدد فایل ویدیویی.
در این شرایط، اگر کل متن زیرنویس نسبت به ویدیو دارای یک تأخیر یا تقدم ثابت باشد، میتوان با اعمال یک جابهجایی زمانی یکنواخت (Time Shift) روی تمام بخشها، هماهنگی کامل را برقرار کرد.
روشهای تنظیم زمان با ثانیه و کد زمانی
برای جابهجایی زمان زیرنویسها، دو روش استاندارد برای وارد کردن مقدار جابهجایی وجود دارد:
۱. حالت ثانیه
در این حالت، مقدار جابهجایی به صورت یک عدد اعشاری وارد میشود. مقادیر مثبت موجب دیرتر ظاهر شدن زیرنویسها (تأخیر) و مقادیر منفی موجب زودتر ظاهر شدن آنها (تقدم) میشوند. به عنوان مثال:
- وارد کردن
2.5تمام زیرنویسها را به اندازه ۲٫۵ ثانیه به جلو میبرد. - وارد کردن
-0.75تمام زیرنویسها را به اندازه ۰٫۷۵ ثانیه به عقب میکشد.
۲. حالت کد زمانی
در این حالت، مقدار جابهجایی دقیقاً بر اساس قالب استاندارد ساعت، دقیقه، ثانیه و میلیثانیه به صورت H:MM:SS.mmm مشخص میشود. این روش برای مواردی که نیاز به جابهجاییهای طولانیتر و دقیقتر بر اساس زمانسنجی ویدیو وجود دارد، مناسب است. به عنوان مثال:
- مقدار
-00:00:02.500زمان نمایش تمام بخشها را دقیقاً ۲ ثانیه و ۵۰۰ میلیثانیه جلو میاندازد.
محدودیتهای جابهجایی ثابت در برابر ناهماهنگی تدریجی
استفاده از ابزار جابهجایی زمان ثابت تنها زمانی مؤثر است که اختلاف زمانی میان زیرنویس و ویدیو در سراسر فایل یکسان و ثابت باشد.
در برخی موارد، زیرنویس دچار پدیده «انحراف زمانی» (Time Drift) میشود. در این حالت، زیرنویس در ابتدای ویدیو کاملاً هماهنگ است، اما هر چه ویدیو جلوتر میرود، فاصله زمانی میان صدا و متن بیشتر میشود. این مشکل معمولاً ناشی از تفاوت در نرخ فریم ویدیو (مثلاً ۲۳٫۹۷۶ فریم در ثانیه در مقابل ۲۵ فریم در ثانیه) است. جابهجایی ثابت نمیتواند این نوع ناهماهنگی تدریجی را برطرف کند، زیرا در این وضعیت، نرخ زمانبندی کل فایل باید تغییر کند یا بخشهای مختلف به صورت جداگانه ویرایش شوند.
قوانین پردازش، اعتبارسنجی و مدیریت خطاها
این ابزار برای اطمینان از صحت عملکرد و جلوگیری از خراب شدن فایل خروجی، قوانین سختگیرانهای را برای اعتبارسنجی ساختار زیرنویس اعمال میکند:
- محدودیت حجم و نویسه: حداکثر حجم فایل ورودی برای بارگذاری ۲ مگابایت است. همچنین متنهای کپی شده نباید از حد مجاز تعداد نویسه فراتر روند.
- کدگذاری استاندارد: فایل ورودی باید با کدگذاری UTF-8 ذخیره شده باشد تا نویسههای فارسی و نمادها به درستی پردازش شوند.
- ترتیب زمانی: ابزار بررسی میکند که زمان پایان هر بخش حتماً بعد از زمان شروع آن باشد. همچنین زمان شروع هر بخش نباید قبل از زمان شروع بخش قبلی خود باشد (رعایت ترتیب صعودی زمانها).
- برچسبهای درونخطی VTT: در فایلهای WebVTT، برچسبهای زمانی درونخطی باید در محدوده همان بخش قرار داشته و دارای ترتیب صعودی باشند.
- محدودیت مرز صفر: هیچ جابهجایی منفی نباید زمان شروع هیچکدام از بخشها را به قبل از صفر (شروع ویدیو) انتقال دهد. در صورت بروز این حالت، عملیات متوقف شده و خطای مشخصی نمایش داده میشود تا از حذف یا خراب شدن بخشهای ابتدایی جلوگیری شود.
حریم خصوصی و امنیت دادهها
هنگام استفاده از این ابزار، تمامی فرآیندهای پردازش، تحلیل ساختار و اعمال جابهجایی زمانی به طور کامل درون مرورگر وب کاربر انجام میشود. هیچ فایلی به سرورهای خارجی بارگذاری نشده و هیچ اطلاعاتی ذخیره نمیگردد. این ویژگی تضمین میکند که محتوای زیرنویسهای شما کاملاً محرمانه باقی میماند.
پرسشهای متداول
کدام فایلهای SRT و VTT پشتیبانی میشوند؟
از فایلهای SRT با کدگذاری UTF-8 و بخشهای شمارهدار یا فایلهای WebVTT که با WEBVTT آغاز میشوند استفاده کنید. شناسهها، تنظیمات، یادداشتها، سبکها، ناحیهها، پایان خطها و متن زیرنویس همانطور که نوشته شدهاند حفظ میشوند.
اگر جابهجایی منفی زمان را به پیش از صفر ببرد چه میشود؟
بهجای بریدن یا حذف بخشها، جابهجایی متوقف میشود. به این ترتیب مدت هر بخش و فاصله درخواستی دقیق میماند؛ مقدار پیشانداختن کمتری وارد کنید و دوباره امتحان کنید.
آیا جابهجایی ثابت زیرنویسی را که بهتدریج ناهماهنگتر میشود اصلاح میکند؟
خیر. جابهجایی ثابت فقط تأخیر یا تقدم یکسان را در کل فایل اصلاح میکند. اگر اختلاف هنگام پخش بیشتر شود، باید نرخ زمانبندی یا بخشهای جداگانه زیرنویس را به روش دیگری ویرایش کنید.
حداکثر حجم فایل قابل پشتیبانی چقدر است؟
شما میتوانید فایلهای زیرنویس SRT یا VTT را تا حداکثر حجم ۲ مگابایت برای پردازش در ابزار بارگذاری کنید.