#!/bin/bash #cutting the video INFILE1="../2017_Photos/2017_11_14_gensac_parapente/VID_20171114_135427.3gp" START_TIME1="0:39" #de 39 à 53 =14 secondes #retournement à 43, soit apres 4 secondes INFILE2="../2017_Photos/2017_11_14_gensac_parapente/GOPR0844.MP4" #https://www.ffmpeg.org/doxygen/0.7/parseutils_8c-source.html#l00487 #d'après 00487 int av_parse_time(int64_t *timeval, const char *datestr, int duration) #la partie fractionnaire de secondes est exprimée en us START_TIME2="2:18.500000" #retournement à 2:23 DURATION="0:00:14" TMPDIR="/tmp/myvideo/" rm -rf $TMPDIR mkir -p $TMPDIR #INTERMEDIATEFILE="cutted.mkv" #OUTFILE="res.mkv" #ffmpeg -i $INFILE -ss $START_TIME -t $DURATION -c copy $INTERMEDIATEFILE #converting the video to images 1 mkdir -p $TMPDIR/imgs1 avconv -i $INFILE1 -r 30 -f image2 -ss $START_TIME1 -t $DURATION $TMPDIR/imgs1/im-%06d.bmp #converting the video to images 2 mkdir -p $TMPDIR/imgs2 avconv -i $INFILE2 -r 30 -f image2 -ss $START_TIME2 -t $DURATION $TMPDIR/imgs2/im-%06d.bmp #concatenate the images mkdir -p $TMPDIR/imgs3 rm $TMPDIR/list #ls -c1 *.pgm | sort >>list #genere la liste ordonnée des fichiers pgm du dossier dans un fichier list find $TMPDIR/imgs1 -type f -printf "%f\n" | grep bmp | sort >>$TMPDIR/list #pour chaque ligne de list cat $TMPDIR/list | while read line do echo ${line} convert $TMPDIR/imgs1/${line} $TMPDIR/imgs2/${line} +append $TMPDIR/imgs3/${line} rm $TMPDIR/imgs1/${line} rm $TMPDIR/imgs2/${line} done #extrait la piste audio rm $TMPDIR/audio.mp3 avconv -i $INFILE1 -ss $START_TIME1 -t $DURATION $TMPDIR/audio.mp3 #generate the movie file from file with name pattern: out-img0001.png avconv -i $TMPDIR/audio.mp3 -i $TMPDIR/imgs3/im-%06d.bmp -f avi -vcodec mpeg4 -b 4000k -g 300 -bf 2 -y ./video.mpg