نحوه ساخت نرم افزار ویرایشگر زیرنویس
#1
سلام !

من میخواستم یه نرم افزار ویرایشگر زیرنویس واسه کامپیوتر بسازم اما وقتی بهش فک کردم به چند تا بم بست خوردم !


همون طور میدونین فایل srt ( فایل زیرنویس ) رو میشه با نوت پد ویندوز ویرایش کرد و چیدمانش به این شکله :

number
00:00:00,000 --> 00:00:00,00
text

من میخوام نرم افزارم بتونه این عبارات رو توی یه فایل نوت پد به فرمت زیر نویس یعنی srt ذخیره کنه و خروجی بده !

همچین چیزی رو میشه با کانس دراورد ؟
  پاسخ


 سپاس شده توسط:
#2
بله میشه
من اگر وقت کردم واستون سورسشو می سازم
[تصویر:  default-yellow.svg]
  پاسخ


 سپاس شده توسط: M.gh
#3
(1399/2/31، 11:50 عصر)oak' نوشته است: بله میشه
من اگر وقت کردم واستون سورسشو می سازم

 

ممنون میشم اگه اینکارو بکنین !

یه سوال دیگه :

بخوام امواج صوتی رو به صورت موج نشون بده ، میشه ؟ که بشه انتخاب کرد از توش که از اول اینجای این موج تا اینجاش این متنو ( زیرنویس )نشون بده !
 
  پاسخ


 سپاس شده توسط:
#4
(1399/3/1، 08:34 عصر)avidsaraji نوشته است:
(1399/2/31، 11:50 عصر)oak نوشته است: بله میشه
من اگر وقت کردم واستون سورسشو می سازم

ممنون میشم اگه اینکارو بکنین !

یه سوال دیگه :

بخوام امواج صوتی رو به صورت موج نشون بده ، میشه ؟ که بشه انتخاب کرد از توش که از اول اینجای این موج تا اینجاش این متنو ( زیرنویس )نشون بده !
 
میشه ولی باید مقدار دسی بل صدا رو تشخیص بدین و بعد به کمک نسبت های مثلثاتی اسپکتروگرام صدا رو رسم کنین. در اصل میتونه یه جور تابع سینوسی یا کسینوسی باشه که حالا یه انشعاباتی هم داره. باید بتونین یه ضابطه مناسب برای تابع سینوسی یا کسینوسی تعیین کنین.
اگر تازه کار هستین یکم دشواره.
موفق باشین.
غایب
  پاسخ


 سپاس شده توسط:
#5
دوست عزیز من متاسفانه وقت نکردم واست اون سورسو بسازم
اما وقتی یکی از همین نرم افزار های ادیت ساب تایتل رو دیدم متوجه قضیه شدم
همچنین وقتی یه فایل زیرنویس رو برسی کردم
اصلا کاری نداره
در کانستراکت و زبان های برنامه نویسی سطح بالا ، مقوله ای به نام اسپلیت (split) داریم که با استفاده از اون میتونی کار ها رو انجام بدی :
نمونه من این خط رو از فایل متنی دریافت کردم :
کد:
Dialogue: 0,0:04:16.79,0:04:18.91,Default,,0,0,0,,‫میدونی‌ بخاطر همین چقدر تو دردسر افتادیم؟
اینجا باید از اسپلیتور استفاده کنید که در اکسپرشن های سیستم هست و کلمه Dialogue رو جدا کنید
اینجوری :
کد:
tokenat("Dialogue: 0,0:04:16.79,0:04:18.91,Default,,0,0,0,,‫میدونی‌ بخاطر همین چقدر تو دردسر افتادیم؟",1, ": ")
یه توضیح راجع به توکن ات
توکن ات متنی رو میگیره و بر اثا یه سری تنظیمات اونو به دو قسمت تقسیم می کنه
اینکه از کجا و چجوری و کدوم قسمت رو نمایش بده دست شماست 
وقتی اکسپرشن سیستمی توکن ات رو وارد می کنید همچین چیزی میبینید :
کد:
tokenat(Text, Index, Separator)
خوب ما باید هر سه قسمت رو پر کنیم 
قسمت اول text که ما همون مقدار"Dialogue: 0,0:04:16.79,0:04:18.91,Default,,0,0,0,,‫میدونی‌ بخاطر همین چقدر تو دردسر افتادیم؟"رو وارد می کنیم
بعد میریم سراغ قسمت سوم یعنی separator ( ایندکس رو بعد توضیح میدم)
خب اینجا مقدار " :" بهش میدیم
حالا سیستم قسمت پشت " :" رو از قسمت بعد از اون جدا کرد. یعنی :
0 : Dialogue
1 : 0,0:04:16.79,0:04:18.91,Default,,0,0,0,,‫میدونی‌ بخاطر همین چقدر تو دردسر افتادیم؟
اما سیستم از کجا بداند که ما کدا بخش را می خواهیم ؟؟
اینجاست که باید ایندکس رو توضیح بدم
ایندکس میخواد بدونه کدوم قسمت رو میخوای
ممکنه تعداد این بخش ها بیشتر از دو تا هم باشه
پس ما میایم و مقدار ایندکس رو میزاریم روی 1 یعنی من مقدار شماره یک رو میخوام. (توجه شمارش از صفر شروع میشه)
چون ما میخوایم که کلمه Dialogue حذف بشه بنار این به ما مقدار 0,0:04:16.79,0:04:18.91,Default,,0,0,0,,‫میدونی‌ بخاطر همین چقدر تو دردسر افتادیم؟ رو دریافت خواهیم کرد
این مساله برای بقیه قسمت ها هم میتونه استفاده بشه.

 
[تصویر:  default-yellow.svg]
  پاسخ


 سپاس شده توسط:
#6
(1399/3/2، 06:05 صبح)oak' نوشته است: دوست عزیز من متاسفانه وقت نکردم واست اون سورسو بسازم
اما وقتی یکی از همین نرم افزار های ادیت ساب تایتل رو دیدم متوجه قضیه شدم
همچنین وقتی یه فایل زیرنویس رو برسی کردم
اصلا کاری نداره
در کانستراکت و زبان های برنامه نویسی سطح بالا ، مقوله ای به نام اسپلیت (split) داریم که با استفاده از اون میتونی کار ها رو انجام بدی :
نمونه من این خط رو از فایل متنی دریافت کردم :
کد:
Dialogue: 0,0:04:16.79,0:04:18.91,Default,,0,0,0,,‫میدونی‌ بخاطر همین چقدر تو دردسر افتادیم؟
اینجا باید از اسپلیتور استفاده کنید که در اکسپرشن های سیستم هست و کلمه Dialogue رو جدا کنید
اینجوری :
کد:
tokenat("Dialogue: 0,0:04:16.79,0:04:18.91,Default,,0,0,0,,‫میدونی‌ بخاطر همین چقدر تو دردسر افتادیم؟",1, ": ")
یه توضیح راجع به توکن ات
توکن ات متنی رو میگیره و بر اثا یه سری تنظیمات اونو به دو قسمت تقسیم می کنه
اینکه از کجا و چجوری و کدوم قسمت رو نمایش بده دست شماست 
وقتی اکسپرشن سیستمی توکن ات رو وارد می کنید همچین چیزی میبینید :
کد:
tokenat(Text, Index, Separator)
خوب ما باید هر سه قسمت رو پر کنیم 
قسمت اول text که ما همون مقدار"Dialogue: 0,0:04:16.79,0:04:18.91,Default,,0,0,0,,‫میدونی‌ بخاطر همین چقدر تو دردسر افتادیم؟"رو وارد می کنیم
بعد میریم سراغ قسمت سوم یعنی separator ( ایندکس رو بعد توضیح میدم)
خب اینجا مقدار " :" بهش میدیم
حالا سیستم قسمت پشت " :" رو از قسمت بعد از اون جدا کرد. یعنی :
0 : Dialogue
1 : 0,0:04:16.79,0:04:18.91,Default,,0,0,0,,‫میدونی‌ بخاطر همین چقدر تو دردسر افتادیم؟
اما سیستم از کجا بداند که ما کدا بخش را می خواهیم ؟؟
اینجاست که باید ایندکس رو توضیح بدم
ایندکس میخواد بدونه کدوم قسمت رو میخوای
ممکنه تعداد این بخش ها بیشتر از دو تا هم باشه
پس ما میایم و مقدار ایندکس رو میزاریم روی 1 یعنی من مقدار شماره یک رو میخوام. (توجه شمارش از صفر شروع میشه)
چون ما میخوایم که کلمه Dialogue حذف بشه بنار این به ما مقدار 0,0:04:16.79,0:04:18.91,Default,,0,0,0,,‫میدونی‌ بخاطر همین چقدر تو دردسر افتادیم؟ رو دریافت خواهیم کرد
این مساله برای بقیه قسمت ها هم میتونه استفاده بشه.

 

 
راستش من تازه کار نیستم ولی خدای کانس هم نیستم ! همون متوسط ! اینچیزایی که گفتین رو زیاد نفهمیدم ! اگه لطف کنین و یه سورس ساده که کار های زیر رو انجام بده برام بسازین خیلی عالی میشه ! اون امواج رو هم نمیخوام نشون بده ! بیخیال ! همین نکات زیر باشه توش کافیه !

قابلیت ایمپورت فیلم

نمایش ساعت و دقیقه و ثانیه و میلی ثانیه برای فیلم

چهار تا فیلد برای هر خط ( هر خط باید یه زیر نویس باشه ) فیلد اول شماره زیر نویس ، فیلد دوم زمان شروع زیر نویس ، فیلد سوم متن زیر نویس و فیلد چهارم زمان پایان زیر نویس

و در نهایت امکان ذخیره زیر نویس در یک فایل srt

اگر این سورسو بسازین در این ماه مبارک ، همواره دعاتون میکنم ! لطفا ! خیلی لازم دارمش ! البته توجه کنین که نمیخوام از سورس شما استفاده کنم ، ازش یاد میگیرم و با گرافیک خودم دوباره یا توجه به قواعد خودم میسازمش !

لطفا ...
  پاسخ


 سپاس شده توسط:


موضوع‌های مشابه…
موضوع نویسنده پاسخ بازدید آخرین ارسال
  حل شده خرید درون برنامه مایکت در وب ویو Arianm 3 889 1402/4/25، 12:01 عصر
آخرین ارسال: Arianm
Wink سیستم شخصی سازی خودرو Arianm 1 407 1402/4/24، 05:21 عصر
آخرین ارسال: SHAMIRZA
  علت بازی نشدن وقتی نصب شده amirhosseinalizadehgharebaba81 1 329 1402/4/23، 02:22 عصر
آخرین ارسال: (:--ALI--:)
  چگونگی اجرا بازی روی ه‍است ایران (:--ALI--:) 8 1,476 1402/3/24، 04:50 عصر
آخرین ارسال: (:--ALI--:)
  وصل شدن به روح هاست قبلی :) amirhosseinalizadehgharebaba 2 2,039 1401/11/2، 09:43 عصر
آخرین ارسال: amirhosseinalizadehgharebaba

پرش به انجمن: