یک روش ابتکاری برای نمایش زیر نویس فیلم ها درmmb

sibil

Active Member
سلام به تمامی دوستان .

این مطلب هم یک پیشنهاد و ایده هتش و هم درخواست همکاری و کمک برای اجرایی کردن اون .

همون طور که میدونید فرمت اصلی سابتایتل تمامی فیلم ها با هر فرمتی srt هستش که به راحتی در notpad میتونیم ویرایششون کنیم.

کاری که player ها می کنند اینه که طبق این فایل که مخصوص به همون فیلمه ، زمان شروع یک نوشته رو می خوانند و اون رو نمایش میدن و همین طور برای عدم نمایش اون از زمانی که در فایل srt ثبت هستش استفاده می کنند .

به همین ترتیب تمامی جملات سابتایتل رو نمایش میدن . به شکل ذیل :
کد:
6
00:01:33,855 --> 00:01:36,426
[COLOR="#800000"]اين ها سياره هايي هستن که
درست مثل ما، با خورشيد
[/COLOR]
7
00:01:36,494 --> 00:01:37,655
[COLOR="#800000"].رابطه دارن[/COLOR]
همون طور که می بینید موقع نمایش و عدم نمایش جملات مشخص هستش .

حالا موضوع اینه که اگه بشه تو mmb هم به برنامه فهموند که یه جوری زمان فیلم در حال پخش رو با زمان ثبت شده در فایل srt مطابقت بده و جمله مورد نظر در اون موقع رو نمایش بده همه چی حله .


حالا باید چه کرد ؟ :

1- ابتدا باید فرمت نمایش زمان برنامه با سابتایتل یک شکل بشه یعنی زمان برنامه باید به این شکل در بیاد : مثلا 1:37 تبدیل شه به 00:01:37,655 یعنی چهار قسمت ساعت - دقیقه- ثانیه و میلی ثانیه داشته باشه .

2- مساله ی بعد اینه که برنامه باید فایل رو بخونه یا فایل برنامه رو . یعنی کدوم به کدوم دستور بده . اگر فایل به فیلم دستور بده باید فکر این هم بشه که اگه فیلم به جلو و عقب برده شه چطور برنامه چطور میفهمه که در این موقع آورده شده از فیلم ،سابتایتل داره یا نه . و کلا مسئاله مطابقت این دو هستش .

من یه فایل SRT رو پیوست می کنم . که فرمت کلی رو ببینید و شاید با دیدن تمام محتوا فکری به نظرتون رسید .

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

پیوست ها

  • Battleship (2012) DVDRip AC3 XviD - TvCenter-by david.rar
    32.6 کیلوبایت · بازدیدها: 54
آخرین ویرایش:

Corovarice

Active Member
من قبلا این روشو امتحان کردم ولی دیدم اگه فایل زیرنویس محتواش خیلی زیاد باشه MMB تا بیاد سطر به سطر فایلو بخونه هر زیر نویس با اختلاف چند ثانیه نمایش داده میشه. دیگه منصرف شدم روش کار نکردم :green:
 

sibil

Active Member
جناب silvercover از شما دیگه بعیده . شاید روشی که دوستون در پاسخ بالا گفت شاید براش مشکل پیش بیاد . اما من یه فکر دیگه ام کردم و اون اینه که برنامه یه بار فایل رو مرور کنه و به نحوی اون رو در خودش cach(کش) کنه و بعد روال برنامه پی گرفته بشه .و برای این کار هم باید راه های مختلفی وجود داشته باشه . من انتظار داشتم شما جواب مناسبتری بدین . کار نشد نداره . شاید به عقل ناقص بنده چیزی نرسه اما قطعا شما متخصصین با تجربه و خلاقیتتون یه راهی رو پیدا می کنید . خداییش راست میگم و هندونه زیر بغل کسی نمیگزارم . دستم به دامنتون .
 

BlueMMB

Well-Known Member
خداییش راست میگم و هندونه زیر بغل کسی نمیگزارم . دستم به دامنتون .

:lol: سلام .

:idea: فکر جالبی بود به گفته ی دوستان احترام می ذارم چون قبلا اونا امتحان کردن ولی بدجور کنجکاو شدم حتما امروز روش کار می کنم . راستش من عاشق مسائل پیچیده و سختم ( شرلوک هولمز :wink: ) .
 

sajadms

Member
گه فایل زیرنویس محتواش خیلی زیاد باشه MMB تا بیاد سطر به سطر فایلو بخونه هر زیر نویس با اختلاف چند ثانیه نمایش داده میشه
واسه این جور مواقع میشه فایل های متنی رو به چند قسمت تقسیم کرد و با یه شرط ساده چک کرد که باید کدوم قسمت رو بگرده

Mmb برای این کار دقت لازم رو نداره.
منم موافقم می شه یه جورایی انجام داد ولی اصلا کار زیاد خوبی نمیشه چون با سایر برنامه ها میشه کار رو خیلی راحت تر انجام داد
ابتدا باید فرمت نمایش زمان برنامه با سابتایتل یک شکل بشه یعنی زمان برنامه باید به این شکل در بیاد : مثلا 1:37 تبدیل شه به 00:01:37,655 یعنی چهار قسمت ساعت - دقیقه- ثانیه و میلی ثانیه داشته باشه .
تو جلو و عقب بردن های زیاد زمان فیلم بیلدر نمیتونه دقت لازم رو داشته باشه

در مجموع اگه بخواین می تونین کار رو انجام بدین ولی در نظر داشته باشین که یه پلیر نسبت به مدل های مشابهش نباید بار زیادی رو به سیستم تحمیل کنه
 

m javad

کاربر متخصص
این کاری که میخواهید بکنید خیلی ساده و راحت امکانپذیر هست

1- ابتدا باید فرمت نمایش زمان برنامه با سابتایتل یک شکل بشه یعنی زمان برنامه باید به این شکل در بیاد : مثلا 1:37 تبدیل شه به 00:01:37,655 یعنی چهار قسمت ساعت - دقیقه- ثانیه و میلی ثانیه داشته باشه .
این تبدیل به راحتی امکان پذیر هست

2- مساله ی بعد اینه که برنامه باید فایل رو بخونه یا فایل برنامه رو . یعنی کدوم به کدوم دستور بده . اگر فایل به فیلم دستور بده باید فکر این هم بشه که اگه فیلم به جلو و عقب برده شه چطور برنامه چطور میفهمه که در این موقع آورده شده از فیلم ،سابتایتل داره یا نه . و کلا مسئاله مطابقت این دو هستش .
خیلی واضح هست که برنامه اطلاعات رو از روی فایل میخونه و مطابقت میده
این مورد هم هیچ کار زمانبری نیست، با استفاده از پلاگین کتیبه میتونید با سرعت بسیار عالی فایلهای متنی رو بخونید و با سرعت بسیار خوب توشون جستجو کنید
تو جلو و عقب بردن های زیاد زمان فیلم بیلدر نمیتونه دقت لازم رو داشته باشه
فیلم با پلاگین پخش میشه و مشکل دقت هم از بین میره

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

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

برای نمایش متن روی خود فیلم هم میتونید باز از پلاگین کتیبه استفاده کنید تا متن رو براتون روی فیلم و بدون حاشیه و پشت سیاه یا رنگی نمایش بده
*****************
در ضمن اینو هم خاطر داشته باشید که پلاگین xtmedia خودش كل عمليات بالا رو انجام ميده و اگر از این پلاگین استفاده کنید و فایل کنارش باشه زیرنویس میکنه
البته اگر بخواهید فونت و یا مکان و رنگ متن رو تغییر بدید امکانش نیست!

با این حال اگر تمایل داشتید بگید تا براتون یه نمونه آماده کنم
 
آخرین ویرایش:

sajadms

Member
جواد جان مرسی از توجهت
فیلم با پلاگین پخش میشه و مشکل دقت هم از بین میره
درسته که با پلاگین پخش می شه ولی منظور من این بود که بازم باید اطلاعات رو با دقت مدام واسه بیلدر بفرسته و بیلدر هم پردازش ها رو انجام بده
پلیر های دیگه هم همین عملیات رو انجام میدن، !!! با بیلدر هم خوندن یه فایل متنی بار زیادی به سیستم تحمیل نمیکنه
درسته خوندن یه فایل متنی بار زیادی تحمیل نمیکنه ولی در کنار خوندن فایل باید پردازش های دیگه ای انجام بشه که نیازمند استفاده از شرط ها و حلقه های و تایمر های مداوم هستش و درضمن برای مچ کردن زیرنویس باید دقت میلی ثانیه در نظر گرفته بشه چون اگه اشتباه بشه تو فیلم هایی که زمانشون زیاده عقب موندن چند میلی ثانیه ای ممکنه به چند ثانیه ای تبدیل بشه و این کل کار رو خراب می کنه

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


با این حال اگر تمایل داشتید بگید تا براتون یه نمونه آماده کنم
ولی در مجموع خوشم میاد همیشه واسه آماده کردن یه نمونه آماده ای
 

sibil

Active Member
دم شما گرم .

اگر این نمونه رو آماده بکنید ، ممنون میشم . واقعا ممنون .

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

توضیحاتی هم هست که عرض خواهم کرد این برنامه چه خواهد شد . یعنی طرح پروژه رو به اطلاع می رسونم . اگه بشه کامل انجامش داد .
اما در مورد xtmedia من که امتحان کردم سابتایتل رو نمایش نداد .
 

sibil

Active Member
تو فکرم هست که نرم افزار نقد فیلم ساخته بشه با امکانات ذیل :

1- امکان پخش انواع فایل های صوتی و تصویری +dvd و پخش زیرنویس آنها .
2- امکان ویرایش زیر نویس فیلم
3- امکان زیرنویس کردن فیلم ها
4- یادداشت برداری از فیلم یا فایل صوتی در حال پخش .( فیلم در حال نمایش در صورت پایپ در کادر متن ،pause بشه و در صوت توقف تایپ ، پخش ادامه پیدا کنه .
5 - امکان عکسبرداری از فیلم در حال نمایش
6- امکان split کردن و قطعه کردن قسمت های مختلف فایل صوتی و تصویری و گرفتن خروجی
و...

کار جالبیه اگر امکان پذیر باشه و اگر شما متخصصین کمک کنید .

لطف کنید نظراتتون رو اعلام کنید . خوشحال میشم از نظر شما مطلع بشم .

یا علی ع ....
 

BlueMMB

Well-Known Member
سلام .

:shock: نمی دونم چرا هر چی کار بود تو این یکی دو روزه ریخت سرم یعنی دیروز از 7:30 صبح رفتم سر کار ( ریخته گری ) و شب ساعت 7 اومدم خونه حدودای 10 هم تلپ افتادم خوابیدم ( اگه یونیسف منو دیروز میدید یه هواپیمایی چیزی می فرستاد فراریم میداد ) ولی عجله ای اینو درست کردم ببینید فقط وقتی جلو عقب میره کار نمیکنه .

جواد عزیز درست میگن به نظرمنم باید اول تمام اطلاعات ریخته شن تو برنامه که شاید چند ثانیه طول بکشه ولی بعد اینکه تو برنامه ریخته شن به راحتی میشه ازشون استفاده کرد و مشکل سرعت مطرح نیست ولی بازم این عدم دقت میلی ثانیه ای تو بیلدر هست که اونم به گفته ایشون با پلاگین حل میشه .

اما خداییش یه چیزم بگم سیبیل جان که خود شی ویدئو بیلدر زیر نویسارم باز میکنه و نشون میده امتحانش بکنین .
 

پیوست ها

  • ReadSrt.rar
    270.9 کیلوبایت · بازدیدها: 33

sibil

Active Member
با سلام و احترام و تشکر خدمت جناب blueMMB :rose:. ممنون . ولی دوتا نشون میده - دیگه نشون نمیده یا اصلا کلا نشون نمیده . موقع پخش خودم چشمی زمان رو از روی فایل srt دنبال میکردم . موقع نمایش فلان متن که میشه اصلا نشون نمیده .

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

میشه این مسئله رو بررسی و اصلاح کنید ؟البته اگه حالتون خوب بود . و نیازی به یونیسف نبود .:) در مورد اشکال برنامه . ایراد وارده یا نه . البته با این حال و روزی که از خودتون شرح دادین ، تا همین حد هم شاهکار بود .

راستی من که تست کردم ، پلیر mmb سابتایتل رو نمایش نمیده . اما در اصل هم هدف اصلی ما نمایش اون تو یک باکس متنه که بشه تو برنامه به کار گرفتش .

بنده کماکان منتظر نظرات شما در مورد پروژه ، نمونه مثال جناب javad هستم .
 

BlueMMB

Well-Known Member
سلام . مرسی اول صبحی یه خرده خندیدم حال و روزمم بهتر شد .:)

این موردی که بعضی موقع ها نشون نمیده و دو تا نشون میده و ... وارد نیست چون من خودم رو چند تا فیلم امتحان کردم درست نشون میداد فقط وقتی جلو عقب می زنی کار نمی کنه . البته دو تا تبصره ام میگیره ها یکی اینکه وقتی فایل srt دستکاری میشه یا بهتر بگم استاندارد نیست ممکنه این مشکل پیش بیاد دومی مربوط میشه به همون دقت میلی ثانیه ای.

اما این جدید رو ببین که توش مشکل سرعت و جلو عقب رفتنم حل کردم فقط مونده یه مشکل دقت . البته واسه اونم یه فکری داشتم و اجراش کردم ولی این سرعت بیلدر بعضی جاها واقعیتش دیگه بیش از حد کم میاره . موضوع اینجوری بود که وقتی مثلا یه 250 میلی ثانیه باید دیر تر نشون میداد میدیدی دو سه ثانیه همین 250 میلی ثانیه طول می کشید که مطمئنا جوابگو نبود .
این مثال رو طبق اون روشی که قبلا عرض کردم درست کردم یعنی اول همه اطلاعات وارد بیلدر میشه بعد تو مواقع لازم ازشون استفاده می کنه . تو باز کردنش یه چند ثانیه تاخیر داره که البته زیادم نیست مثلا رو آواتار امتحان کردم که حدودا 2.5 ساعته بازشدنش حدودا 5 ثانیه طول کشید که این تاخیر تو همه پلیر ها حالا کمی کمتر وجود داره که مشکل ساز نیست .
 

پیوست ها

  • VideoPlayer2.rar
    271.1 کیلوبایت · بازدیدها: 40

sibil

Active Member
بابـــــــــــــــــــــــــــــــــا ...... دمت گرم . خداییش خیلی حال کردم . تو این نسخه دوم ظاهرا تمامی مواردی که گفتم درست شده . خدا خیرت بده . به خاطر این اگر قابل بدونی 100 تا صلوات هدیه به روح هموطنان از دست رفتمون می کنم .


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

این مورد هم حل بشه ، خیلی کار راه میفته . دمت گرم .
 

sajadms

Member
حالا به نظرت میشه کاری کرد که بشه همون موقع که فلان زیرنویس نمایش داده شده ، بشه گززینه ای براش تعبیه کرد که بشه اون رو ویرایش و تو همون فایل ذخیره کرد .
من فعلا نمونه مثال رو وقت نکردم چک کنم ولی برای تغییر د رفایل زیرنویس که یه فایل متنی هست شما کافیه زمانی که زیر نویس رو مشاهده می کنین زمان پخش رو متوقف کنین و خطی رو که از زیرنویس گرفتین رو به یه متغیر بریزین و بعد ویرایش با استفاده از دستورات StrFromFile و StrToFile اونا رو دوباره در فایل زیرنویستون به جای همون خط اظافه کنید .
 

sibil

Active Member
سلام آقا javad .

منتظر نمونه مثالتونم ها . لطفا عنایتی بفرمایید .

راستی نظراتتون رو درباره این برنامه نگفتینن.
 

sibil

Active Member
سلام : مسئله نمایش همزمان چند زیر نویس ، مشکلی رو ایجاد نمیکنه . ؟؟ یعنی یک فیلم همزمان زیرنویس فارسی - عربی - انگلیسی و... براش نمایش داده بشه .
 

sajadms

Member
یعنی یک فیلم همزمان زیرنویس فارسی - عربی - انگلیسی و... براش نمایش داده بش
همچین کاری زیاد تو سایر نرم افزار ها معمول نیست
ولی در صورتی که بخواین این کارو انجام بدین اگه سایر زیرنویس ها کاملا باهم همخونی داشته باشن و تمام خط ها و زمان هاشون دقیقا شبیه هم باشه میشه این کارو انجام داد هرچند هنوزم اون مشکل میلی ثانیه ای که قبلا گفتم وجود داره و بعدا می تونه دردسر ساز بشه
 

BlueMMB

Well-Known Member
سلام .
دوستان امروز شارژ شارژم . خدارو شکر هم چند روزه پول گرفتم و هم اینکه جواب کنکورم اومد درست تو اولین گزینه ای که نوشته بودم انتخاب شدم . نرم افزار - ارومیه - روزانه :oops:جواب شش ماه بدون کامپیوتر رو گرفتم ( هی واقعا خیلی سخت بود :sad:)

سیبیل امروز می خوام شمارم شارژ کنم . اینم قابلیت ذخیره کردن فایل srt فقط یه توضیح بدم چون یه خرده پیچیده شده :
اول میاد یکی یکی همه نوشته ها رو می خونه ( ثانیه به ثانیه ) بعد وقتی نوشته عوض شد اون قبلی رو تو فایل با زمان اول و آخرش ذخیره می کنه . البته چون تو ذخیره تعداد خط ها زیاد میشه بیلدر نمی تونست به فایل چیزی اضافه بکنه مجور شدم هزار خط هزار خط جداشون کنم یعنی وقتی 1000 تو یه فایل می نویسه میره یه فایل دیگه باز میکنه و توی اون بقیه رو میریزه و همینجور ادامه میده تا کلا تموم شه .
بعد میاد با cmd اون فایلا رو به هم می چسبونه و آخر سرم واسه حذف فایلای اضافی یه فایل bat میسازه و اجراش می کنه .
در ضمن فایلو تو درایو D ذخیره می کنه با اسم a.srt

موفق باشی .
 

پیوست ها

  • VideoPlayer3.rar
    272.2 کیلوبایت · بازدیدها: 39

جدیدترین ارسال ها

بالا