最近在处理视频的时候,有这么一个需求

如果视频的分辨率宽度大于960的话,就把宽度设为960,而高度按其比例进行缩放

如果视频的分辨率高度大于540的话,就把高度设为540,而宽度按其比例进行缩放

之前用了很多方法都只能解决一部分

而且会报:

"width / height not divisible by 2" 解决方法

如这种错误,就是说 宽度/高度不能被2除尽

其实解决方法也很简单,先看代码

//设置或保存ffmepg的参数
string ffmpegFormart = string.Empty;
if ( width > height && width > 960 )
{
//如果宽度比高度大且又大于960的情况下,以宽度为960来缩放 ffmpegFormart = string.Format (" -vf scale=960:{0}/({1}*1.00/960) " , height , width); //下面这种方法可以解决一部分,但是遇到高度无法被2除尽的时候会报错误
//ffmpegFormart = $" -vf scale=960:-1 "; }
else if ( width < height && height > 540 )
{
//如果高度比宽度大且又大于540,以高度540来缩放 ffmpegFormart = string.Format (" -vf scale={0}/({1}*1.00/540):540 " , width , height);
}

  思路就是一个小学数学的思路

例如有一个视频分辨率为1280*720

如果我要将高度设为固定的540,那么,宽度就应该为  1280/(720/540) 约等于962的样子

当然,这样肯定会有一像素之内的差距,但也不会有什么影响

所以如果视频在处理的时候

宽度:width

高度:height

固高:XHeight

那么可以得出

动宽 ≈ +width/(height*1.00/XHeight)

下图就是我经过处理的不规则分辨率之后

ffmpeg按比例缩放--"width / height not divisible by 2" 解决方法的更多相关文章

  1. jQuery UI resizble、draggable的div包含iframe导致缩放和拖拽的不平滑解决方法

    前言 不仅仅是jQuery UI resizble的div包含iframe会导致缩放的不平滑,draggable也会出现包含iframe会导致拖放的不平滑,但是因为jQuery UI有为draggab ...

  2. table和div设置height:100%无效的完美解决方法

    刚接触网页排版的新手,常出现这种情况:设置table和div的高height="100%"无效,使用CSS来设置height:"100%"也无效,为什么会这样呢 ...

  3. ffmpeg编解码视频导致噪声增大的一种解决方法

    一.前言 ffmpeg在视音频编解码领域算是一个比较成熟的解决方案了.公司的一款视频编辑软件正是基于ffmpeg做了二次封装,并在此基础上进行音视频的编解码处理.然而,在观察编码后的视频质量时,发现图 ...

  4. 图片 css剪切,等比例缩放

    object-fit: cover; .img1 {//自定义图片宽高,并且等比例缩放 width: 200px; height: 400px; object-fit: cover; }

  5. C#图片按比例缩放

    C#图片按比例缩放: // 按比例缩放图片 public Image ZoomPicture(Image SourceImage, int TargetWidth, int TargetHeight) ...

  6. Java控制图片按比例缩放- (注意内存释放)

    package mytiny.com.common; import java.awt.Color;import java.awt.Graphics2D;import java.awt.Image;im ...

  7. 理解CSS3中的background-size(对响应性图片等比例缩放)

    理解CSS3中的background-size(对响应性图片等比例缩放) 阅读目录 background-size的基本属性 给图片设置固定的宽度和高度的 固定宽度400px和高度200px-使用ba ...

  8. jQuery实现等比例缩放大图片

      在布局页面时,有时会遇到大图片将页面容器“撑破”的情况,尤其是加载外链图片(通常是通过采集的外站的图片).那么本文将为您讲述使用jQuery如何按比例缩放大图片,让大图片自适应页面布局. 通常我们 ...

  9. [原创]C#按比例缩放窗体控件及字体

    按照比例缩放窗体控件及字体,如需等比例缩放,只需将x,y的比例设置成相同即可. 为了减小误差,建议使用原始尺寸来计算比例. private float X, Y; private bool b = f ...

随机推荐

  1. Netbeans8.1设置Consola字体并解决中文乱码问题

    netbeans是php非常好用的ide,并且还是免费的!但是好多字体不支持中文,会显示如下乱码: 解决方法如下: 通过修改jre的配置文件成功解决了这个问题. 1. 进入jdk安装目录下/jre/l ...

  2. openstack 创建虚拟机的时候报错: Failed to allocate the network(s), not rescheduling.].

    错误: 实例 "test-gtj" 执行所请求操作失败,实例处于错误状态.: 请稍后再试 [错误: Build of instance 5ea8c935-ee07-4788-823 ...

  3. 「BZOJ1095」[ZJOI2007] Hide 捉迷藏

    题目描述 Jiajia和Wind是一对恩爱的夫妻,并且他们有很多孩子.某天,Jiajia.Wind和孩子们决定在家里玩捉迷藏游戏.他们的家很大且构造很奇特,由N个屋子和N-1条双向走廊组成,这N-1条 ...

  4. django 获取外键对应数据的方式

    模型 models.py中 from django.db import models class User(models.Model): name = models.CharField() class ...

  5. 六,mysql优化——小知识点

    1,选择适当的字段类型,特别是主键 选择字段的一般原则是保小不保大,能占用字节小的字段就不用大字段.比如主键,建议使用自增类型,这样节省空间,空间就是效率!按4个字节和按32个字节定位一条记录,谁快谁 ...

  6. Linux零碎知识

    ln -s用法: 创建软连接,命令如下: ln -s / /home/good/linkname ln的链接分软链接和硬链接两种: .软链接就是:“ln –s 源文件 目标文件”,只会在选定的位置上生 ...

  7. [HTML] H5在webApp中的注意事项

    常用的meta标签 <!--防止手机中网页放大和缩小--> <meta name="viewport" content="width=device-wi ...

  8. java验证身份证合理性

    package com.tiantian.util; import java.util.Calendar;import java.util.HashMap;import java.util.Map;i ...

  9. class字节码结构(三)(字段集合的结构)

    <Java虚拟机原理图解>1.4 class文件中的字段表集合--field字段在class文件中是怎样组织的 字段区:包括了字段计数器和字段数据区: 字段是指在类中定义的静态或者非静态的 ...

  10. Python小白学习之路(二十二)—【生成器】

    一.什么是生成器? 生成器可以理解成是一种数据类型,特殊地是生成器可以自动实现迭代器协议其他的数据类型需要调用自己内置的__iter__方法所以换种说法,生成器就是可迭代对象 !回忆:很重要的迭代器协 ...