Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- ######################################################################
- #Copyright (C) 2024 Kris Occhipinti
- #https://filmsbykris.com
- #This program is free software: you can redistribute it and/or modify
- #it under the terms of the GNU General Public License as published by
- #the Free Software Foundation version 3 of the License.
- #This program is distributed in the hope that it will be useful,
- #but WITHOUT ANY WARRANTY; without even the implied warranty of
- #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- #GNU General Public License for more details.
- #You should have received a copy of the GNU General Public License
- #along with this program. If not, see <http://www.gnu.org/licenses/>.
- ######################################################################
- file=$1
- fn=${1##*/}
- dir=${file%$fn}
- name=${fn%.*}
- ext=${fn#$name}
- echo -n "Scanning ${file} ..."
- ffmpeg -i "$file" \
- -filter:v "select='gt(scene,0.4)',showinfo" \
- -f null \
- - 2>&1 | tee ffout | while read l; do echo -n "."; done
- echo ""
- timestamps=(0)
- stamps=$(grep showinfo ffout | grep pts_time:[0-9.]* -o | grep [0-9.]* -o)
- timestamps+=($stamps)
- timestamps+=($(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$file"))
- for ((i = 1; i < ${#timestamps[@]}; i++)); do
- printf -v part '%02d' "$i"
- echo ffmpeg -ss "${timestamps[i - 1]}" -to "${timestamps[i]}" -i "$file" "$dir$name-$part$ext"
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement