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

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

更改视频文件的分辨率将是我们在处理视频文件时将执行的最常见操作之一,因此ffm​​peg能够完美地完成此操作。我们应该想要更改视频文件的分辨率有几个原因,例如:

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

在现代网站的开发中,根据它们出现的位置来分辨各种分辨率的视频是非常有用的。我们可以开发具有响应式设计的网站,其中最适合用户的视频播放。例如,如果我们有各种格式的视频 - 我们说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修改视频文件的分辨率的更多相关文章

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

    Java使用FFmpeg处理视频文件指南 本文主要讲述如何使用Java + FFmpeg实现对视频文件的信息提取.码率压缩.分辨率转换等功能: 之前在网上浏览了一大圈Java使用FFmpeg处理音视频 ...

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

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

  3. 使用FFmpeg处理视频文件:视频转码、剪切、合并、播放速调整

    安装 略. 转码 最简单命令如下: ffmpeg -i out.ogv -vcodec h264 out.mp4ffmpeg -i out.ogv -vcodec mpeg4 out.mp4ffmpe ...

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

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

  5. 实战FFmpeg--iOS平台使用FFmpeg将视频文件转换为YUV文件

    做播放器的开发这里面涉及的东西太多,我只能一步步往前走,慢慢深入.播放器播放视频采用的是渲染yuv文件.首先,要知道yuv文件是怎么转换得来的,其次,要知道怎么把视频文件保存为yuv文件.雷神的文章1 ...

  6. ffmpeg实现视频文件合并/截取预览视频/抽取音频/crop(裁剪)(ffmpeg4.2.2)

    一,ffmpeg的安装 请参见: https://www.cnblogs.com/architectforest/p/12807683.html 说明:刘宏缔的架构森林是一个专注架构的博客,地址:ht ...

  7. java调用ffmpeg获取视频文件信息的一些参数

    一.下载ffmpeg http://www.ffmpeg.org/download.html 主要需要bin目录下的ffmpeg可执行文件 二.java代码实现 package com.aw.util ...

  8. 工作记录--使用FFmpeg将一个视频文件中音频合成到另一个视频中

    由于工作需要,临时被老大吩咐去研究一个FFmpeg工具,通过linux命令行去将一个视频中的音频提取出来并合成到另一个视频中,最终的效果是要保证2个视频中的音频都在一个视频中播放. 但是本人对FFmp ...

  9. (原)使用ass字幕文件通过ffmpeg给视频添加字幕的一些研究

    使用ass字幕文件通过ffmpeg给视频添加字幕的一些研究 Author:lihaiping1603@aliyun.com Create:2019-09-04 最近对ffmpeg给视频文件添加字幕效果 ...

随机推荐

  1. 常用获取inflate的写法

    1.             //context:上下文, resource:要转换成view对象的layout的id, root:将layout用root(ViewGroup)包一层作为codify ...

  2. 使用ajax上传文件

    1. XMLHttpRequest(原生ajax) [](javascript:void(0) <input class="file" type="file&quo ...

  3. php程序员经验

    PHP 学习计划流程2008-10-22 17:23PHP 学习计划流程1.看教程 (2-3月)大概1天1个章节,比如<PHP圣经>有32章,1个多月就看完了,当然后面的章节每章1天肯定看 ...

  4. Python接口自动化测试_悠悠

    https://yuedu.baidu.com/ebook/585ab168302b3169a45177232f60ddccda38e695###  

  5. 文本处理命令(sort+uniq+cut+tr+wc)+三剑客之sed

    目录 文本处理命令+三剑客之sed 一.文本处理命令 1.排序命令 sort 2.检查/删除命令 uniq 3. cut 显示特定部分命令 4. 替换或删除命令 tr 5.统计 计算数字命令 wc 二 ...

  6. [技术干货-算子使用] mindspore.scipy 入门使用指导

    1. MindSpore框架的SciPy模块 SciPy 是基于NumPy实现的科学计算库,主要用于数学.物理学.生物学等科学以及工程学领域.诸如高阶迭代,线性代数求解等都会需要用到SicPy.Sci ...

  7. 5.1 Paralles 为虚拟机设置静态ip

    一.配置独立ip的环境 前面研究了k8s的组件,核心概念,网络模型,都了解了一遍,现在就要进入实战了,摆在面前的一座大山,必须克服才行---虚拟机搭建,及网络环境配置. 先说说本文的运行环境: mac ...

  8. Solution -「HDU 6643」Ridiculous Netizens

    \(\mathcal{Description}\)   Link.   给定一棵含有 \(n\) 个结点的树,点 \(u\) 有点权 \(w_u\),求树上非空连通块的数量,使得连通块内点权积 \(\ ...

  9. Solution -「UR #2」「UOJ #32」跳蚤公路

    \(\mathcal{Description}\)   Link.   给定一个 \(n\) 个点 \(m\) 条边的带权有向图,每条边还有属性 \(s\in\{-1,0,1\}\).对于每个 \(u ...

  10. RFC2544优化步长测试——信而泰网络测试仪实操

    一.测试拓扑 拓扑说明 1.测试仪两个端口和DUT两个端口相连 2.测试仪P1端口发出流量,经过DUT转发后,从B端口发出,进入测试仪P2端口. 二.测试思路 1.在测试仪端口上创建两个Interfa ...