我有一部 11GB 的 MKV 格式的优质黑白老电影。
我的目的是在观看各种意味着复制到 USB 闪存驱动器等的设备时,出于实际原因保留原始版本并创建较小的版本……
这就是为什么我的主要兴趣不是保持相同的质量,而是尽可能快地将大小从 11GB 减小到大约 3GB-4GB(大约 3 倍)。
手刹如何做到这一点?
FWIW,我在 Linux 中,但更喜欢 Handbrake,而不是终端中的 ffmpeg,因为我喜欢以 Handbrake 显示的方式查看有关进度的信息,并且因为我想测试这个程序并学习如何根据我的需要调整它的使用。
输出格式对我来说并不重要。该文件具有以下属性:
Format : Matroska
Format version : Version 2
File size : 11.0 GiB
Duration : 1 h 49 min
Overall bit rate mode : Variable
Overall bit rate : 14.5 Mb/s
Encoded date : UTC 2017-09-12 21:14:03
Writing application : mkvmerge v15.0.0 ('Duel with the Devil') 64-bit
Writing library : libebml v1.3.5 + libmatroska v1.4.5
Cover : Yes
Attachments : cover.jpg
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4
Format settings : CABAC / 4 Ref Frames
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 1 h 49 min
Bit rate mode : Variable
Bit rate : 14.3 Mb/s
Maximum bit rate : 15.0 Mb/s
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 23.976 (24000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.287
Stream size : 10.9 GiB (98%)
Writing library : x264 core 148 r2623 d5b2374
Encoding settings : cabac=1 / ref=4 / deblock=1:-1:-1 / analyse=0x3:0x133 / me=umh / subme=9 / psy=1 / psy_rd=1.00:0.15 / mixed_ref=1 / me_range=24 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-3 / threads=34 / lookahead_threads=5 / sliced_threads=0 / nr=150 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=8 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=120 / keyint_min=61 / scenecut=0 / intra_refresh=0 / rc_lookahead=120 / rc=crf / mbtree=1 / crf=18.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=15000 / vbv_bufsize=31250 / crf_max=0.0 / nal_hrd=vbr / filler=0 / ip_ratio=1.40 / aq=3:1.00
Language : English
Default : Yes
Forced : No
Color range : Limited
Color primaries : BT.709
Transfer characteristics : BT.709
Matrix coefficients : BT.709
Audio
ID : 2
Format : E-AC-3
Format/Info : Enhanced Audio Coding 3
Codec ID : A_EAC3
Duration : 1 h 49 min
Bit rate mode : Constant
Bit rate : 224 kb/s
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 kHz
Frame rate : 187.500 FPS (256 SPF)
Compression mode : Lossy
Stream size : 175 MiB (2%)
Language : English
Service kind : Complete Main
Default : Yes
Forced : No
我最近使用这些预设设置将一些 MKV 格式的经典黑白文件转换为 480p MP4 文件。
这是我的笔记和预设设置。
现在 480p 看起来又小又小,可能被某些人认为是“蹩脚的”。但是这些设置非常适合将大型 1080 pm 黑白视频的文件大小减小到更小。
大多数经典黑白电影中的动作较少。
之所以可行,是因为老式的黑白胶卷没有太多的摄影机动作。即使是最充满动感的黑白电影的动作也远不及大多数现代全彩电影所拥有的令人头晕目眩的图像盛宴。所以这自然会使压缩更好。
经典的黑白电影颗粒感更强。
在老式黑白电影中,唯一真正的因素是:它们具有令人难以置信的颗粒感。颗粒感如此之大,以至于如果您尝试从 1080p 视频源导出 HQ 视频,则大部分压缩时间将用于保留颗粒感。通过将尺寸缩小到 480p,可以有效地去除颗粒,甚至无需使用颗粒检测算法。
x264 压缩是黑白电影的最佳压缩格式。
此外,输出是 x264 格式的 MP4。现在许多视频都使用 x265 压缩。这是一种很棒的视频压缩格式,但前提是源视频是彩色的。x265 压缩得到的图像数据越多,压缩效果越好。但是黑白视频的颜色数据比全彩色视频少。我尝试在黑白视频的情况下使用 x265 导致视频的文件大小实际上可能比源文件大。
音频压缩。
在这里要小心,您可能需要在执行此操作时仔细检查正在转换的音频以及转换方式。我的设置试图解决这个问题,但在某些情况下,我有包含多个音轨的 MKV 文件,其中一些没有转换,而是被复制到新文件中。在某些情况下,这些额外的音频文件占文件大小的 30% 到 40%。
综上所述,这是我的 HQ 480p 黑白超越视频输出的手刹预设:
我的想法是保存 1 分钟的源电影并在该 1 分钟的文件上测试不同的预设(包括 Giacomo1968):这是在开始处理 11 GB 文件的几个小时之前找到最可取的快速方法.
感谢@Giacomo1968 的另一个回答,我知道旧的黑白电影不需要 x265 编解码器,因此我决定使用 x264 mp4 编解码器。
由于我主要关心的问题之一是速度,因此我选择了General - Very fast 720p下的预设(将帧速率更改为“作为源”,保留默认 RF 23)
这给了我想要的东西:一个 2.9 GB(从 11 下降)和 3.5 比特率(从 15 下降)的文件。
我还用 1 分钟文件测试了另一个答案中的预设:时间更长(可能是两倍),比特率低两倍,大小小 7%。
我将在此处将预设的General - Very fast 720p标记为解决方案,因为它以更高的速度和比特率提供所需的尺寸。画质也好很多,非常接近原版。
在相同的预设内,输出的质量、大小和比特率可以通过降低 RF 来增加(并通过增加 RF 来降低),同时处理速度相同。
我已经从这里遵循了关于使用哪个 RF 的规则:
不遵循这些规则会产生意外/不合逻辑的结果(输出大于输入,质量低)。