video-clip-sh/encode_frames
2025-02-16 23:05:24 -08:00

30 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
BIN_DIR=$(dirname "$0")
IN_VIDEO="$1"
START_FRAME="$2"
END_FRAME="$3"
OUT_VIDEO="$4"
MODE="$5"
case $MODE in
av) OUT_OPTIONS="-map 0 -vcodec copy -acodec copy -scodec copy" ;;
audio) OUT_OPTIONS="-vn" ;;
esac
echo "START_FRAME=$START_FRAME"
echo "END_FRAME=$END_FRAME"
NUM_FRAMES=$((END_FRAME - START_FRAME + 1))
echo "NUM_FRAMES=$NUM_FRAMES"
START_SECS=$("$BIN_DIR/frames_to_seconds" "$START_FRAME")
#END_SECS=$("$BIN_DIR/frames_to_seconds" "$END_FRAME")
NUM_SECS=$("$BIN_DIR/frames_to_seconds" "$NUM_FRAMES")
#echo mencoder -ovc copy -oac copy -ss "$START_SECS" -endpos "$NUM_SECS" "$IN_VIDEO" -o "$OUT_VIDEO"
#mencoder -ovc copy -oac copy -ss "$START_SECS" -endpos "$NUM_SECS" "$IN_VIDEO" -o "$OUT_VIDEO"
#echo ffmpeg -ss "$START_SECS" -i "$IN_VIDEO" -t "$NUM_SECS" -vcodec copy -acodec copy "$OUT_VIDEO"
#ffmpeg -y -ss "$START_SECS" -i "$IN_VIDEO" -t "$NUM_SECS" -vcodec copy -acodec copy "$OUT_VIDEO"
echo ffmpeg -ss "$START_SECS" -i "$IN_VIDEO" $OUT_OPTIONS -t "$NUM_SECS" "$OUT_VIDEO"
ffmpeg -y -ss "$START_SECS" -i "$IN_VIDEO" $OUT_OPTIONS -t "$NUM_SECS" "$OUT_VIDEO"