使用 FFmpeg 轻松调整视频的大小/缩放/更改分辨率

这篇具有很好参考价值的文章主要介绍了使用 FFmpeg 轻松调整视频的大小/缩放/更改分辨率。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在此 FFmpeg 教程中,我们学习使用 FFmpeg 的命令行工具更改视频的分辨率(或调整视频的大小/缩放)。

更改视频的分辨率(也称为调整大小或缩放)是视频编辑、处理和压缩中非常常见的操作。对于 ABR 视频流尤其如此,其中将单个视频作为源并压缩为多个不同的比特率分辨率组合。例如,输入视频的分辨率可以是1920x1080,ABR 比特流可以是1280x720,640x480等。

因此,作为第一步,让我们找出输入视频的分辨率是多少。使用FFmpeg 版本附带的工具ffprobe,让我们确定输入视频的分辨率。这是使用ffprobe.

ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 input.mp4

此命令的输出应该与您的控制台上显示的1920x1080。太好了——您现在知道视频的分辨率并且现在可以缩放或更改分辨率。

注意:您必须注意,向上/向下缩放的行为是一个有损过程,会导致视频质量有所下降。

如何使用 FFmpeg 调整/缩放/更改视频的分辨率?

使用 FFmpeg 缩放或更改视频的分辨率是由FFmpeg 中的过滤器scale完成的。要使用scale过滤器,请使用以下命令 –

ffmpeg -i input.mp4 -vf scale=$w:$h <encoding-parameters> output.mp4

其中,$w和$h表示目标视频所需的宽度和高度。例如,您可以使用-vf scale=640:480将视频大小调整为480p.

而已!使用这个简单的命令,您可以使用 FFmpeg 更改视频的分辨率。

并且,在 FFmpeg 更改视频的分辨率后,它将以该分辨率重新编码。在上面的命令行中,您可以向 FFmpeg 提供编码参数,并使用这些参数对缩放后的视频进行编码。例如,您可以告诉 FFmpeg 使用 crf=18 进行编码,以获得高质量的 H.264/AVC 编码,或者选择其他编码方式!

好的,让我们来解决下一个主题,即更改视频的分辨率但保留/保持其纵横比。

如何使用 FFmpeg 在保持高质量的同时调整视频大小

调整大小后,您可能会注意到输出视频的质量很差或达不到您的预期。通过告诉 FFmpeg 您希望在调整大小过程后使用的视频编码参数,可以轻松解决此问题。

这是一个例子——

ffmpeg -i input.mp4 -vf scale=1280:720 -preset slow -crf 18 output.mp4


在这里,您要告诉 FFmpeg 将视频缩放至 720p,然后使用 crf=18 和 libx264 的慢速预设进行编码。由于它打开的编码工具的数量,通常可以提供非常好的质量。

如何更改视频的分辨率但保持纵横比?

图像的纵横比在维基百科中有如下定义:图像的纵横比是其宽度与高度的比值。它通常表示为用冒号分隔的两个数字,如16:9. 对于x:y纵横比,图像是 x 个单位宽和 y 个单位高。

在处理视频时遇到这个问题很常见:​​如何更改视频的分辨率(或缩放视频)但保持或保留视频的原始纵横比。

在FFmpeg中,如果您想在缩放视频的同时保持其宽高比,则需要设置height或width参数之一并将另一个参数设置为-1。也就是说,如果您设置height,则将宽度设置为 -1,反之亦然。

为了演示,假设以下命令将高清视频 ( 1920x1080) 作为其输入。并且,假设我们想要更改其分辨率。这可以通过上面讨论的两种方式完成,所以让我们尝试两种方式。

1.指定宽度以保持纵横比

ffmpeg -i input.mp4 -vf scale=320:-1 output.mp4

生成的视频的分辨率为320x180. 这是因为1920 / 320= 6。因此,height被缩放到1080 / 6 = 180像素。

2.指定高度以保持纵横比

ffmpeg -i input.mp4 -vf scale=-1:720 output.mp4

生成的视频的分辨率为1280x720. 这是因为1080 / 720= 1.5。因此,width被缩放到1920 / 1.5 = 1280像素。

在 FFmpeg 中使用变量缩放/更改视频的分辨率

我们可以使用表示视频参数的变量来实现相同的缩放命令。输入视频的width和height分别用iw和表示ih。

让我们看看将视频宽度缩放两倍 ( 2x) 的命令是什么样的。

ffmpeg -i input.mp4 -vf scale=iw*2:ih output.mp4

如果你想用一个数字除以高度或宽度,语法会稍微改变,因为scale=iw/2:ih/2参数需要用双引号括起来。

ffmpeg -i input.mp4 -vf "scale=iw/2:ih/2" output.mp4  

避免根据输入视频的尺寸升级视频

正如我们在文章开头提到的,每次向上/向下缩放操作通常不会产生与输入视频相同水平的视频质量。在缩放过程中必然会有一些压缩损失。如果输入分辨率太低,FFmpeg提供了一个巧妙的技巧来防止放大。

ffmpeg -i input.mp4 -vf "scale='min(320,iw)':'min(240,ih)'" output.mp4

在上面的命令行中,执行缩放的最小宽度/高度分别设置为320和240像素。这是防止质量不佳缩放的一种非常简单的方法。

使用 FFmpeg 轻松调整视频的大小/缩放/更改分辨率,音视频开发,ffmpeg,音视频,音视频开发,C++音视频,音视频编解码,ffplay

粉丝福利, 免费领取C++音视频学习资料包+学习路线大纲、技术视频/代码,内容包括(音视频开发,面试题,FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,编解码,推拉流,srs)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓ 文章来源地址https://www.toymoban.com/news/detail-807770.html

到了这里,关于使用 FFmpeg 轻松调整视频的大小/缩放/更改分辨率的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C/C++】使用C++和Direct3D (d3d)获取屏幕截图并根据传入分辨率进行缩放图片大小

    目录 一,函数清单 1.Direct3DCreate9 函数 2.IDirect3D9::CreateDevice 方法 3.IDirect3DDevice9::GetDisplayMode 方法 4.IDirect3DDevice9::CreateOffscreenPlainSurface 方法 5.IDirect3DDevice9::GetFrontBufferData 方法 6.IDirect3DDevice9::D3DXLoadSurfaceFromSurface 方法 7. D3DXSaveSurfaceToFile 函数 二,关键代码实现 三,最终实现

    2024年01月18日
    浏览(46)
  • 使用ffmpeg修改视频分辨率同时压缩视频的质量

    调整视频的质量和码率可以使用FFmpeg中的编码选项。以下是一些常用的选项: 1 质量选项 :使用 -q:v 参数设置视频的质量等级。质量等级的范围是 0-51,其中 0 表示无损压缩,51 表示最低质量。质量等级越低,视频的文件大小就越小,但是视频的质量也会降低。 2 码率选项

    2024年02月10日
    浏览(42)
  • C# 获取系统DPI缩放比例以及分辨率大小

    虚拟屏幕是指所有物理屏幕组合成的逻辑屏幕,可以用于跨越多个物理屏幕显示应用程序。 这两个方法都可以在 正常情况 下获取到屏幕的分辨率 - 当桌面缩放比例不是 100% 的时候获取到的分辨率就是“真实”的分辨率了,而是按缩放比例调整以后屏幕显示的内容的宽度和高

    2023年04月26日
    浏览(44)
  • 【已解决】解决显示器无法缩放与布局、无法调整分辨率、显卡出现黄色感叹号提示、NVIDIA安装程序无法继续提示不兼容、使用旧版本的NVIDIA驱动程序无法解决等问题

    显卡本身没有问题,驱动无法正常安装,导致显示器无法缩放与布局、无法调整分辨率、显卡出现黄色感叹号提示、NVIDIA安装程序无法继续提示不兼容,使用旧版本的NVIDIA驱动程序无法解决等等,如下电脑出现以下的问题: 1、首先下载通用驱动和NVIDIA驱动程序,下载地址如

    2024年02月13日
    浏览(173)
  • 将图片的大小(分辨率)调整为指定的宽度和高度

    这段代码将图像文件\\\"original.jpg\\\"的大小调整为宽度300像素,高度200像素,并将调整后的图像保存为\\\"resized.jpg\\\"。您可以根据需要修改输入和输出的文件路径和名称。 1. 方法一 2. 方法二

    2024年02月08日
    浏览(50)
  • 【FFmpeg】ffmpeg 命令行参数 ⑧ ( 使用 ffmpeg 转换封装格式 | 音视频编解码器参数设置 | 视频 帧率 / 码率 / 分辨率 设置 | 音频 码率 / 采样率 设置 )

    音视频 文件 从 采样 - 处理 - 得到原始数据帧队列 - 音视频编码 - 音视频包队列 - 格式封装 的过程如下 : 封装格式 参考 【音视频原理】音视频 “ 采样 - 编码 - 封装 过程 “ 和 “ 解封装 - 解码 - 播放 过程 “ 分析 ( 视频采集处理流程 | 音频采集处理流程 | 音视频文件解封装

    2024年04月17日
    浏览(78)
  • 243:vue+Openlayers 更改鼠标滚轮缩放地图大小,每次缩放小一点

    第243个 点击查看专栏目录 本示例的目的是介绍如何在vue+openlayers项目中设置鼠标滚轮缩放地图大小,每次滑动一格滚轮,设定的值非默认值1。具体的设置方法,参考源代码。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果 示例效果

    2024年02月09日
    浏览(84)
  • 使用ffmpeg调整视频中音频采样率及声道

    通过ffmpeg -i命令查看视频基本信息 -r fps每秒传输帧数,默认为25 -s 分辨率 -ar 设定采样率 -ac 设定声音的Channel数 -acodec 设定声音编解码器,未设定时则使用与输入流相同的编解码器 FFmpeg项目由 Fabrice Bellard在2000年创立。到目前为止,FFmpeg项目的开发者仍然与VLC、MPV、dav1d、x

    2024年01月23日
    浏览(48)
  • Python获取视频分辨率大小

    可以使用 Python 的 cv2 库来获取视频的分辨率大小。具体来说,需要执行以下步骤: 1、首先,你需要安装 cv2 库。你可以使用 pip 安装: 2、然后,需要导入 cv2 库并打开视频文件。就可以使用 cv2.VideoCapture 函数来打开视频文件: 3、接着,可以使用 cv2.VideoCapture.get 函数获取视

    2024年02月15日
    浏览(61)
  • 【Python】进阶学习:一文掌握resize方法,轻松调整图像大小

    【Python】进阶学习:一文带你使用resize方法调整image对象的图像大小 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订阅和支持~ 💡 创作高质量博文(平均质量分92+),分享更多

    2024年04月25日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包