为什么 Handbrake 会强制降低我的视频的帧尺寸?

为什么 Handbrake 会强制降低我的视频的帧尺寸?

概括:我有一部几年前从 YouTube 下载的老电影,保存为 flv。我想从中提取一段 13 分钟的剪辑。为此,我使用 ffmpeg 将其转换为 mp4,以便可以将其加载到 DaVinci 中,然后提取剪辑。然后我使用 Handbrake 对其进行压缩。但是当我这样做时,HandBrake 显著减小了帧大小,并且与原始剪辑相比,压缩后的剪辑有些模糊。

为什么 HandBrake 强制减小帧尺寸,我怎样才能让它以正确的帧尺寸输出?

细节:

该flv文件为268 MB,时长107分钟,帧尺寸318x240,帧速率25:

在此处输入图片描述

ffmpeg 命令我曾经转换为 mp4:

ffmpeg -i input.flv -c copy output.mp4

这花了大约一秒钟。结果是 264 MB:

在此处输入图片描述

我将其加载到 DaVinci 中,提取了剪辑,然后渲染为 mp4、H.265、318x240、25 fps:

在此处输入图片描述

结果是 51.4 MB,13:19 mm:ss。MediaInfo 报告它是 HEVC,我的理解是它是 H.265,正如我所要求的那样:

在此处输入图片描述

其大小与时间的比率比整部电影要大得多:

  • 电影:264 MB / 107 分钟 = 2.5 MB/分钟。
  • 剪辑:51.4 MB / 13.33 分钟 = 3.9 MB/分钟

当我将剪辑加载到 HandBrake 中时,它告诉我源是 318x240、25 fps。尽管它是 H.265,但 HandBrake 告诉我它是 H.264。然后 HandBrake 也与其源信息相矛盾,在“Tracks”下说它是 30 fps,大小是 234x174。

在此处输入图片描述

========================

在 Handbrake 的“视频”选项卡中,编码器显示为 H.264,帧速率为 30。RF 为 22:

在此处输入图片描述

========================

我将其改为 265 和 25:

在此处输入图片描述

========================

“尺寸”选项卡再次显示尺寸为 318x240,但随后显示:

缩放后的尺寸和最终的存储大小均为 234x174。我尝试点击了几个东西,但无法改变输出大小。

在此处输入图片描述

========================

当我运行该程序时,输出为 22 MB,文件大小得到了很大的减少:

  • 压缩片段:22 MB / 13.33 分钟 = 1.7 MB/分钟。

但帧尺寸为234x174:

在此处输入图片描述

与原始视频相比,该视频有些模糊,这很可能是由于帧尺寸减小造成的。

原始 flv 文件: 在此处输入图片描述

Ffmpeg转换的Mp4: 在此处输入图片描述

由 DaVinci 渲染的剪辑。

这或许能为问题提供线索。图像占据的空间小于播放器的整个窗口。DaVinci 是否缩小了视频的规模?

在此处输入图片描述

由 HandBrake 压缩的片段: 在此处输入图片描述

为什么 HandBrake 强制减小帧尺寸,我怎样才能让它以正确的帧尺寸输出?

答案1

提问者的修改:我接受了这个答案,因为它满足了我的需求。但请参阅我给出的附加答案中的更多详细信息。



记住 Handbrake 主要是 FFMPEG 的皮肤,具有一些相对用户友好的预设可能会有所帮助。您的流程目前正在进行 FFMPEG > DaVinci > FFMPEG,我们看不出有任何真正需要额外步骤的理由。因此,跳过所有中间步骤,只需使用 FFMPEG 剪辑视频即可。以下是另一个可能涵盖您需求基本内容的问题:https://stackoverflow.com/questions/21420296/how-to-extract-time-accurate-video-segments-with-ffmpeg

用 指定剪辑的开始时间-ss 00:00:00,用 指定剪辑的结束时间-to 00:00:00。就像我上面链接的问题中的这个例子一样:

ffmpeg -y -i [INPUT.file] -ss 00:42:42 -to 00:84:84 -codec copy [OUTPUT.file]

这样做可以消除您当前使用的多个步骤所导致的所有问题的可能性。

答案2

我接受“music2myear”的答案,因为它给了我所需的信息。但出于某种原因,它假设我不关心输出文件的大小。但我确实关心这一点,这就是我运行 HandBrake 的原因。

所以我改变了codec那个答案中的参数。以下是我的结果摘要:

  • DaVinci 的 H.265 剪辑:51.4 MB

  • DaVinci 剪辑然后 HandBrake:22.0 MB(模糊)

  • 来自 FFmpeg 的剪辑-codec copy:29.5 MB

  • 来自 FFmpeg 的剪辑-codec:v hevc -codec:a copy:15.2 MB

两个 FFmpeg 结果看起来质量都不错。带有编解码器的结果copy大约需要一秒钟,而带有的结果hevc大约需要一分钟。

使用编解码器的 mFFmpeg 的结果hevc是文件大小大大减少:

  • 电影:264 MB / 107 分钟 = 2.5 MB/分钟。
  • 来自 DaVinci 的剪辑:51.4 MB / 13.33 分钟 = 3.9 MB/分钟。
  • 来自带有编解码器的 FFMpeg 的剪辑hevc:15.2 MB / 13.33 分钟 = 1.1 MB/分钟。

所以,我不知道 HandBrake(或 DaVinci 和 HandBrake 的组合)为什么要减小帧大小。但我知道如何以正确的帧大小(和有效的文件大小)获得高质量的输出,即直接使用 FFmpeg

答案3

这是一种解决方法,而不是确切的答案:使用 GUI 一步完成整个过程,从而完全控制如何保存输出。

两个免费的开源视频编辑器,快捷键开放射击(两者都有 Linux、Mac 和 Windows 版本,并且两个 Windows 应用程序都可以在葡萄酒例如,也可以在这台 Ubuntu 机器上打开 FLV 视频文件,编辑它们,并以各种格式保存编辑后的输出,并调整分辨率和质量。有很多替代视频编辑器, 也。

OpenShot 导出视频对话框

上面的截图来自OpenShot 导出视频对话,以及短切提供更精细的输出控制。选择要编辑的片段,应用过滤器,例如锐化,如果需要,还可以导出色域(例如,广播、MPEG 或 JPEG)、分辨率、帧速率、压缩等,所有这些都在用户控制下,只需一个工具即可。这两个程序使用起来并不令人生畏,因为预设了合理的默认值。

相关内容