مبدل SUB به JSON

زیرنویس‌های SUB را فوری به JSON در مرورگر تبدیل کنید.

پذیرفتن
SUB
خروجیJSON

فایل زیرنویس خود را اینجا رها کنید

یا برای مرور کلیک کنید (چندین فایل پشتیبانی می‌شود)

پشتیبانی‌شده: SUB

زیرنویس‌های تبدیل‌شده شما اینجا نمایش داده می‌شوند.

درباره تبدیل SUB به JSON

تبدیل فایل SUB (.sub) به JSON زیرنویس‌های شماره‌گذاری‌شدهٔ MicroDVD را به داده‌های ساختار‌یافتهٔ ساده با تایم‌استمپ‌های میلی‌ثانیه واقعی تبدیل می‌کند، هر cue به یک شیء JSON تبدیل می‌شود که اسکریپت یا پخش‌کننده شما می‌تواند بدون انجام ریاضیات فریم‌به‌زمان خود مصرف کند.

MicroDVD (SUB) چیست؟

MicroDVD (.sub) یک فرمت زیرنویس مبتنی بر فریم است که هر خط را بر اساس شماره فریم به‌جای زمان ساعت زمان‌بندی می‌کند. این فرمت با پخش‌کنندگان دسکتاپ و DVD قدیمی‌تر رایج است.

صادرات JSON زیرنویس چیست؟

JSON (.json) یک فرمت داده‌ای ساختاریافته و قابل خواندن ماشین است، نه یک فرمت زیرنویسی که هر پخش‌کننده رسانه‌ای بخواند، بلکه فرمتی که توسعه‌دهندگان و خط‌لوله‌های داده واقعاً می‌خواهند. هر cue به یک شی تبدیل می‌شود با شاخص، کدهای زمانی شروع/پایان در هر دو فرمت قابل خواندن برای انسان (HH:MM:SS,mmm) و فرمت خام میلی‌ثانیه، و متن cue با برچسب‌های سبک درون‌خطی حذف‌شده. این صادرات برای زمانی است که یک پخش‌کننده سفارشی می‌سازید، یک ابزار بررسی زیرنویس تغذیه می‌کنید یا کپشن‌ها را به‌جای باز کردن آن‌ها در یک برنامه ویدیویی به‌صورت برنامه‌ای پردازش می‌کنید.

درباره تبدیل SUB به JSON

  • یک شیء برای هر cue: هر خط MicroDVD {startFrame}{endFrame}text به یک شیء JSON با فیلدهای صریح index، start/end کد‌زمانی و text تبدیل می‌شود.
  • شماره‌های فریم با استفاده از نرخ فریم تبدیل می‌شوند: SUB زمان‌بندی را به‌عنوان شمارش فریم ذخیره می‌کند، نه زمان، بنابراین هر فریم بر یک مقدار FPS تقسیم می‌شود تا میلی‌ثانیه به‌دست آید. اگر خط اول فایل یک نشانگر FPS حمل کند ({1}{1}25)، آن نرخ به‌طور خودکار تشخیص داده شده و استفاده می‌شود؛ در غیر این صورت مبدل پیش‌فرض 23.976 fps (نرخ فیلم NTSC استاندارد) را فرض می‌کند، اگر فایل شما از نرخ دیگری استفاده می‌کند قبل از تبدیل FPS منبع متفاوتی را انتخاب کنید (25 fps برای PAL رایج است).
  • جداکننده‌های خط لوله به خط‌شکنی‌های واقعی تبدیل می‌شوند: MicroDVD از | برای جداسازی خط‌ها در یک cue استفاده می‌کند (مثلاً Hello|world)؛ فیلد text JSON این را به‌عنوان یک خط‌شکنی واقعی (\n) بین دو خط نگه می‌دارد.
  • برچسب‌های قالب‌بندی MicroDVD حذف‌شده‌اند: نشانه‌گذاری استایل درون‌خطی در منبع حذف می‌شود، فقط متن ساده با خط‌شکنی‌های مشتق‌شده از لوله در JSON باقی می‌ماند.

کدهای زمانی به دقت زمان‌بندی JSON تبدیل می‌شوند بدون از دست رفتن هم‌زمانی.

آنچه از دست می‌دهید در مقابل آنچه به دست می‌آورید

آنچه در تبدیل از دست می‌رود

  • زمان‌بندی شماره فریم (مرتبط با نرخ فریم ویدیو)

آنچه در تبدیل به دست می‌آید

  • خروجی ساختاریافته و قابل تجزیه‌ای که هر زبان برنامه‌نویسی می‌تواند بدون نوشتن یک تجزیه‌کننده زیرنویس مصرف کند
  • یک شی برای هر cue با فیلدهای شاخص/شروع/پایان/متن صریح، بدون فرمت مبتنی بر خط برای تجزیه
  • کدهای زمانی دقیق میلی‌ثانیه در کنار کدهای زمانی قابل خواندن برای انسان، آماده برای پخش‌کنندگان سفارشی و خط‌لوله‌های داده

زمان تبدیل SUB به JSON

خط‌لوله‌های داده و تجزیه

داده‌های زمان‌بندی و متن cue را به یک اسکریپت، دفترچه یا خط‌لوله ETL تغذیه کنید بدون نوشتن یک تجزیه‌کننده فرمت زیرنویس ابتدا.

پخش‌کنندگان ویدیویی سفارشی

داده‌های cue ساختاریافته را مستقیماً در یک پخش‌کننده یا رابط کپشن ساخته‌شده سفارشی که JSON را انتظار می‌رود بارگذاری کنید، نه یک فایل زیرنویس.

ابزارهای بررسی و QA

داده‌های cue را در یک داشبورد بررسی، ابزار QA ترجمه یا بررسی کیفیت زیرنویس خودکار تغذیه کنید.

سؤالات متکرر

آیا می‌توانم خروجی JSON را دوباره به فایل SUB تبدیل کنم؟

نه با این ابزار: صادرات JSON یک‌طرفه است. این برای تغذیهٔ داده‌های cue به اسکریپت‌ها، پخش‌کننده‌های سفارشی یا ابزار بررسی است، نه به‌عنوان یک فرمت زیرنویس قابل‌بازگشت. اگر نیاز دارید فایل اصلی .sub خود را نگه دارید.

چرا تایم‌استمپ‌های JSON برای فایل SUB من غلط به نظر می‌رسند؟

فایل‌های .sub MicroDVD شماره فریم را ذخیره می‌کنند، نه زمان، تبدیل آن‌ها به میلی‌ثانیه نیاز به نرخ فریم صحیح دارد. اگر فایل شما نشانگر FPS ندارد در خط اول، این ابزار پیش‌فرض 23.976 fps را فرض می‌کند. اگر ویدیوی منبع شما در واقع با 25، 24 یا 29.97 fps اجرا می‌شود، قبل از تبدیل آن نرخ را انتخاب کنید یا تایم‌استمپ‌های JSON drift خواهند کرد.

چه اتفاقی برای کاراکترهای <code class="bg-gray-100 px-1 rounded text-sm">|</code> در فایل SUB من می‌افتد؟

MicroDVD از | برای علامت‌گذاری شکستن خط در یک cue واحد استفاده می‌کند. در خروجی JSON، هر | به یک خط‌شکنی واقعی در فیلد text آن cue تبدیل می‌شود، بنابراین cue‌های چند‌خطی به‌عنوان چندین خط حفظ می‌شوند، نه کاراکترهای لوله واقعی.

نکات برای تبدیل SUB به JSON

صادرات JSON یک‌طرفه است: هیچ مبدل JSON-به-SUB وجود ندارد، زیرا JSON در اینجا یک فرمت تبادل داده برای اسکریپت‌ها و خط‌لوله‌ها است، نه یک فرمت زیرنویس که هیچ پخش‌کننده‌ای آن را دوباره می‌خواند.

قبل از تبدیل نرخ فریم را بدانید: اگر تایم‌استمپ‌های حاصل غلط به نظر می‌رسند، فایل شما احتمالاً نشانگر FPS ندارد و از نرخ متفاوتی استفاده می‌کند، نرخ فریم ویدیوی منبع را با VLC (Tools → Media Information → Codec Details) یا MediaInfo بررسی کنید و قبل از تبدیل آن را انتخاب کنید.

برای ریاضیات زمان‌بندی برنامه‌ای از فیلدهای startMs/endMs استفاده کنید به‌جای اینکه میلی‌ثانیه‌ها را از شماره‌های فریم منبع خود دوباره محاسبه کنید.