我想通过使用ffmpeg创建带有水印的硬字幕视频。而且我想知道如何组合和简化多个命令,或者如何为此目的创建bash脚本。
我尝试在堆栈流中搜索并测试了一些命令,但是它们没有用。这是我正在使用的命令。
要检测视频的宽度和高度:
@Autowired
public JwtAccessTokenConverter tokenConverter;
public void setPublicKey(String key) {
tokenConverter.setSigningKey(key);
}
调整水印图像的大小:(视频宽度= 1280)
ffprobe -v quiet -show_entries stream=width,height -of default=noprint_wrappers=1 video_in.mp4
向视频添加水印:
ffmpeg -i watermark.png -y -v quiet -vf scale=1280*0.15:-1 watermark_scaled.png
向视频添加.ass字幕:(必须为“ .ass”)
ffmpeg -i video_in.mp4 -i watermark_scaled.png -filter_complex "overlay=W-w-5:5" video_marked.mp4
答案 0 :(得分:0)
您不需要检测视频尺寸。 scale2ref过滤器可以使用参考来调整输入的大小。
这是一个命令中的所有步骤。
ffmpeg -i video_in.mp4 -i watermark.png
-filter_complex "[1][0]scale2ref=iw*0.15:ow/mdar[wm][v];
[v][wm]overlay=W-w-5:5,ass=subtitle.ass"
-c:a copy video_final.mp4