در صورتی که فایل زیرنویس فارسی با یونیکد UTF-8 و فرمت SRT ذخیره شده باشه، میشه با دستور زیر هم همون کار handbrake رو انجام داد و حتی فونت رو هم تنظیم کرد:
(با استفاده از نسخهی ffmpeg version 2.6.3)
ffmpeg -i input.mp4 -vf subtitles=filename=sub-fa.srt:force_style='FontName=2Roya' -acodec ac3 -vcodec h264 out.mkv
دقت کنید که برای هاردساب شدن باید تصویر دوباره encode بشه. پس نباید برای کلید vcodec- مقدار copy را وارد کرد.
برای تنظیم رنگ و اندازه فونت باید فایل زیرنویس رو دستکاری کرد. به طور مثال فایل زیرنویس من با فرمت srt و یونیکد UTF-8:
1
00:00:00,260 --> 00:00:03,314
<font size=25 color="#D900D9">ترجمه ارایه ای از
مترجم گرامی</font>
اگر یک فایل زیرنویس داشته باشم، به صورت زیر:
محتویات فایل sub-fa.srt:
1
00:00:00,260 --> 00:00:03,314
ترجمه ارایه ای از
مترجم گرامی
2
00:00:03,434 --> 00:00:06,235
خط اول زیرنویس
3
00:00:06,337 --> 00:00:08,604
خط دوم زیرنویس second line of subtitle
توی برنامه subtitle workshop بازش میکنم، کل سطرها را با Ctrl+A انتخاب میکنم و بعد از منوی Edit گزینه set color رو انتخاب میکنم. با انتخاب رنگ زرد، فایل sub-fa.srt به صورت زیر در میآید:
1
00:00:00,260 --> 00:00:03,314
<font color=#FFFF00>ترجمه ارایه ای از
مترجم گرامی</font>
2
00:00:03,434 --> 00:00:06,235
<font color=#FFFF00>خط اول زیرنویس</font>
3
00:00:06,337 --> 00:00:08,604
<font color=#FFFF00>خط دوم زیرنویس second line of subtitle</font>
با یه ویرایشگر متن، فایل sub-fa.srt رو باز میکنم و همهی <font color=#FFFF00> را با <font size=32 color=#FFFF00> جایگزین (replace all) میکنم. سپس فایل رو با انکودینگ UTF-8 ذخیره میکنم.
در آخر محتوای فایل sub-fa.srt میشه:
1
00:00:00,260 --> 00:00:03,314
<font size=32 color=#FFFF00>ترجمه ارایه ای از
مترجم گرامی</font>
2
00:00:03,434 --> 00:00:06,235
<font size=32 color=#FFFF00>خط اول زیرنویس</font>
3
00:00:06,337 --> 00:00:08,604
<font size=32 color=#FFFF00>خط دوم زیرنویس second line of subtitle</font>
یه کم راه طولانی میشه ولی به خوبی میشه با نرمافزارهای آزاد زیرنویس فارسی رو با تنظیم فونت، رنگ و اندازه فونت روی تصویر هاردساب کرد.