ç”案 0 :(得分:34)
我解决了ï¼
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
ç”案 1 :(得分:3)
这里接å—çš„ç”案需è¦æ°¸ä¹…æ‰§è¡Œï¼Œå› ä¸ºå®ƒæ£åœ¨æ‰§è¡Œå¤§é‡ä¸å¿…è¦çš„计算。我们ä¸éœ€è¦æ¨¡ç³Šæˆ‘们肯定知é“会在输出视频的视å£ä¹‹å¤–çš„åƒç´ 。
å› æ¤ï¼Œæ›´å¥½çš„解决方案是首先è£å‰ªè§†é¢‘ä¸åœ¨è¾“出ä¸å¯è§çš„部分。然åŽï¼Œæˆ‘们缩放æ¤éƒ¨åˆ†ä»¥â€œå¡«å……â€è§†å£ã€‚最åŽï¼Œæˆ‘们将原始视频å åŠ åœ¨å…¶é¡¶éƒ¨ã€‚
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 x 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
ç”案 2 :(得分:2)
您å¯ä»¥å°è¯•å°†è§†é¢‘è¦†ç›–åœ¨è¿™æ ·çš„æ¨¡ç³Šå›¾åƒä¸Šã€‚
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
将获å–指定的已处ç†è¾“å…¥æµå¹¶ç›¸åº”åœ°æ˜ å°„åˆ°è¾“å‡ºæµã€‚
å¸Œæœ›è¿™ä¼šå¯¹ä½ æœ‰å¸®åŠ©ï¼
ç”案 3 :(得分:1)
æˆ‘æ— æ³•åœ¨Windows上使用ffmpeg 3.4.2获得以å‰æ供的解决方案。
然而这确实有效:
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>
。
ç”案 4 :(得分:1)
我对任何类型的视频都åšå‡ºäº†é€šç”¨å†³å®šã€‚适用于垂直和水平视频。它将视频的大å°è°ƒæ•´ä¸º1080p(您å¯ä»¥ä½¿ç”¨720p),并用模糊的视频填充所有空白空间。
ffmpeg -i input.mp4 -lavfi "[0:v]scale=1920*2:1080*2,boxblur=luma_radius=min(h\,w)/20:luma_power=1:chroma_radius=min(cw\,ch)/20:chroma_power=1[bg];[0:v]scale=-1:1080[ov];[bg][ov]overlay=(W-w)/2:(H-h)/2,crop=w=1920:h=1080" output.mp4