ممکنه زیرنویس های فیلم ها با صدای گوینده ها هم زمان نباشند. این مشکل رو به سادگی در VLC با به کار بردن کلید های زیر حل میکنیم:
Ctrl + h
برای تاخیر انداختن در زیرنویس (یعنی وقتی زیرنویس زودتر میاد)
Ctrl + g
برای عقب کشیدن زیرنویس (یعنی وقتی که اول گوینده حرفشو میگه بعد زیرنویس میاد)
میتونید این کلید ها رو در قسمت prefrences در حالت advance در قسمت interface ببینید و تغییر بدید.
در پخش کننده Celluloid (رابط گرافیکی gtk برای mpv) این کار با کلید های Z
و Shift + Z
انجام میشه.
همون طور که میدونید ffmpeg یکی از کتابخانه های پر استفاده در مدیریت و پخش فایلهای تصویری و صوتی است. ابزارهای گرافیکی مختلفی برای کار با ffmpeg درست شدن، ولی کار با خط فرمان یک چیز دیگه است!
در این مطلب میخوام چند تا از کارهایی که من با ffmpeg لازم داشتم انجام بدم رو بنویسم.
ffmpeg -i input.mp4 -vcodec copy -acodec copy -ss 00:00:10 -to 00:09:05 output.mp4
دستور بالا میگه از ثانیه ۱۰ تا دقیقه ۰۹ و ثانیه ۰۵ کات کن و در یک فایل ذخیره کن. این کار رو هم بدون re-encode کردن ویدیو انجام بده. اگه ویدیوی شما حاوی keyframe باشه (یعنی فریم هایی که موقع ساخت ویدیو بعنوان نقطه عطف تعیین شدن! نمیدونم چطوری توضیح بدم!) موقع کات کردن بدون re-encode زمانی رو که شما تعیین کردید برش انجام بشه رعایت نمیشه و برش از نزدیک ترین keyframe اتفاق می افته. بنابراین دقیق نخواهد بود. ولی اگر ویدیو شما keyframe نداشته باشه، این مشکل پیش نمیاد.
ffmpeg -i input.mp4 -ss 00:00:10 -to 00:09:05 -async 1 output.mp4
دستور بالا هم برای کات کردن ویدیو هست. ولی با re-encode. این بار اگه ویدیو keyframe داشته باشه، اول ویدیو رو یک باره دیگه تولید میکنه و keyframe ها رو حذف میکنه و بعد اون رو کات میکنه. این طولانی تر خواهد بود ولی زمان برش دقیقا همان چیزی خواهد بود که شما تعیین کردید. ولی اگر میخواید چند تکه از یک ویدیوی حاوی keyframe رو کات کنید، نیاز نیست هربار re-encode کنید. با دستور زیر یک بار ویدیوی بدون keyframe تحویل بگیرید و عملیات برش رو روی این ویدیو با دستور اولی انجام بدید تا سریع برش ها انجام بشن:
ffmpeg -i input.mp4 -async 1 output.mp4
حاصل سر و کله زدن های من با لینوکس