yuv420P视频剪切

最近在研究使用ffmpeg库进行视频的旋转和剪切,下面就贴上视频剪切的代码

void clipSize(const uint8_t *buffer, uint8_t *result, const int nWidth, const int nHeight, const int startX, const int startY, const int endX, const int endY)
{static int nySize = nWidth * nHeight;int k = 0;static int nuSize = nySize >> 2;static int uvWidth = nWidth >> 1;static int uvHeight = nHeight >> 1;static int destW = endX - startX + 1;static int destH = endY - startY + 1;static int destuW = destW >> 1;static int destuH = destH >> 1;static int startuY = startY >> 1;static int startuX = startX >> 1;uint8_t *ptr = result;for (int i = 0; i < destH; ++i){//for (int j = 0; j < destW; ++j)//{//result[k++] = buffer[(startX + i) * nWidth + j];memcpy(ptr, buffer + ((startX + i) * nWidth), destW);ptr += destW;//}}uint8_t *temp = (uint8_t *)buffer + nySize;for (int i = 0; i < destuH; ++i){//for (int j = 0; j < destuW; ++j)//{//result[k++] = buffer[nySize + (startuX + i) * uvWidth + j];memcpy(ptr, temp + ((startuX + i) * uvWidth), destuW);ptr += destuW;//}}temp = temp + nuSize;for (int i = 0; i < destuH; ++i){//for (int j = 0; j < destuW; ++j)//{//result[k++] = buffer[nySize + nuSize + (startuX + i) * uvWidth + j];//}memcpy(ptr, temp + (startuX + i) * uvWidth, destuW);ptr += destuW;}
}

传入目标的起始x,y和终点x,y即可完成视频裁剪
效果如图:
我传入的参数是(100,100)和(500,500)
剪切后视频大小为401*401,即500-100+1的大小。
在这里要感谢雷神的博客让我入门ffmpeg

YUV420P视频裁剪相关推荐

  1. Python 实现视频裁剪(附代码) | Python工具

    目录 前言 环境依赖 代码 总结 前言 本文提供将视频按照自定义尺寸进行裁剪的工具方法,一如既往的实用主义. 环境依赖 ffmpeg环境安装,可以参考我的另一篇文章:windows ffmpeg安装部 ...

  2. 短视频生产利器!视频裁剪之横屏转竖屏新技术,出自腾讯多媒体实验室

    腾讯多媒体技术专栏 伴随手机等智能设备的广泛使用以及短视频平台的兴起,越来越多的"竖屏"视频开始占据人们的视野.目前,许多"竖屏"视频仍是由16:9等宽高比的& ...

  3. 高度固定 宽度裁剪_ffmpeg 视频裁剪

    视频裁剪 时间 ( 00:00:01 ),开始到结束 ( 00:00:05 ), 首尾大概有一秒的误差 ffmpeg -ss 00:00:01 -i one.MP4 -to 00:00:05 -c c ...

  4. IOS视频编辑,视频裁剪,视频拼接,音频处理,视频处理

    前言 用代码在简单视频编辑中,主要就是加美颜.水印(贴图).视频截取.视频拼接.音视频的处理,在美颜中,使用GPUImage即可实现多种滤镜.磨皮美颜的功能,并且可以脸部识别实时美颜等功能,这个有很多 ...

  5. 视频裁剪的软件哪个好用?推荐几个视频裁剪软件给你

    当我们在制作视频的时候,需要对视频进行裁剪,剪取我们所需要的视频部分,不论是画面的裁剪,还是时长片段的截取,都需要我们借助一些裁剪辅助工具来进行,但是如今市面上的视频裁剪工具众多,你知道视频裁剪工具哪 ...

  6. FFmpeg基础: 视频裁剪

    基本概念 在对视频进行裁剪之前,我们先讲几个基本概念. 第一个概念是PTS(Presentation Time Stamp) 显示时间戳,用来定位帧的显示时间. 第二个概念是DTS(Decode Ti ...

  7. ffmpeg 将一个视频裁剪多个部分,然后合并所有的裁剪为一个视频

    如果你想利用 ffmpeg 将一个视频裁剪为多个部分,然后合并所有的裁剪为一个视频, 那么你可以执行 : ffmpeg -i input -filter_complex "[0:v:0]se ...

  8. Python Opencv 之 简单的视频裁剪功能的实现

    Python Opencv 之 简单的视频裁剪功能的实现 目录 Python Opencv 之 简单的视频裁剪功能的实现 一.简单介绍 二.实现原理 三.注意实现 四.效果预览 五.实现步骤 这里实现 ...

  9. PPT导入视频裁剪后,如何裁剪后的视频另存为保存下来?

    PPT导入视频裁剪后,如何裁剪后的视频另存为保存下来? 步骤: 在PPT中插入视频 鼠标放在视频上,右键–> 剪裁 拖动进度条,选择裁剪的部分 依次选择: 文件–> 信息 --> 压 ...

最新文章

  1. 如何使用一个单片机的IO口控制两个LED?
  2. Anuglar中正确导入RxJS库
  3. 最课程阶段大作业之01:使用SVN实现版本控制
  4. Win2008 R2 VDI动手实验系列之二:远程桌面虚拟化主机配置
  5. MES助力中国制药行业 (GMP)
  6. 三、取消发布的WebService(删除一个发布成功的Web服务)
  7. Atitit java wav 压缩 mp3功能总结 目录 1.1. Lame mp3编码器 1 1.2. 使用时发现错误,不支持Unsupported number of channels: 4
  8. TypeError: __init__() got an unexpected keyword argument 'serialized_options'(安装protobuf 3.6.0)
  9. 《一页纸项目管理》读书笔记
  10. 这几天的QC培训想到的
  11. ArcGIS教程 - 1 绪论
  12. 多图赏析联想Windows 8平板ThinkPad Tablet 2
  13. 解决Docker端口映射无法访问问题
  14. G. 打印 LOGO(递归)
  15. 最新GEP分销系统网站源码官方
  16. 采用计算机辅助数据收集,关于计算机在数据收集中的作用分析
  17. 在线考试系统的时间控制(倒计时)
  18. matlab 安装出来封面就没了,基于Matlab的计算报告书封面生成方法及计算机存储介质与流程...
  19. python练习题---矩阵求和
  20. 通证网:一建的报考条件

热门文章

  1. 2021-08-10 VS2019 MFC
  2. houdini 求出曲线的法向 切线以及副法线
  3. 学校教务管理系统(第二弹
  4. Spark 和hadoop的一些面试题(准备)
  5. 胖虎技术群Java后端的良师
  6. 雷达指标,应用,抗干扰技术——概述汇总
  7. ABAP ALV单元格最大显示长度
  8. 安卓开发——拍照、裁剪并保存为头像报错:裁剪图片无法保存的
  9. week3 摄像头捕获人脸 AI换脸
  10. linux越狱时手机怎么进入dfu,手动进入DFU模式并开始越狱