使用FFmpeg给视频增加黑边需要用到 pad 这个滤镜,具体用法如下:
    -vf pad=1280:720:0:93:black

按照从左到右的顺序依次为:
​    “宽”、“高”、“X坐标”和“Y坐标”,宽和高指的是输入视频尺寸(包含加黑边的尺寸),XY指的是视频所在位置。

比如一个输入视频尺寸是1280x534的源,想要加上黑边变成1280x720,那么用上边的语法可以实现,93是这样得来的,(720-534)/2。

如果视频原始1920x800的话,完整的语法应该是:
    -vf 'scale=1280:534,pad=1280:720:0:93:black'

先将视频缩小到1280x534,然后在加入黑边变成1280x720,将1280x534的视频放置在x=0,y=93的地方,
​FFmpeg会自动在上下增加93像素的黑边。
注:black可以不写,默认是黑色

举例: 我原视频尺寸是 960*442

现在需要改成分辨率为720*1280 并且视频保持原比例,其余黑边填充

首先就分把视频转为 720*316

316的算法 442/(960/720)取整

482算法 (1280-316)/2

  -vf 'scale=720:619,pad=720:1280:0:482:black'

具体代码

 /*** @Author * @Description  修改视频分辨率* @Date 9:02 2022/7/21* @Param [sourcePath, targetPath, height, width]* @return void**/public static void updateDpiAudio(String sourcePath, String targetPath,Integer height,Integer width) throws Exception {try {ProcessWrapper ffmpeg = new DefaultFFMPEGLocator().createExecutor();ffmpeg.addArgument("-i");ffmpeg.addArgument(sourcePath);ffmpeg.addArgument("-vf");//视频宽:720BigDecimal widthRatio = new BigDecimal(width).divide(new BigDecimal(720),1,BigDecimal.ROUND_UP);BigDecimal heightReal = new BigDecimal(height).divide(widthRatio,BigDecimal.ROUND_UP);BigDecimal value = new BigDecimal(1280).subtract(heightReal).divide(new BigDecimal(2),BigDecimal.ROUND_UP);ffmpeg.addArgument("scale=720:"+heightReal.intValue()+",pad=720:1280:0:"+value.intValue()+":black");ffmpeg.addArgument(targetPath);ffmpeg.execute();try (BufferedReader br = new BufferedReader(new InputStreamReader(ffmpeg.getErrorStream()))) {blockFfmpeg(br);}log.info("转化视频分辨率成功={}", targetPath);} catch (IOException e) {throw new Exception("转化视频分辨率失败");}}public static void main(String[] args) {try {updateDpiAudio("D:\\pic\\a\\6977276173130827137.mp4","D:\\pic\\a\\测试转码测试.mp4",442,960);} catch (Exception e) {e.printStackTrace();}}

FFmpeg 给视频增加黑边相关推荐

  1. ffmpeg给视频加黑边

    ffmpeg -i test.ts -vf "scale=620:476,pad=720:576:50:50:black" test.mp4 给视频上下左右添加50像素黑边    ...

  2. linux下ffmpeg 手机视频转换总结

    ffmpeg版本:0.5.1 flv -> mp4  ->3gp #截图: ./ffmpeg -i 视频文件 -y -ss 截图时间 -vframes 1 -f image2 -s 128 ...

  3. 使用ffmpeg合并视频文件的三种方法

    ffmpeg合并视频的方法有三种.国内大多数仅介绍了其中之一.于是觉得有必要翻译一下.其实在ffmpeg的 FAQ文档中有比较详细的说明. 使用concat协议进行视频文件的合并 这种方式的适用场景是 ...

  4. ffmpeg音视频基础知识

    ffmpeg音视频基础知识 前言 一.图像的基础知识 二.视频编码基础知识 1.视频和图片之间的关系 2.为什么要编码? 3.什么是编码? 视频相关专业术语 提示:文章写完后,目录可以自动生成,如何生 ...

  5. 为视频增加中文字幕---Amazon Transcribe

    背景介绍 语音识别技术,也被称为自动语音识别(Automatic Speech Recognition,简称ASR),其目标是将人类的语音中的词汇内容转换为计算机可读的输入,例如按键.二进制编码或者字 ...

  6. FFmpeg音视频倍速控制

    本文除了会讲到通过命令行处理倍速,还会讲到通过FFmpeg api的方式去处理音频倍速和视频倍速,进而合并成支持倍速的音视频发布成rtmp或者存成flv文件. 介绍FFmpeg的filter工具 音视 ...

  7. 深度探索:使用FFmpeg实现视频Logo的添加与移除

    深度探索:使用FFmpeg实现视频Logo的添加与移除 前言 一.FFmpeg简介(Introduction to FFmpeg) 1.1 FFmpeg的定义(Definition of FFmpeg ...

  8. SpringBoot 使用Ffmpeg合并视频

    一.安装ffmpeg 环境:Docker Centos,进入容器 1.1官网下载 Index of /ffmpeg/release-source 先下载安装包:  wget https://johnv ...

  9. FastASR+FFmpeg(音视频开发+语音识别)

    想要更好的做一件事情,不仅仅需要知道如何使用,还应该知道一些基础的概念. 一.音视频处理基本梳理 1.多媒体文件的理解 1.1 结构分析 多媒体文件本质上可以理解为一个容器 容器里有很多流 每种流是由 ...

最新文章

  1. boot loader:Grub
  2. python安装步骤3.7.2-python安装步骤_python 3.7.2安装教程
  3. python常用的日期时间模块
  4. 【原转】使用获取subview获取子view
  5. linux远程hadoop,远程调试Hadoop
  6. java web的动静分离_Apache结合Tomcat实现动静分离的方法
  7. python爬取新闻网站标题_python如何正确抓取网页标题
  8. java的观察模式链式,design-pattern-java
  9. 学会使用JDK API
  10. 决策树:ID3和C4.5
  11. 机器人方队解说词_创想机器人博物馆介绍配音解说词
  12. 基于大数据的主动科研管理模式与优化决策机制
  13. 揭密微信跳一跳小游戏那些外挂
  14. 已解决Python爬虫网页中文乱码问题
  15. js动态加载div显示主菜单和子菜单+jquery获取动态id
  16. IMX系列设备树引脚复用解析
  17. 理想职业计算机程序英语作文,理想职业英语作文(通用5篇)
  18. 根据等高线shp、点云绘制地形图
  19. 关于网站图片变形的问题
  20. 优化苦难,新手站长说说之SEO优化过程中原创内容怎么去进行

热门文章

  1. 修改mysql初始密码时报错:ERROR 1064 (42000): You have an error in your SQL syntax
  2. 想去前端培训,考察了这几个机构 ,分享一下
  3. 整型转字符串固定长度,高位自动补0
  4. 国稻种芯百团计划行动 丰收节贸促会·袁隆平:水稻国际竞争
  5. mac使用brew安装kafka
  6. Ubuntu16.04配置Leela zero(cpu版)
  7. 为什么NoSQL数据库是启动的最佳解决方案
  8. 我唱出心里话时眼泪会流,要是怕难过抱住我手。
  9. 索尼koov机器人比赛_05后都已经杀入索尼KOOV机器人决赛了 编程真的可以如此简单?...
  10. 将DVD视频转成IPAD支持的格式