FFmpeg裁剪视频及局部模糊
查看视频信息:
ffprobe '.\咬一口兔娘 - 极乐净土.mp4'
视频裁剪
左右裁剪, 视频的画面部分宽度裁剪为原始宽度的一半,同时调整视频的尺寸
对比不同 crf 压片后的大小和码率,crf默认23, 值越小,码率越大,文件越大
使用 h265 压片,码率最小,文件最小,但是压片时间也最长
ffmpeg -i input.mp4 -filter:v "crop=in_w/2:in_h:0:0,scale=1280:1440" -crf 22 -c:a copy output.mp4
ffmpeg -i input.mp4 -filter:v "crop=in_w/2:in_h:0:0,scale=1280:1440" -crf 22 -c:v libx265 -c:a copy output.mp4
ffmpeg -i input.mp4 -filter:v "crop=in_w/2:in_h:0:0,scale=1280:1440" output.mp4
需要模糊区域定位
使用工具:https://imagej.nih.gov/ij/download.html
预览模糊区域
预览时没有声音?
ffplay -f lavfi -i "movie=output.mp4,delogo=x=6:y=574:w=1268:h=720:show=1"
视频画面局部模糊
ffmpeg -i output.mp4 -ss 00:01:28 -filter_complex "[0:v]crop=1268:720:6:600,gblur=sigma=10[blur];[0:v][blur]overlay=6:600" output2.mp4
干脆利落,下面还是直接将视频分为上下两部分,然后将下半部分模糊
ffmpeg -i output.mp4 -filter_complex "[0:v]crop=iw:ih/2:0:0[top];[0:v]crop=iw:ih/2:0:ih/2,boxblur=20[bottom];[top][bottom]vstack" -c:a copy output6.mp4
开始操作视频
将视频按时间分成两段
ffmpeg -i input.mp4 -ss 00:00:00 -t 00:01:28 -c:v copy -c:a copy output1.mp4 -ss 00:01:28 -c:v copy -c:a copy output2.mp4
将视频后半段生成的视频,将画面分成上下部分,并对下部分3/5做模糊处理
ffmpeg -i output2.mp4-filter_complex "[0:v]crop=iw:ih*2/5:0:0[top];[0:v]crop=iw:ih*3/5:0:ih*2/5,boxblur=30[bottom];[top][bottom]vstack" -c:a copy output3.mp4
合并前后两个视频
input.txt文件内容
file 'output1.mp4'
file 'output3.mp4'
ffmpeg -f concat -i input.txt -c copy output4.mp4
实现了局部模糊
1. 关键帧 I帧 并不一定是最清晰的,只是它是帧内压缩,文件大小比 B帧 P帧大
回复删除2.即使是一张静态图片生成的几秒视频, 里面看的B帧P帧也存在码流信息,表明它和前面I帧的内容是一样的,故视频截取的 I B P 帧成为图片,也是能看到数据的,因为是在原始数据中处理,不是在码流数据中处理。