daily pastebin goal
22%
SHARE
TWEET

videoscreenshoot2

tolikpunkoff Jun 25th, 2016 68 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/bin/sh
  2. #
  3. #####################################################################
  4. #           Version: 1.0.0
  5. #####################################################################
  6. #
  7. #
  8. #
  9. SHOTVIDEO(){
  10.    
  11. if [ -z "$VIDEOFILE" ]; then
  12.     Xdialog --title " " --msgbox "$(gettext 'Не выбран видеофайл!')" 0 0  
  13.     exit 1
  14. fi
  15. if [ "$NUMBER" == "" ]; then NUMBER=12; fi
  16. #if [ "$PERCENTAGE" == "" ]; then PERCENTAGE=35; fi
  17. if [ "$FOLDER" == "" ]; then FOLDER=`dirname "$VIDEOFILE"`; fi     
  18.  
  19. mkdir /tmp/shots
  20.  
  21. file_path=$VIDEOFILE
  22. folder_ext=${file_path##*/}
  23. folder_ext=`echo "$folder_ext" | sed '$s/....$//'`
  24. shots_number=$NUMBER
  25. tmp="/tmp/shots/info"
  26. inf=`mplayer "$file_path" -identify -frames 1 -ao null -vo null 2>/dev/null | tee $tmp`
  27. length=`cat $tmp | grep LENGTH | sed -e 's/^.*=//' -e 's/[.].*//'`
  28. shot_time=`echo $[$length/$shots_number/60]`
  29.  
  30. # Making screenshots...
  31. for i in `seq 1 $shots_number`;
  32. do
  33.   randomiser=$RANDOM; let "randomiser %= 25"
  34.   hop=`echo $[$shot_time*60*$i+$randomiser]`
  35.   mplayer -ss $hop -noautosub -frames 1 -ao null -vo png "$file_path" &> /dev/null
  36.   mv 00000001.png /tmp/shots/$i.png &> /dev/null
  37. done
  38. rm /tmp/shots/info
  39. mkdir "$FOLDER"/"$folder_ext"
  40. mv /tmp/shots/* "$FOLDER"/"$folder_ext" &> /dev/null
  41. rmdir /tmp/shots
  42. }
  43. export -f SHOTVIDEO
  44.  
  45. export PROG='
  46. <window title="Видео скриншот 1.0.0">
  47. <vbox>
  48.  <hbox>
  49.       <frame Видео скриншот>
  50.        <text xalign="0">
  51.          <label>GUI для снятия скритшотов с видеофайлов скриптом shot, использующего библиотеку mplayer. Скриншоты сохраняются в одноимённом подкаталоге каталога видеофайла.</label>
  52.        </text>
  53.       </frame>
  54.       </hbox>
  55.       <hbox>
  56.       <frame Выберите файл>
  57.        <hbox>
  58.          <entry accept="filename"><variable>VIDEOFILE</variable></entry>
  59.          <button>
  60.            <input file stock="gtk-open"></input>
  61.            <action type="fileselect">VIDEOFILE</action>
  62.          </button>
  63.        </hbox>
  64.       </frame>
  65.       </hbox>
  66.       <frame Количество кадров>
  67.        <hbox>
  68.          <entry>
  69.            <variable>NUMBER</variable>
  70.            <default>12</default>
  71.          </entry>
  72.        </hbox>  
  73.      </frame>
  74.       <hbox>
  75.         <button>
  76.             <label>Создать</label>
  77.             <action>SHOTVIDEO</action>
  78.             <action>Clear:VIDEOFILE</action>
  79.         </button>
  80.         <button>
  81.             <label>Выход</label>
  82.         </button>
  83.  </hbox>
  84. </vbox>
  85. </window>
  86. '
  87.  
  88. gtkdialog3 --program PROG > /dev/null
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top