I am suspect that My question here will be judged as to broad or having to do with a shell script and therefore be dismissed. But , I am curious for a solution so I will ask anyway.
Any wisdom is welcomed. Thanks in advance. Yes I realize this is a "hard one" , well-- it has been hard for me. ;) I wish to loop through a directory of videos and play them in a specific way ( 1-for 5 seconds from the start , 2 then go 1 min deep and play for 5 sec ) my problem is I need to kill ffplay I am very much able to PLAY in the manner i wish but seem UNABLE to end a ffplay event so that it can move forward to the next event. It seems that ffplay stops at then end of 5 sec and then sits and waits. If I do a control C in the shell or close the ffplay player only then does the shell script move on. You will see where I have tried vatious methods to kill ffplay. My thought was play file1 way 1 kill ffplay play file 1 way 2 kill ffplay and loop to next file one thing I wish to populate a var $Myp with the ffplay process id I do not seem to be doing that right Myp=$(ps aux | grep ffplay | grep -v grep | awk '{print $2}') here is my script #!/bin/bash # ~~~~~~~~~~batch # ~~~~~~~~- # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #----------------------------------- ################################################################################# # # ####---FROM < where the avis are . eg /media/data/cap #Src=/media/data/cap Src=/home/jshupert/Videos/t job=playtest etn=mp4 ###--- the dir where the source avi are cd $Src echo $(date) __________________________________________________START_of_SESSIONj >> ~//01_logs/$job.txt for f in *.$etn ; do ###################################--------- play 1 for 5 sec from top #./kll.sh #~/00_script/tst/kll.sh ffplay -t 00:00:05.000 $Src/$f #Myp < ps aux | grep ffplay | grep -v grep | awk '{print $2}' Myp=$(ps aux | grep ffplay | grep -v grep | awk '{print $2}') ### here are my many failed attempts to close so it can go to Next ###sleep 5s ##pkill ffplay # kill -SIGKILL #kill -SIGKILL $Myp #kill -SIGKILL -sigspec $Myp killall ffplay echo aaaaaaaaaaaaaaaaaa echo $Myp ############---test for FF process FFPLAYStillRunning="true" while [ "$FFPLAYStillRunning" = "true" ]; do Process=$(ps -C ffplay | grep -o -e "ffplay" ) if [ -n "$Process" ]; then FFPLAYStillRunning="true" else FFPLAYStillRunning="false" fi sleep 2s done ###################################--------- play 2 for 5 sec from 1 min deep ## ./kll.sh & ffplay -ss 00:01:00.000 -t 00:00:05.000 $Src/$f sleep 5s #kill -e -q ffplay #kill -q ffplay pkill ffplay echo bbbbbbbbbbbbbbbbbbbbbbb ##-- rpt size #vidSize=$(du -h $Src/${f%.*}.$etn) ###vidSize=$(du -h $Src/$f) echo ${f%.*} $vidSize ## >> ~//01_logs/$job.txt echo $(date) ________________________ >> ~//01_logs/$job.txt echo -- >> ~//01_logs/$job.txt echo " -----------------------------------------------------------" echo " finished ----- $f -----" ##-- make the checksum ### md5sum -b /home/jshupert/Videos/t/Bug_Love_sjp.mp4 > /home/jshupert/Videos/t/Bug_Love_sjp.mp4.md5 echo "doing CHKSUM for $f" #md5sum -b $Src/${f%.*} > $Src/${f%.*}_.md5 #md5sum -b $Src/${f%.*} > $Src/$f_.md5 #md5sum -b $Src/${f%.mp4} > $Src/$f.md5 md5sum -b $Src/$f > $Src/$f.md5 echo $f ok checksum >> ~//01_logs/job_log.txt echo $(date) >> ~//01_logs/$job.txt echo $f $(date) fin run ALL >> ~//01_logs/$job.txt echo ------- >> ~//01_logs/$job.txt echo ------- >> ~//01_logs/$job.txt echo " -----------------------------------------------------------" echo " finished $f --------- nnn --------" #### - end done again, thanks for any wisdom best regards jim S _______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-user