video - 高级 ffmpeg 压缩控制

标签 video ffmpeg compression mpeg

我正在使用非常激进的视频压缩,例如 -crf 51 .我将其用于“艺术”效果,因此从普通视频压缩的角度来看,我所做的可能没有意义。

到目前为止,我只使用了非常基本的压缩控制,只使用了 -crf。或 -b:v标志。结果看起来像 ffmpeg 将图像划分为方形 block ,并在 block 内进行平滑近似。这为该过程提供了 2 个控制维度:补丁大小和补丁内平滑的积极性。

它发现 ffmpeg 在某种程度上使用了这两个参数,但似乎存在一个以像素为单位的绝对最大补丁大小,无论帧大小如何,它都不会超过该大小。
之后,它只会通过减少补丁中的细节来增加压缩率。

这对于高分辨率视频来说不是最理想的,这相当于降低分辨率。该问题在具有大的无特征区域以及高细节区域的分形图像上尤为明显。

如何告诉 ffmpeg 增加最大补丁大小并在补丁中保留更多细节?

最佳答案

你所说的“补丁”是一个宏 block 。每个编解码器都有一个最大宏 block 大小,通常非常小(16x16 像素)。这是这种类型的压缩如何工作的基本属性,不能设置为任意值。您将需要以另一种方式创建效果。

关于video - 高级 ffmpeg 压缩控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34466211/

相关文章:

video - 在 Android 4.4 及更低版本的 Cordova PhoneGap 应用程序中的 HTML5 视频播放器中播放本地/应用程序内 mp4 文件

ios - 在 iOS 上流式传输 RTSP 时接收 "End of file"

hadoop - 使用 Pig 处理没有扩展名的压缩文件

android - 如何在 Android 中获取视频文件的关键帧(同步帧)时间戳列表?

ios - 如何使用 AVAssetWriter 而不是 AVAssetExportSession 来重新编码现有视频

ffmpeg - 加快视频到图像的转换

ffmpeg -/usr/local/share/timidity/timidity.cfg : No such file or directory

c# - 在 ASP.Net Core 中请求内容解压

java - Web Service的压缩结果

c# - 如何用C#.Net和DirectX编写音视频播放引擎(综合分析)?