ffmpeg 给视频画圆圈

ffmpeg本身可以给视频画方框,要画圈就麻烦一些,这里采用遮罩的方式实现视频画圈的功能。

  1. 准备遮罩

这里用opecv制作遮罩图像

cpp 复制代码
width=cap.get(cv::CAP_PROP_FRAME_WIDTH);
height=cap.get(cv::CAP_PROP_FRAME_HEIGHT);
cv::Mat mask = cv::Mat::zeros(cv::Size(width,height), CV_8UC4);  //
mask.setTo(cv::Scalar(0, 0, 0, 0));
cv::circle(mask, cv::Point(x,y), r, cv::Scalar(0,0,255,255),3);
cv::imwrite("mask.png",mask);

其中cap为目标视频,x,y,r分别对应圆圈的中心坐标和半径,cv::Scalar(0,0,255,255),这里表示使用后红色的圆圈。

遮罩图像保存为png格式,示例图像如下:

mask.png

  1. 应用遮罩

ffmpeg -i input.mp4 -i mask.png -filter_complex "1:vscale=1920:1080logo;0:vlogooverlay=0:0" output.mp4

上述命令中 input.mp4为输入的视频,output.mp4为输出视频,值得注意的是scale=1920:1080要求为视频的宽和高。

  1. 部分视频的画圈

如果只想给部分视频画圈,那么仅需加上时间段即可。

ffmpeg -i input.mp4 -i mask.png -filter_complex "1:vscale=1920:1080logo;0:vlogooverlay=0:0" -ss 00:01:00 -to 00:02:00 output.mp4

其中-ss 00:01:00为开始时间,-to 00:02:00为结束时间。

  1. 硬件加速

如果系统有显卡支持,还可以进行加速以节省时间。

ffmpeg -i input.mp4 -i mask.png -filter_complex "1:vscale=1920:1080logo;0:vlogooverlay=0:0" -ss 00:01:00 -to 00:02:00 -c:v h264_nvenc -preset fast output.mp4

相关推荐
luoyayun3619 小时前
Qt + FFmpeg 视频工具:视频一键压缩功能实现
qt·ffmpeg·音视频·视频压缩
雪的季节10 小时前
ffmpeg源码国内gitee下载
ffmpeg·gitee
中微极客18 小时前
Kling AI 3.0:AI视频生成的工程化跃迁
人工智能·音视频
开开心心就好19 小时前
免费格式转换工具视频音频文档都能转
人工智能·智能手机·ocr·电脑·音视频·散列表·启发式算法
USB_ABC19 小时前
南京军区训练基地:混合矩阵赋能军事训练智慧化协同升级
矩阵·音视频
中微极客21 小时前
Seedance 2.5深度解析:30秒4K视频生成与50路多模态参考的工程实践
人工智能·音视频
sweetone1 天前
一台磁带随身听的摩机(查出LAG668芯片低音差的原因)
经验分享·音视频
潜创微科技1 天前
HDMI1.3无线投屏简介
音视频
西安老张(AIGC&ComfyUI)1 天前
第027章:ComfyUI视频制作LTX-2.3模型(文生视频)
aigc·音视频·数字人·comfyui
USB_ABC1 天前
郑州建业地产:高清音视频矩阵构筑智慧社区全域物联管控体系
矩阵·音视频