For the final variation I wanted to explore the linear progression of the video. That is, up till now all of the variations have jumped randomly between different parts of the video. A skipping CD will always attempt to play from start to finish, even if it does skip occasionally. So, for this variation I wrote a script that created sequenced segments of varying lenghts (between 0.1-0.99 seconds) and then repeats them up to six times.
Observations
This variation, like the last one, resembles a skipping CD. By sequencing the samples I’ve lost some of the unpredictable, YTP-style edits but have gained more clarity. It has also been pointed out (thanks Rosa!) that a skipping CD doesn’t always skip. There may be periods of it working followed by glitches/skipping.
#Usage: ./movie_cut.sh /path/to/file.avi Clip-duration-in-seconds
#e.g. ./movie_cut.sh 4.01
#start position
startPos=0
filenumber=$(printf "%05d")
while [ $filenumber -le 50 ]
do
#define random integer
rand=$RANDOM
#define random duration (up to 0.999 seconds)
duration=$(echo "0.$rand")
#get path of file
path=$( readlink -f "$( dirname "$1" )" )
#get filename minus extension
file=$(basename "$1")
filename="${file%.*}"
#cut the video
avconv -i $1 -ss $startPos -t $duration -qscale 0 -ab 384k -y "$path"/"$filenumber"_"$filename"_cut.avi
filenumber=`expr $filenumber + 1`
filenumber=$(printf "%05d" $filenumber)
#increment the start position of the next video by the duration of the previous video
startPos=$(echo "scale = 2; $startPos + $(echo "0.$rand")" | bc | sed -e s/^/0/)
done
The following script was then run on the output files from the previous script. It creates numbered diplicates of the source files.
#!/bin/bash
for file in *.avi
do
#number of times to duplicate the file (between 1 and 6)
max=$(shuf -i 1-6 -n 1)
number=1
while [ $number -le $max ]
do
#get path of file
path=$( readlink -f "$( dirname "$file" )" )
#get filename minus extension
file=$(basename "$file")
filename="${file%.*}"
#get extension
extension="${file##*.}"
#copy the file to a new file
cp $file "$path"/"$filename"_"$number".$extension
number=`expr $number + 1`
done
done