我在将视频从4k缩放到1080时遇到了麻烦,同时仍然保留了视频字幕。这些字幕基于PGS,因此需要烘焙到输出视频中。为了缩放视频,我将ffmpeg与filter_complex一起使用,如下所示:
'-filter_complex', `[0:v][0:s:randomSubtitleHere]scale=1920:1080[scaled];[scaled][0:s:0]overlay[v]`,
'-map', '[v]', '-map',
`0:a:${movieTitle['audioSelect']}`,
这将为我提供1080的视频,但是我仍然看不到我选择的字幕。
PGS是基于图像的字幕。
使用比例过滤器:
ffmpeg -i input.mkv -filter_complex "[0:v]scale=1920:1080[vid];[0:s:0]scale=1920:1080[sub];[vid][sub]overlay[v]" -map "[v]" -map 0:a:0 output.mkv
或添加scale2ref过滤器以自动缩放字幕以匹配视频的大小。
ffmpeg -i input.mkv -filter_complex "[0:v]scale=1920:1080[ref];[0:s:0][ref]scale2ref[sub][vid];[vid][sub]overlay[v]" -map "[v]" -map 0:a:0 output.mkv