Antwort
Ich habe gelöst!
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
Eingang: https://www.youtube.com/watch?v=17uHCHfgs60
Ausgang: http://www.youtube.com/watch?v=CgZsDLfzrTs
Sie können versuchen, wie dies das Video auf einem Unschärfebild überlagert.
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
Eingabebild wird von -loop 1
durch die Dauer des Ausgangsvideogeschleift werden. Und -t 10
wird die Dauer des Videoausgangs auf 10 Sekunden begrenzen. In diesem Beispiel habe ich 1280: 720 als Ausgabevideoauflösung verwendet und die Eingaben skaliert, um dieses Verhältnis zu erreichen. 0:v
beziehen sich auf das Eingangsvideo und es wird auf eine Höhe von 720 skaliert, wobei die Breite entsprechend angepasst wird.
Hier verwendete ich boxblur
Filter, wo es wie sab
mehrere andere sind, smartblur
und unsharp
. map
ruft die angegebenen verarbeiteten Eingangsströme ab und ordnet sie entsprechend dem Ausgangsstrom zu.
Hoffe, das wird Ihnen helfen!
Dies funktioniert nicht auf Ubuntu 16.04 mit ffmpeg Version 2.8.11-0ubuntu0.16.04.1 – Benoit