在本文中,我们将展示如何调整任何视频文件的大小。

此方法是在 Linux 系统(几乎所有发行版)中调整视频文件大小的最佳方法之一,也是 Windows 和 Mac 用户的绝佳替代方案。

更改视频文件的分辨率将是我们在处理视频文件时将执行的最常见操作之一,因此 ffmpeg 能够完美地做到这一点。我们应该更改视频文件的分辨率有多种原因,例如:

  • 减小视频的大小。这可以通过降低视频的分辨率来实现。如果我们以高清视频(1920x1080 像素)为例,但我们知道我们永远不会在支持比 1024x768 更高的分辨率的屏幕上看到视频,我们可以降低视频分辨率以适应这种新分辨率,从而节省大量存储空间空间,如果在 Internet 上使用,还可以节省带宽。
  • 多次更改视频文件的分辨率以标准化其格式。也就是说,如果我们有多个视频并且我们希望它们都具有相同的分辨率,则必须经历这个更改分辨率的过程。

在现代网站的开发过程中,根据视频出现的位置将视频设为各种分辨率是非常有用的。我们可以开发具有响应式设计的网站,在其中播放最适合用户的视频。例如,如果我们有各种格式的视频——我们说 1920x1080、1280x720 和 640x360——我们可以设计一个响应式网站,让访问者根据访问者浏览器的节省带宽来重现正确的视频分辨率(请记住,移动用户通常需要付费用于传输的数据,因此最好传输尽可能少的流量)

在这个例子中,我们将高清格式(1920x1080 像素)的视频分辨率降低到 640x360(这是一个相当常用的宽高比 16:9 配置):

ffmpeg -i video_1920.mp4 -vf scale=640:360 video_640.mp4 -hide_banner

只需使用-vf scale=640:360指示具有新的所需分辨率(640:360)的缩放视频过滤器 。要考虑:

  • 我们可以指定我们想要的任何分辨率,但生成的视频将始终具有相同的纵横比。也就是说,它不会使图像失真,如果视频是 16:9 的纵横比,它将保持视频的纵横比为 16:9。该程序将调整生成的视频,使其适合我们提供的分辨率。
  • 更改分辨率时,视频必须再次进行编码过程,因此该过程可能会很慢,具体取决于输出格式和用于输出的编解码器。
  • 我们没有提到它,但在大多数情况下 ,将视频转换为更高分辨率 是没有意义的,因为视频质量不会有任何改善。

更改视频纵横比

如果我们想改变视频的外观,知道图像会出现扭曲,我们可以使用额外的过滤器“ setdar”。想象一下,在前一种情况下,我们要将 16:9 的纵横比更改为 4:3,因此视频的纵横比为 4:3,在本例中为 640x480。进行此转换的 ffmpeg 命令将是:

ffmpeg -i video_1920.mp4 -vf scale=640:480,setdar=4:3 video_640x480.mp4 -hide_banner

在这种情况下,我们得到的视频输出 video_640x480.mp4 改变了原始视频的外观并且图像有些失真,但它会以新的外观获得我们想要的分辨率。

另一方面,如果我们不想依赖使用可能“更正常”  (4:3、16:9)的纵横比, 或者如果我们想更改其他未定义纵横比的分辨率,我们不怕可能出现的图像变形,我们可以使用“ setsar” 过滤器,让您不必保持这些纵横比。通过这种方式,我们可以将之前的视频转换为 200x400 的分辨率,例如,使用以下命令:

ffmpeg -i video_1920.mp4 -vf scale=200:400,setsar=1:1 video_200x400.mp4 -hide_banner

从 1920x1080 分辨率到 200x400 分辨率的结果使视频输出具有扭曲的外观。

视频大小调整示例

我们将看到一些使用 ffmpeg 调整视频大小的示例。我们有一个分辨率为 320x180 像素的原始视频。这里是。

正如我们之前看到的,我们可以将视频大小调整为原始大小的一半。我们使用以下命令将其从 320x180 像素分辨率调整为 160x90 像素分辨率:

ffmpeg -i video_320x180.mp4 -vf scale=160:90 video_180x90.mp4 -hide_banner

该视频已从 1.18MB 大小变为 354KB 视频(四分之一)。结果如下:

请注意,视频较小,但我们可以告诉浏览器将其放大,但与原始视频相比质量有所下降。

现在让我们将原始视频纵横比从 16:9 更改为 4:3。为此,我们使用以下命令将视频大小从 320x180 调整为 320x240:

ffmpeg -i video_320x180.mp4 -vf scale=320:240,setdar=4:3 video_320x240.mp4 -hide_banner

这是结果(您可以看到图像失真):

现在最后我们将调整视频的大小,就好像它必须适合垂直屏幕一样,所以我们将大小从 320x180 像素调整为 180x320 像素。这是将执行任务的命令:

ffmpeg -i video_320x180.mp4 -vf scale=180:320,setsar=1:1 video_180x320.mp4 -hide_banner

这是扭曲的结果:

请注意,在此视频中,我还包含了一个 webm 格式的源,以实现最大的兼容性。我已经这样做了,所以如果您的浏览器无法直接处理 mp4 文件,您可以在类似的 webm 文件中看到结果。

内容转自

使用ffmpeg修改视频文件的分辨率_运用之妙,存乎一心-CSDN博客_ffmpeg修改视频分辨率

使用ffmpeg修改视频文件的分辨率相关推荐

  1. Java使用FFmpeg处理视频文件指南

    https://www.cnblogs.com/Dreamer-1/p/10394011.html Java使用FFmpeg处理视频文件指南 本文主要讲述如何使用Java + FFmpeg实现对视频文 ...

  2. 使用ffmpeg进行视频文件转换成FLV整理

    本系列文章导航 Windows下FFmpeg快速入门 ffmpeg参数解释 mencoder和ffmpeg参数详解(Java处理视频) Java 生成视频缩略图(ffmpeg) 使用ffmpeg进行视 ...

  3. 使用ffmpeg从视频文件中提取音频文件、视频抽帧和切割视频

    目录 ffmpeg下载 使用ffmpeg从视频文件中提取音频文件 批量提取文件夹下多个视频文件的音频 使用ffmpeg从视频文件中提取视频帧 使用ffmpeg将按固定时长将视频切割成多个小片段 将分割 ...

  4. Java使用FFmpeg处理视频文件的方法教程

    这篇文章主要给大家介绍了关于Java使用FFmpeg处理视频文件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧 前言 本文主要 ...

  5. 怎么修改视频文件的修改时间?

    怎么修改视频文件的修改时间?当我们在修改视频文件时,系统会自动记录我们的修改时间,如果我们在修改时间内没有进行任何操作,系统将默认我们的修改时间为当前时间.但是因为某种原因,我们存在需要隐藏修改视频文 ...

  6. ffmpeg合并视频文件

    ffmpeg合并视频文件 创建列表文件filelist.txt,将需要合并的文件按顺序加入,内容如下所示: ffconcat version 1.0 file path/test_1.mp4 file ...

  7. ffmpeg解码视频文件并播放

    最近学习了一下如何使用ffmpeg解码音视频,网上的教程挺多但是也挺杂的,搞了好几天,明白了ffmpeg解码音视频的大体流程,这里记录一下ffmpeg解码视频并播放音视频的例子,但并没有做音频.视频播 ...

  8. ffmpeg音视频文件音视频流抽取,初步尝试人声分离

    文章目录 ffmpeg抽取音视频文件中的音频流 音频流类型 AAC与m4a的区别 AAC与mp3的区别 用ffmpeg查看视频的信息 用ffmpeg抽取AAC音频流 从AAC文件中获取音轨 音轨是什么 ...

  9. FFMPEG 合并视频文件(无损)

    FFMPEG 合并视频文件(无损) 前言 最近在做视频转码相关业务,但是片源商给了一些DVD的零散视频片段,需要自己去合并片段并进行业务转码,本篇文章主要记录视频合并的过程及常见的合并方式. 环境 F ...

  10. FFmpeg播放视频文件流程

    一.FFmpeg解码播放主要流程,如图1-1所示: 使用播放一个媒体文件时,通常需要经过以下几个步骤: 图1-1    FFmpeg 播放视频文件流程 1.解封装(Demuxing):就是将输入的封装 ...

最新文章

  1. 关于IPv4设置一些常见问题的解答
  2. cygwin安装skyeye 所需的软件包列表
  3. android xml事件,安卓事件
  4. 四大开源分布式存储_ipfs分布式存储行业面临着四大主要风险,你知道是哪些吗?...
  5. MyBatis笔记——配置文件完成增删改查
  6. 【转】简单的解释XSS攻击
  7. Java架构师面试网整理-JVM面试专题(共8题含答案)
  8. 非985/211学校的毕业生,进大厂的机率有多大?
  9. PHP校园食堂系统描述
  10. Android实现TCP客户端
  11. 算法评测在本地生活地图技术领域的探索和实践
  12. JS将sql的dateTime格式数据例如:Wed Sep 30 00:00:00 CST 2020 字符串转换成2020-09-30 00:00:00时间格式
  13. GitHub上的AutoML
  14. python 基于CQL操作neo4j数据库
  15. 按规定顺序输出26个字母
  16. 手把手教你美国亚马逊直购
  17. RT_Thread_事件集
  18. 蓝桥杯 省赛真题寻找 2020
  19. DevExpress----破解补丁
  20. NMS网络管理产品战略规划

热门文章

  1. 一转眼,波士顿动力 Atlas 机器人又会过独木桥了!
  2. 不做自了汉,大家好才是真的好
  3. PDF文件有密码怎么办?
  4. 工作流-Activiti7-基础讲解
  5. 2560x1600分辨率高吗_2560x1600是多大尺寸的屏幕
  6. Easy Iot实现MQTT实验
  7. 高位压迫——萨基给世界足坛带来的技术革命
  8. Labview筛选符合条件的数据
  9. 五十条参透世间尘世的话语
  10. 金色传说:SAP-FICO-COPA:创建销售订单时,获利能力段不自动带出,报错消息号KE0C133:特性值 2720000100000001对于特性 EXTWG 不存在 (外部物料组)