一刀流:用FFmpeg脚本秒杀视频片头广告

一刀流:用FFmpeg脚本秒杀视频片头广告

一刀流:一个简单的脚本,瞬间去除视频片头广告,享受纯净的观影体验。

1. 前言#

作为一个热爱生活、热爱学习、热爱收集高质量资源的程序员,在码字间隙看看电影剧集,那是相当正常的。

电影需要沉浸感、需要专注、需要氛围感。但有些无良发布商非要在前面加几十秒甚至几分钟的广告片头:“XXX高清独家发布!"、“关注我们不迷路!"、”…全国通用”,还配音乐、配logo、配10秒钟的静默背景图。

这谁能忍?大叔不能忍。—— 程序员拔刀。

2. 刀#

核心理念:FFmpeg + Shell脚本,无损切割,一刀毙命。

设计哲学:

刀身:FFmpeg(专业视频处理工具包)

刀柄:Shell脚本自动化控制

刀法:指定时间提取,无损复制

刀效:覆盖原文件,保持文件名

简单说,就是告诉FFmpeg:“从第X秒开始,我要后面的全部,前面的垃圾统统扔掉。”

3. 铸刀#

神器出世:mvcut脚本,简单粗暴,一击制胜。

#!/bin/bash

if [ $# -lt 2 ]; then

echo "用法: $0 <视频文件> <切割时间点(秒数或00:02:00)>"

exit 1

fi

INPUT_PATH="$1"

CUT_TIME="$2"

INPUT_FILE="$(cd "$(dirname "$INPUT_PATH")"; pwd)/$(basename "$INPUT_PATH")"

DIRNAME=$(dirname "$INPUT_FILE")

BASENAME=$(basename "$INPUT_FILE")

EXT="${BASENAME##*.}"

FILENAME="${BASENAME%.*}"

TEMP_FILE="${DIRNAME}/${FILENAME}_cut.${EXT}"

ffmpeg -hide_banner -loglevel error -ss "$CUT_TIME" -i "$INPUT_FILE" -c copy "$TEMP_FILE"

if [ $? -ne 0 ]; then

echo "切割失败: $INPUT_FILE"

exit 1

fi

rm -f "$INPUT_FILE"

mv "$TEMP_FILE" "$INPUT_FILE"

echo "搞定: ${INPUT_FILE}"

铸刀原理:

-ss参数是刀刃,告诉FFmpeg从哪里开始切

-c copy是刀魂,无损复制,不重新编码,快如闪电

先切到临时文件,成功后再替换原文件,避免数据丢失

4. 试刀#

实战演示:假设有个movie.mp4,前面2分钟都是垃圾广告。

出刀!砍掉前120秒:

mvcut movie.mp4 120

再来一刀!砍掉前2分钟:

mvcut movie.mp4 00:02:00

装备刀具:

# 安装到home目录

mkdir -p ~/.local/bin

# 将上面的代码保存为 ~/.local/bin/mvcut

# 给执行权限

chmod +x ~/.local/bin/mvcut

# 加入PATH

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc

source ~/.zshrc

刀效:一刀下去垃圾没了,文件名还是原来的,干净利落。想砍几秒砍几秒,支持时间格式,想怎么砍怎么砍。

5. 后记#

这把小刀虽短,但够用。我不搞花里胡哨的GUI,不搞视频特效,就是一把命令行刀,够锋利够狠就行。

下次写《批量砍头术》或者《片尾去除大法》,继续为电影"正义"而战。

老程序员守则:人生苦短,片头别长。

Alex Hu:代码堆里摸爬滚打的老兵 | 2025-06-07 | 快刀系列

相关推荐

老炮儿黑话算啥子,搞懂袍哥言子儿才是重庆人正事
黑帮365天第3季是真实的吗

老炮儿黑话算啥子,搞懂袍哥言子儿才是重庆人正事

🕒 06-30 👁️ 2737
卡尺怎么使用及读数(超全面卡尺介绍,你真的用对了吗?)
黑帮365天第3季是真实的吗

卡尺怎么使用及读数(超全面卡尺介绍,你真的用对了吗?)

🕒 08-11 👁️ 2646