当前位置: 首页 > news >正文

手机网站制作哪家便宜搜索引擎营销概念

手机网站制作哪家便宜,搜索引擎营销概念,制作一个网站怎么做的,厚街网站建设多少钱最近遇到一个需求#xff0c;希望可以将素材视频的绿幕背景替换为指定的颜色#xff0c;然后通过裁剪#xff0c;拼接等处理制作一个新的视频。所以替换背景色成为了重要的一环#xff0c;看能否通过ffmpeg来实现。通过一番搜索尝试#xff0c;发现方案可行。下面我整理一…最近遇到一个需求希望可以将素材视频的绿幕背景替换为指定的颜色然后通过裁剪拼接等处理制作一个新的视频。所以替换背景色成为了重要的一环看能否通过ffmpeg来实现。通过一番搜索尝试发现方案可行。下面我整理一下实现方法。 功能实现 本文的测试视频我在B站上随便找了一个菜虚坤拍篮球绿幕视频素材。截图如下 首先需要将视频中的绿色改为透明类似把人物抠出来这样才能便于修改背景颜色。因为mov格式视频支持透明通道所以第一步需要在去除背景色的同时将视频保存为mov格式。所以需要使用到chromakey滤镜。 ffmpeg -i input.mp4 -vf chromakey#3fff08:0.1:0.04 -c:v qtrle -c:a copy output.mov#3fff08是绿幕的颜色也就是需要替换为透明的颜色。0.1是相似度(similarity)参数。这个参数决定了颜色匹配的严格程度。值越小匹配的颜色范围越窄也就是说只有非常接近指定颜色的像素才会被视为透明。值越大匹配的颜色范围越宽也就是说即使颜色和指定颜色有一些差距也会被视为透明。0.04是混合度(blend)参数。这个参数决定了边缘像素的处理方式。值越小边缘像素的处理越严格可能会导致边缘部分出现锐利的边缘。值越大边缘像素的处理越宽松可能会导致边缘部分出现柔和的过渡。 然后修改颜色 ffmpeg -i output.mov -vf colorcolor#2B2D30:size1920x1080 [bg]; [bg][0:v] overlayshortest1 output2.mp4#2B2D30是需要修改的视频背景色。1920x1080是视频的分辨率也就是给视频一个这么大的背景。 我们以上面0.1和0.04的参数处理后效果如下 因为指定的相似度精度高所以人物边缘绿色未去除。因为边缘色值或许不是#3fff08。所以我尝试将0.1改为0.18效果如下 效果好了许多按照这个思路我尝试到0.3感觉效果就已经比较好了。 需要注意的是这两个参数不是越大越好过高的值会匹配更多的颜色会导致整个视频都透明了。比如我试了0.3和0.1的组合效果如下 发现画面整个变暗了因为背景是灰色混合度过高所以就像是蒙了一层灰色。所以这两个参数的具体值取决于视频和绿幕的特定情况。需要根据实际效果进行调整以获得最佳的绿幕去除效果。 工具制作 如果只是功能实现那么上面的两条命令基本已经够了。但是要将这一功能做成工具就需要更近一步。 首先命令中的参数都需要动态获取。 获取原视频的背景色。获取原视频的分辨率帧率。两个阈值参数可以输入。 为什么需要获取帧率因为转换后视频默认转为了25帧如果你不想影响原视频帧率就需要指定帧率例如指定30帧 ffmpeg -i output.mov -vf colorcolor#2B2D30:size1920x1080 [bg]; [bg][0:v] overlayshortest1 -r 30 output2.mp4另外码率也是类似。 获取背景色 ffmpeg -ss 0.1 -i input.mp4 -vframes 1 output.jpg首先通过命令获取一张视频的截图这里取0.1s的位置。 然后获取图片中颜色最多的色值。我这里是用flutter实现的代码如下 /// 获取图片数据Futureui.Image? loadImage(File file) async {final Completerui.Image completer Completer();ImageProvider imageProvider FileImage(file);ImageStreamListener listener ImageStreamListener((info, _) async {completer.complete(info.image);});final ImageStream stream imageProvider.resolve(const ImageConfiguration());stream.addListener(listener);try {await completer.future;} catch (e) {debugPrint(Error loading image: $e);} finally {stream.removeListener(listener);}return completer.isCompleted ? completer.future : null;}/// 获取图片中颜色最多的色值FutureColor? getMostCommonColor(ui.Image? image) async {if (image null) {return null;}Uint8List bytes await image.toByteData().then((data) data!.buffer.asUint8List());final colorCount Color, int{};for (int i 0; i bytes.lengthInBytes; i 4) {final red bytes[i];final green bytes[i 1];final blue bytes[i 2];final alpha bytes[i 3];final key Color.fromARGB(alpha, red, green, blue);if (colorCount.containsKey(key)) {colorCount[key] colorCount[key]! 1;} else {colorCount[key] 1;}}Color? mostCommonColor;int maxCount 0;colorCount.forEach((color, count) {if (count maxCount) {mostCommonColor color;maxCount count;}});return mostCommonColor;}这是一种思路当然也可以获取指定位置的颜色毕竟背景色都是一致的如果不一致那么替换的效果也会打折扣所以这种方法相对比较简单一些。 FutureColor? getPixelColor(ui.Image? image, int x, int y) async {if (image null) {return null;}final byteData await image.toByteData();if (byteData null) {return null;}final width image.width;final pixelOffset (y * width x) * 4;final r byteData.getUint8(pixelOffset);final g byteData.getUint8(pixelOffset 1);final b byteData.getUint8(pixelOffset 2);final a byteData.getUint8(pixelOffset 3);return Color.fromARGB(a, r, g, b);}这里我获取到的色值是16进制的例如Color(0xff14ff09)我需要转成字符#14ff09。 Color color Color(0xff14ff09); String colorStr #${color.value.toRadixString(16).substring(2)};获取视频的分辨率帧率 获取命令 ffprobe -v error -select_streams v:0 -show_entries streamwidth,height,r_frame_rate -of csvp0 input.mp4这里使用csvp0让结果用逗号拼接返回例如1920,1080,30/1 然后我们用代码处理这个字符串获取最终想要的 1920x1080和30就行了这里就贴代码了。 阈值参数 最后页面上加两个输入框输入这两个阈值参数就万事具备了。 最后结合上面的两条核心命令将这些参数传入进去就可以了。看似一句话的需求实际上细节还是比较多的。 参考 ffmpeg绿幕抠图原理解析
http://www.hkea.cn/news/14479374/

相关文章:

  • 收图片的网站礼品网站建设公司
  • 网站建设中的主要功能沧州百度建设网站
  • 网站建设信(信科网络)良品铺子网站建设
  • 网站后台管理系统模板htmldnsprefetch wordpress
  • 手机网站内容模块北京市住房和城乡建设部官方网站
  • 邵东网站建设莱芜地板街50一次
  • 做汽配找哪个网站好好品质高端网站设计推荐
  • 网站目录结构设计应注意的问题手机网站左右滑动
  • 深圳响应式网站开发如何进行电商网站设计
  • 佛山设计网站公司0797 网站制作
  • 博州住房和城乡建设局网站如何建造自己的网站
  • 网站提现功能怎么做多仓库版仓库管理网站建设源码
  • 网站搜索网站建设平台选用及分析
  • 桐城住房建设网站搜狗推广下架
  • 公网ip购买wordpress站内seo
  • 深圳网站设计 商城外网视频网站做泥声控
  • 动态的网站怎么做设计一个网站的优势
  • 目前旅游网站开发电商平台网站制作
  • 网站ftp地址查询房产网站有哪些
  • 台州最新消息今天最新动态上海快速优化排名
  • 网站建设A系列套餐报价推销商务网站的途径有哪些
  • 外贸企业网站策划给企业做网站推广好么?
  • 景区网站建设策划书哪些网站上推广比较好
  • 凡科建站网站建设做网页用的网站
  • 网站界面设计实训的意义企业网站制作公司合肥
  • 珠海网站建设珠海易推网seo网络优化前景怎么样
  • 券优惠网站如何做云主机怎么装网站
  • 大连建设工程信息网官网官网官免费网站建设seo
  • 网站备案编号小程序需不需要服务器
  • 哈尔滨响应式网站建设公司图片类网站模板