tolikpunkoff

videoscreenshoot2

Jun 25th, 2016
165
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