控制比特率

可以通过设置比特率来压缩视频。比特率是决定视频文件大小的主要因素之一。以下命令将视频比特率设置为 1000k:

ffmpeg -i input.mp4 -b:v 1000k output.mp4

这个命令会以 1000k 的比特率重新编码视频,压缩后的视频质量可能会略有下降,但文件大小会减小。

使用 CRF(Constant Rate Factor)模式

CRF 是 FFmpeg 中一种在质量和文件大小之间取得平衡的模式。CRF 值的范围为 0-51,数值越低,质量越高,文件越大。通常,23 是默认值,18-23 被认为是较好的平衡点。你可以使用以下命令来压缩视频:

ffmpeg -i input.mp4 -vcodec libx264 -crf 23 output.mp4

这个命令使用 libx264 编码器,并通过设置 -crf 值来压缩视频,同时保持较好的视频质量。

调整分辨率:

如果允许降低分辨率,你可以使用 -vf 参数调整视频的分辨率,从而进一步减小文件大小:

ffmpeg -i input.mp4 -vf "scale=1280:720" -crf 23 output.mp4

这个命令将视频的分辨率调整为 1280x720,并使用 CRF 23 进行压缩。

音频压缩:

除了视频压缩外,调整音频比特率也能有效减少文件大小。以下命令将音频比特率设置为 128k:

ffmpeg -i input.mp4 -b:a 128k output.mp4

可以结合视频和音频的设置一起使用:

ffmpeg -i input.mp4 -vcodec libx264 -crf 23 -b:a 128k output.mp4

不降低视频质量的压缩

在不明显降低视频质量的情况下,使用 CRF 模式并控制在适当的范围(如 18-23)是一个较为通用的做法。此外,调整音频比特率并确保分辨率符合需求,也能在不牺牲太多质量的前提下有效压缩文件大小。

非常非常重要的一个参数。

码率就是数据传输时单位时间(1s)传送的数据位数,一般我们用的单位是 kbps 即千位每秒。

码率与体积的关系:

  • 在相同的时间下,码率越大,体积就越大。
  • *存储体积 = 码率 时间。**

码率与画质的关系:

  • 同样分辨率下,视频文件的码率越大,压缩比就越小,画面质量就越高。码率越高,精度就越高,处理出来的文件就越接近原始文件,图像质量越好,画质越清晰,要求播放设备的解码能力也越高。

  • 编码模式 码率取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件,但是文件体积与取样率是成正比的,所以几乎所有的编码格式重视的都是如何用最低的码率达到最少的失真,围绕这个核心衍生出来 cbr(固定码率)、vbr(可变码率)、abr(平均码率);

CBR: constant bitrate(固定码率)

  • 以恒定比特率方式进行编码,有运动发生时,由于码率恒定,只能通过增大 QP 来减少码字大小,图像质量变差,当场景静止时,图像质量又变好,因此图像质量不稳定。

  • 这种算法优先考虑码率(带宽)。适合在流式播放中应用。

  • CBR 编码的缺点在于编码内容的质量不稳定,容易产生马赛克。因为对于某些较复杂的图像比较难压缩,所以 CBR 流的某些部分质量就比其他部分差。

VBR:variable bitrate(动态码率)

  • 比特分配根据图像内容的复杂度进行。如果图像细节较丰富或者含有大量的运动,则给其分配大一点的码流,若图像比较平坦,就给其分配较少的码流, 这样既保证了质量,又兼顾带宽限制。

  • 这种算法适合图像内容变化幅度较大的情况;

  • 适合的应用场景是媒体存储,不适合网络传输;

QVBR(Quality Variable Bit rate)质量码流

  • QVBR 在 VBR 的基础上,增加了自适应动态质量控制功能。编码器会根据图像质量目标和帧率等因素自适应调节码率,以确保图像质量。这种编码方式减少了码率的小部分波动对图像质量的影响,进一步提高了图像的清晰度和稳定性。

  • 优点:能够在保证画面质量的前提下减少码流的波动

  • 缺点:相比 VBR 需要更高的码率带宽比。

ABR:average bitrate(平均码率,是 VBR 的一种插值参数)

  • 是在 CBR 和 VBR 两者之间的一种权衡,即设定一段时间的平均码率,在此时间内,对简单,静态的图像分配低于平均码率的码率,对于复杂的,大量运动的图像分配高于平均码率的码流;

  • 适合网络传输;

CVBR:Constrained VariableBit Rate(有限码流)

  • 是 VBR 的一种改进方法,对应的 Maximum bitRate 恒定或者 Average BitRate 恒定。兼顾了 CBR 和 VBR 的优点:在图像内容静止时,节省带宽,有运动发生时,利用前期节省的带宽来尽可能的提高图像质量,达到同时兼顾带宽和图像质量的目的。这种方法通常会让用户输入最大码率和最小码率,静止时,码率稳定在最小码率,运动时,码率大于最小码率,但是又不超过最大码率。

Iconfinder (iconfinder.com)

  • 提供免费和付费图标,用户可以下载SVG格式并进行自定义,图标风格多样。

SVGRepo (svgrepo.com)

  • 提供大量免费SVG图标,用户可以直接下载并使用,支持颜色和大小的自定义。

Unsplash Source

URL: source.unsplash.com
描述:从Unsplash获取高质量的随机图片,支持自定义尺寸和关键词搜索。
Lorem Picsum

URL: picsum.photos
描述:提供高质量的随机图片生成服务,支持自定义尺寸和模糊效果。
Picsum

URL: picsum.photos
描述:类似于Lorem Picsum,可以生成不同尺寸和风格的随机图片。
Placeholder.com

URL: placeholder.com
描述:一个简单快速的占位符图片生成器,可以自定义尺寸、颜色和文字。
Fill Murray

URL: fillmurray.com
描述:提供不同尺寸的Bill Murray随机图片,适合轻松娱乐使用。
Placekitten

URL: placekitten.com
描述:生成各种尺寸的可爱小猫图片,适合猫咪爱好者使用。
这些网站工具通常加载速度较快,提供的图片质量高,适用于各种项目和需求。

Windows PowerShell

Get-ChildItem -Filter *.webp | ForEach-Object {
    $newName = $_.BaseName + ".jpg"
    magick $_.Name $newName
}
  • Get-ChildItem -Filter *.webp:获取当前目录下所有.webp扩展名的文件。
  • ForEach-Object:对获取到的每一个文件执行接下来的代码块。
  • 在代码块中,$_.BaseName + ".jpg"用于构造新的文件名(即将原文件的.webp扩展名替换为.jpg),然后调用magick命令将原文件转换为新的.jpg文件。

linux 和 Mac OS

for file in *.webp; do
  magick "$file" "${file%.webp}.jpg"
done

ImageMagick是一个功能强大的创建、编辑、合成、转换图像的工具。它支持超过200种图像格式,包括WebP到PNG的转换。

官方文档

//https://imagemagick.org/script/index.php

Windows 安装

下载:访问ImageMagick的官方下载页面,选择适合的Windows版本的安装程序下载。
安装:运行下载的安装程序。在安装过程中,确保选择了“Add application directory to your system path”选项,这样您就可以在命令提示符中直接调用ImageMagick了。
验证安装:打开命令提示符(CMD)或PowerShell,输入magick -version,如果看到版本信息,表明安装成功。

  • 转换图像格式:
    magick input.png output.jpg
  • 调整图像大小:将图像缩放到指定的尺寸(例如,宽度为100像素)。
    magick input.png -resize 100x output.png
  • 旋转图像:将图像逆时针旋转90度。
    magick input.png -rotate 90 output.png
  • 旋转图像:将图像逆时针旋转90度。
    magick input.png -rotate 90 output.png
  • 查看图像信息:查看图像的详细信息。
    magick identify -verbose input.png

使用“运行”窗口:

按下Win + R组合键打开“运行”窗口。
输入shell:startup并按下Enter,这将打开系统的启动文件夹。
将程序快捷方式拖放到启动文件夹:

在启动文件夹中,创建一个程序的快捷方式,或者直接将程序的快捷方式从其他位置拖放到启动文件夹。
使用任务管理器:

另一种方法是使用任务管理器来添加启动项目:
右键单击任务栏空白处,选择“任务管理器”。
在任务管理器中,转到“启动”选项卡。
点击“启用”或“禁用”以控制启动项目。
若要添加新项目,点击“更多详细信息”,然后转到“启动”选项卡,点击“新建”来添加需要开机启动的程序。
在注册表中设置(谨慎操作):

如果您熟悉Windows注册表编辑器,也可以通过编辑注册表来添加启动项目。
使用regedit命令打开注册表编辑器,然后导航到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run或HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run。
在右侧窗格中,右键单击空白处,选择“新建” -> “字符串值”,然后设置名称为您想要开机启动的程序,值为程序的路径。