我如何获得LOL发行版等高质量/小尺寸的MP4?


20

发行组LOL在《吸血鬼日记》中对发行内容进行编码方面做得非常出色(在其他节目中,例如《我如何与母亲见面》,比特率更高,因此似乎没有效果)。

每个〜45分钟的MP4文件大约200 MB,考虑到惊人的质量。

我只是想知道他们使用什么设置和使用什么软件。我尝试使用MediaInfo从这些文件中获取信息,然后使用HandBrake中的设置,但是我并没有真正成功。

谁能帮我吗?我对编码/压缩了解不多。

Answers:


28

编码(盗版)视频的指南称为“场景指南”。他们由各个发行小组签署,他们将确保其视频符合指南要求,LOL是其中之一。

您可以找到场景指南的列表scenerules.org。如果我没有记错的话,您正在寻找的标准是SD x264电视发布标准,假设您的视频是1280×780。如果您有高清视频,则在45分钟内200 MB的质量可能不会获得真正好的质量。这相当于大约600 kBit / s,但是对于720p来说已经足够了。

至于编码工具,您可以使用FFmpeg(Handbrake所基于的)走得很远。唯一的罪魁祸首是该场景指南禁止使用FFmpeg和FAAC音频,但是除非您真正做出了贡献,否则不要紧。

如果您以前没有视频编码经验,并且所有这些关键字对您没有任何意义,请查看以下博客文章/超级用户问题:

基本上,规则说您必须使用具有恒定速率因子质量设置的x264编码器。它的功能与设置恒定的比特率完全不同:您可以将CRF设置为以恒定的质量对x264的视频进行编码。

典型的CRF水平在18到28之间,发行组建议使用19–20来对易于压缩的材料进行高质量编码。在执行此操作时,您不会事先知道最终文件的大小,但这只是进行CRF编码的全部要点:您无需关心实际文件的大小,只需要高质量即可。

设置好ffmpeg并准备好输入视频后,编码实际上非常简单。但是请注意,您的源视频必须是高质量的,否则重新编码只会使质量进一步下降。

以下是关键参数:

  • x264视频:
    • CRF 19–20
    • slow 配置文件(更好的压缩效率,但会浪费编码时间)
    • H.264 3.1 ,其中设置了一些限制
    • 降级必须使用除双三次以外的任何大小调整器(这是FFmpeg的默认设置)进行。例如,可以使用Lanczos
    • tune设置为源(例如film为薄膜状的内容)
  • AAC音频具有:
    • 可变比特率编码
    • 比特率介于96和160 kBit / s之间

在中ffmpeg,这表示以下内容:

ffmpeg -i input.mp4 \
-c:v libx264 -crf 19 -level 3.1 -preset slow -tune film \
-filter:v scale=-1:720 -sws_flags lanczos \
-c:a libfdk_aac -vbr 5 \
output.mp4

在FFmpeg中,您对AAC编码的选择受到限制。有关您的AAC选择请参见此处,另请参阅FFmpeg和AAC编码指南

如果视频最终太大,则可以调整CRF。值±6将导致比特率的一半/两倍,因此,如果从19开始到25,则最终将获得一半的比特率。场景规则不允许CRF高于24,但您可能不介意。


2

由于您未发布mediainfo,因此无法与您提到的发布组通话。但这是制作紧凑编码的指南,这意味着达到良好的质量/大小平衡。

您应该从HandBrake和最好的可用资源开始。在“ 来源”部分中,选择一个简短但难以编码的片段(包括动作和精细细节)。在“ 目标”部分中,选择libmkv。在“ 视频”选项卡中,取消选中“ 使用高级选项”(您仍然可以在更多设置中逐个添加这些选项),选择“ --rc=crf速率控制”,--preset计算机可以承受的最高水平(slowerveryslow),--tune与来源相匹配的(filmanimation应该覆盖它),以及将配置文件和级别设置为auto/ auto。然后以分辨率播放(仅当源为高清时;在图片设置中),将变形设置为松散并改变一个轴(从下一个高分辨率开始,再向下),--crf直到您在短片段的质量和比特率之间找到一个很好的折衷。请注意,crf与其余的编码设置有关,这就是为什么它应该是您最后更改的视频设置的原因。在音频,去Vorbis格式160kbps的(这将使用AoTuV -q5,无需进一步调整实现透明度)。在其他标签中,检查是否保留了您可能需要的所有内容(章节标记,字幕轨道,元数据等)。当您满意时,可以使用这些设置来编码剧集的其余部分。平均比特率最终应该比困难部分低得多。当您对设置充满信心时,可以使用它们对整个季节进行编码。

以上步骤如何提高压缩性:libmkv使您可以访问更多编解码器,配置文件和版本以自动进行,这意味着将没有任何回放约束来限制编码器。一小段时间(几秒钟)使您有更多的时间进行调整并查看结果。Tune可以优化源代码看起来像的心理视觉(感知)质量。较高的预设会以降低编码时间为代价来提高压缩度(这在您困难的片段中可能并不明显,但是会提高大多数其他场景中的比特率)。CRF速率控制意味着您的编码将改变比特率以达到给定的质量,而要求更高的情节将获得更多空间。

如果您保持原始分辨率,则降噪滤波器也非常有用。您希望保持轻便,因为目标不是清除可察觉的源缺陷,而是在不明显降低质量的情况下提高可压缩性。这是使用HandBrake的HQDN3D去噪的指南,该质量介于x264 --nr最先进的去噪器之间。


2

FFmpeg电视

基于slhck的答案,我构建了这个简单的Python解决方案来调用正确的ffmpeg参数。基于最新的2016年电视场景标准

python3 ffmpeg-tv.py input.mp4 output.mkv

描述后,您可以找到所有参数,并简要说明了为什么默认情况下以这种方式设置它们。

  # 1.3) Providers which downscale 1080i to 720p (e.g. BellTV) are not allowed.
  # 5.10) Resized video must be within 0.5% of the original aspect ratio.
  scale="-1:-1" # <width>:<height>; -1 maintain ratio.

  # 4.1) Video must be H.264/MPEG-4 AVC encoded with x264 8-bit.
  video_encoder="libx264"

  # 4.4) Constant Rate Factor (--crf) must be used.
  # 4.4.1) CRF values below 18 and above 23 are never allowed.
  # http://slhck.info/video/2017/02/24/crf-guide.html
  # (lossless) 0 <- (better) 23 <- (worst) 51
  # ┌─────────────────┬───────┬───────────────────────────────────────────┐
  # │ Compressibility      │  CRF    │ General Examples                                      │
  # ├─────────────────┼───────┼───────────────────────────────────────────┤
  # │ High                 │ 18-19   │ Scripted, Talk Shows, Animation, Stand-Up             │
  # │ Medium               │ 20-21   │ Documentary, Reality, Variety, Poker                  │
  # │ Low                  │ 22-23   │ Sports, Awards, Live Events                           │
  # └─────────────────┴───────┴───────────────────────────────────────────┘
  crf="19"

  # 4.6) Settings cannot go below what is specified by preset (--preset) 'slow'.
  preset="slow"

  # 4.7) Level (--level) must be '4.1'.
  level="4.1"

  # 6.4) Only sharp resizers, such as Spline36Resize, BlackmanResize or LanczosResize/Lanczos4Resize,
  # must be used.
  # 6.4.1) Simple resizers, such as Bicubic, PointResize or Simple, are not allowed. 
  resizer="lanczos"

  # 4.17) Optional tuning (--tune) parameters allowed are: 'film', 'grain' or 'animation'. 
  # /superuser/564402/explanation-of-x264-tune
  # film – intended for high-bitrate/high-quality movie content. Lower deblocking is used here.
  tune="film"

  # 8.1) Audio must be in the original format provided.
  # 8.1.1) Transcoding audio is not allowed.
  # 8.2) Multiple language audio tracks are allowed.
  # Since we cannot ensure that the external content is in an acceptable TV format, we'll recode
  # it into aac. We're just playing safe here.
  # 
  # FFmpeg supports two AAC-LC encoders (aac and libfdk_aac) and one HE-AAC (v1/2) encoder
  # (libfdk_aac). The license of libfdk_aac is not compatible with GPL, so the GPL does not permit
  # distribution of binaries containing incompatible code when GPL-licensed code is also included.
  # libfdk_aac is "non-free", and requires ffmpeg to be compiled manually.
  # Second best encoder is the native FFmpeg AAC encoder. (aac)
  audio_encoder="aac"

  # Audio quality (bit rate).
  # Use either VBR or CBR. VBR is the easiest.
  # https://trac.ffmpeg.org/wiki/Encode/AAC#fdk_vbr
  # VBR: Target a quality, rather than a specific bit rate. 1 is lowest quality and 5 is highest
  # quality.
  # https://trac.ffmpeg.org/wiki/Encode/AAC#fdk_cbr
  # http://wiki.hydrogenaud.io/index.php?title=Fraunhofer_FDK_AAC#Bitrate_Modes
  # CBR: kbps
  vbr="5"
  cbr=None

  # 8.2) Multiple language audio tracks are allowed.
  # 8.2.1) The default audio track must be the language intended for release (e.g. An English release
  # containing English, German and Russian audio tracks, must have the default flag set on the English
  # track).
  # https://trac.ffmpeg.org/wiki/Map
  # Include "all" inputs to the output: -map 0
  map="0"

有关完整的源代码,请参见ffmpeg-tv.py

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.