一刀流:用一個簡單腳本,秒殺視頻片頭廣告,還你清爽觀影體驗。
1. 引子
作為一個愛生活、愛學習、愛收藏高清資源的老碼農,平時寫代碼之余看看電影、補補片,是再正常不過的事。
電影嘛,要沉浸,要專注,要氛圍。結果有些無良的發布者非得在前面貼上幾十秒、幾分鐘的廣告片頭:“本片由 ××× 高清首發!”、“關注我們不迷路!”、“…全國可飛”,再加點音樂、加點 LOGO、再來個 10 秒靜音背景圖。
孰能忍?叔不能忍。——碼農秋動刀了。
2. 刀長啥樣
核心思路:FFmpeg + Shell腳本,無損剪切,一刀斬首。
這把刀的設計思路:
- 鋒刃:FFmpeg(專業視頻處理神器)
- 刀柄:Shell腳本自動化控制
- 招式:從指定時間開始截取,無損復制
- 效果:覆蓋原文件,保持文件名不變
簡單來說,就是告訴FFmpeg:“從第X秒開始,后面的我全要,前面的垃圾統統扔掉。”
3. 鑄刀
神器登場:mvcut腳本,簡單粗暴,一招制敵。
#!/bin/bashif [ $# -lt 2 ]; thenecho "用法: $0 <視頻文件> <剪掉時間 (秒或 00:02:00)>"exit 1
fiINPUT_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 ]; thenecho "剪輯失敗:$INPUT_FILE"exit 1
firm -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
裝備到全身:
# 安家落戶
mkdir -p ~/.local/bin
# 把上面代碼保存為 ~/.local/bin/mvcut# 開光加持
chmod +x ~/.local/bin/mvcut# 隨身攜帶
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
刀法效果:一刀下去,前面垃圾不見了,文件名還是原來的,干凈利落。想剪多少秒就剪多少秒,支持時間格式,想怎么切就怎么切。
5. 后記
這把小刀雖短,但好用。我不搞高大上的GUI,也不做視頻特效,一把命令行小刀,夠利落,夠狠。
下回再寫一招"批量斬首",或者"片尾花字清除術",繼續為電影"正義"而戰。
老碼農的江湖格言:人生苦短,片頭別長。
碼農秋:在代碼堆里打滾的老兵 | 2025-06-07 | 快刀·一閃系列
?