如何使用FFmpeg的,使这个?
例如但FFmpeg的: Adobe After Effects Sony Vegas Pro
该solvid!
ffmpeg -i input.mp4 -lavfi '[0:v]scale=ih*16/9:-1,boxblur=luma_radius=min(h\,w)/20:luma_power=1:chroma_radius=min(cw\,ch)/20:chroma_power=1[bg];[bg][0:v]overlay=(W-w)/2:(H-h)/2,crop=h=iw*9/16' -vb 800K output.webm
输入:https://www.youtube.com/watch?v=17uHCHfgs60 输出:http://www.youtube.com/watch?v=CgZsDLfzrTs
这里接受的答案永远需要执行,因为它是做了这么多不必要的计算。我们不需要模糊,我们肯定知道会出视在输出视频的像素。
因此,一个更好的解决方案将是第一批视频将在输出中出现的部分。然后,我们扩展这部分“补”视口。最后,我们覆盖在它上面的原始视频。
Below example assumes that input video has greater
aspect ratio than output video.
┌─────────────┐
┌─────────────┐ │ │
│ Input video │ │ Output │
│ │ │ video │
└─────────────┘ │ │
│ │
└─────────────┘
我们将使用filter graph实现这一目标。我们的过滤器将在下面喜欢点符号:
[original]
input --> split -------------------------------> overlay --> output
│ ^
│[copy] [blurred]│
└──────> crop ──> scale ──> gblur ─────────┘
假定为输入视频的分辨率是1280×720时,命令看起来像下面:
ffmpeg -i input.mp4 -vf 'split [original][copy]; [copy] crop=ih*9/16:ih:iw/2-ow/2:0, scale=1280:2282, gblur=sigma=20[blurred]; [blurred][original]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2' output.mp4
你可以尝试覆盖这样的模糊图像上的视频。
ffmpeg -i input_video -loop 1 -i input_image -t 10 -filter_complex "
[0:v]scale=-1:720[scaled_video];
[1:v]scale=1280:720,boxblur=50[blur_image];
[blur_image][scaled_video]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2[outv]" -c:v libx264 -aspect 1280/720 -map [outv] -map 0:a -c:a copy output_video
输入图像将通过输出视频的由-loop 1
持续时间来循环。而-t 10
将限制输出视频时长为10秒。在这个例子中我用1280:720作为输出的视频分辨率和按比例的输入以匹配该比率。 0:v
参考输入视频并且将缩放至720高度,其中宽度将被相应地调整。
在这里,我用boxblur
过滤器,其中还有其他一些类似sab
,smartblur
和unsharp
。 map
会得到一个指定的处理后的输入流,并相应地映射到输出流。
希望这个能对您有所帮助!
我不能让任何提供了使用的ffmpeg 3.4.2在Windows上工作之前的解决方案。
然而,这没有工作:
ffmpeg -i <input_file> -filter_complex "[0:v]scale=ih*16/9:-1,boxblur=luma_radius=min(h\,w)/20:luma_power=1:chroma_radius=min(cw\,ch)/20:chroma_power=1[bg];[bg][0:v]overlay=(W-w)/2:(H-h)/2,crop=h=iw*9/16" <output_file>
不要忘了相应的文件名来替换<input_file>
和<output_file>
。