蓝光原盘压硬字幕并跳过前 10 秒

找到个未加密的原盘,里面有一堆字幕轨,发现第一轨(0:s:0)是需要的字幕。

字幕的前几秒是一些观影说明,也可以一同去掉(大约 10 秒长度)

蓝光里的音频倒是有一堆,直接用第一个音轨(0:a:0)就行。

目标播放设备不支援 x265 也不支援 10 bit,因此编码器选择的是 x264 以及 Profile 为 [email protected]

跟着网上找的说明,加上一些 B帧、引用帧的设定以及一些调整,最终的压制脚本如下:

#!/bin/sh set -ex INPUT_PATH="bluray:/path/to/disk" OUTPUT_PATH="/tmp/Film.name.YYYY.1080p-ENCODE.mp4" META_TITLE="中文名 - 外文名 (年份)" AUDIO_MAP="0:a:0" nice -n 15 -- \ ffmpeg -stats -i "${INPUT_PATH}" \ -filter_complex "[0:v:0][0:s:0]overlay=0:0:enable='gte(t,10)'" \ -metadata title="${META_TITLE}" \ -movflags +faststart \ -c:v libx264 \ -crf 20 \ -flags +loop \ -deblock 0:0 \ -bf 16 -b_strategy 2 -refs 6 -maxrate 12M \ -profile:v main -level 4.0 \ -preset slow -tune animation \ -c:a libfdk_aac -vbr 5 \ -map "0:v:0" -map "$AUDIO_MAP" \ "$OUTPUT_PATH"

如果是 Windows 环境,可能使用 AviSynth 脚本会比较好一些?调滤镜什么的也方便。

最后压出来的视频大概 2 个小时长,因为 B 帧 设定得比较大,每次快进都是 5 秒一跳;不过考虑到视频是拿来本地收藏用的,还是能够接受。

参考资料

  1. 介绍 ffmpeg 中对应的 x264 选项的文档:
    https://sites.google.com/site/linuxencoding/x264-ffmpeg-mapping
  2. 对 ffmpeg 中使用 -deblockalpha 参数却不能使用的解决方案:
    https://stackoverflow.com/a/23539599
  3. ffmpeg 百科对滤镜的教程:
    https://trac.ffmpeg.org/wiki/FilteringGuide
  4. ffmpeg 的滤镜文档:
    https://ffmpeg.org/ffmpeg-filters.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注