如何将3条含filter_complex的ffmpeg处理命令合并为单条命令
ffmpeg多步骤处理合并命令
以下是合并后的完整命令,全程无中间文件生成,处理逻辑和你拆分的三条命令完全一致:
ffmpeg -y -i input.mp4 -i "$wmf" \ -filter_complex "[0:v]scale=720:-2,setsar=1:1[scaled_v]; [scaled_v]crop=$url_width_:$barik:$url_width_:$url_height_,boxblur=10[fg]; [scaled_v]crop=$url_width_:$barik:0:0,boxblur=10[fg2]; [scaled_v][fg]overlay=0:$blur_y[bg]; [bg][fg2]overlay=0:0[blur_v]; [1:v]scale=iw*$scale:-1[wm]; [blur_v][wm]overlay=$pos[out_v]" \ -map "[out_v]" -map 0:a \ -c:v libx264 -preset ultrafast \ -c:a copy final.mp4
- 合并核心是将所有视频处理步骤串联到同一个
filter_complex滤镜链中,视频流全程在内存流转,不会生成任何临时文件 - 命令保留了你原逻辑的所有自定义变量,使用前请确保
$url_width_、$barik、$url_height_、$blur_y、$wmf、$scale、$pos已经赋值为实际需要的数值,和你之前拆分执行时的参数保持一致即可正常运行 - 音频直接复用原视频的音频流,和原有处理逻辑完全相同
内容的提问来源于stack exchange,提问作者Ahvan
相关产品推荐
相关产品推荐

