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

相关推荐
pla888888882 小时前
海光K100_AI单卡ComfyUI+MiniMax-H3环境调优实战:视频生成速度大幅提升
人工智能·音视频
淡淡的香烟18 小时前
Android Camera开发详解
android·音视频
笨笨饿19 小时前
#109_BK7258 蓝牙 A2DP 音频数据通路深度解析
python·stm32·单片机·mcu·物联网·编辑器·音视频
≮傷£≯√1 天前
图片合并成视频 img2video ffmpeg
ffmpeg·音视频
A13345551 天前
视频特效字幕怎么翻译?保姆级AI字幕与外挂字幕教程
人工智能·音视频
ViiTor_AI2 天前
从去字幕到 AI 配音:完整视频本地化流程
人工智能·音视频
明德扬2 天前
多路MIPI摄像头如何同步聚合?一文看懂FPGA视频汇聚方案
fpga开发·音视频
HY小宝F2 天前
树莓派 FFmpeg 实战笔记(二):命令行、源码编译与硬件编码的真相
学习·职场和发展·ffmpeg
折枝吖2 天前
音视频开发-PCM 原理与 AI 模块实战
音视频·pcm
HySpark2 天前
熙瑾·会悟 ASR 实战:Qwen-ASR 漏字导致转写不完整,如何从音频分段到二次校验解决?
音视频·熙瑾会悟