ffmpeg 缩放 4k 视频并添加字幕
ffmpeg scale 4k video and add subtitles
我无法将视频从 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 是基于图像的字幕。
使用scale filter:
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 filter 以自动缩放字幕以匹配视频的大小。
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
我无法将视频从 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 是基于图像的字幕。
使用scale filter:
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 filter 以自动缩放字幕以匹配视频的大小。
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