Or using FFmpeg:
for f in jur*.mkv; do ffmpeg -i "$f" -vf "subtitles=$f%.mkv.srt" "$f%.mkv_full.mp4" done Sometimes subtitles drift because of 23.976 vs 24 fps. Use:
ffmpeg -i jur153engsub.mkv -map 0:s:0 subs.srt Open subs.srt in Subtitle Edit . Go to Synchronization → Adjust all times → Enter offset: If 020006 means +20 minutes and 0.06 seconds, enter +00:20:00.060 .
ffmpeg -i jur153engsub.mkv -itsoffset +00:20:00.060 -i subs.srt -c copy -map 0:v -map 0:a -map 1 output.mkv To hardsub (burn subtitles) at the converted timing:
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 jur153_full_converted.mp4 4.1 Batch Converting Multiple Files If jur153 is part of a series (jur154, jur155), use a loop:
ffmpeg -i jur153engsub.mkv -filter_complex "[0:v]setpts=PTS*1.001[v]" -map "[v]" -map 0:a -c copy output_fixed.mkv To get clean English audio for subtitling:
ffmpeg -i jur153engsub.mkv -vf "subtitles=subs.srt:original_size=1920x1080" -c:v libx264 -c:a aac jur153_full_converted.mp4 Check that duration hasn’t changed: