42 lines
839 B
Bash
42 lines
839 B
Bash
|
#!/bin/bash
|
||
|
|
||
|
set -e
|
||
|
|
||
|
if [ -z "$3" ]; then
|
||
|
cat <<- EOF
|
||
|
Usage: trim.sh /path/to/file.mp4 HH:MM:SS[.ms] HH:MM:SS[.ms] [/path/to/output.mp4]
|
||
|
NOTE:
|
||
|
.ms (miliseconds) are optional and default .000
|
||
|
Alternate flags ( environment variables ):
|
||
|
REMOVE_AUDIO
|
||
|
When this is set audio output is disabled
|
||
|
EOF
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
|
input="$1"
|
||
|
start="$2"
|
||
|
end="$3"
|
||
|
|
||
|
# Figure out the output file name
|
||
|
out="$(dirname $input)/$(basename -s .mp4 $input).slow.mp4"
|
||
|
if [ ! -z "$4" ]; then
|
||
|
out="$4"
|
||
|
fi
|
||
|
|
||
|
# Figure out the copy options for audio
|
||
|
if [ ! -z "$REMOVE_AUDIO" ]; then
|
||
|
echo "Audio: DISABLED"
|
||
|
COPY_OPT="-c copy -an"
|
||
|
else
|
||
|
echo "Audio: ENABLED"
|
||
|
COPY_OPT="-c:v copy"
|
||
|
fi
|
||
|
|
||
|
LOG="-loglevel error"
|
||
|
|
||
|
echo Trimming video
|
||
|
ffmpeg $LOG -y -i "$input" -ss "$start" -to "$end" $COPY_OPT "$out"
|
||
|
|
||
|
echo File here $(pwd)
|
||
|
ls -la "$out"
|