ijontichy

<stdin>

Apr 7th, 2014
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.02 KB | None | 0 0
  1. glc2webm()
  2. {
  3. local glcFile
  4. local glcBase
  5. local out
  6. local fpsRate
  7. local bitrate
  8. local maxsize
  9. local sizearg
  10.  
  11. if [[ "$1" == "" ]]
  12. then
  13. echo "error: $0: no glc file specified" >&2
  14. return 127
  15. fi
  16.  
  17. if [[ "$2" == "" ]]
  18. then
  19. fpsRate=30
  20. else
  21. fpsRate=$2
  22. fi
  23.  
  24. if [[ "$3" == "" ]]
  25. then
  26. bitrate="1024k"
  27. else
  28. bitrate="${3}k"
  29. fi
  30.  
  31.  
  32. if [[ "$4" == "" ]]
  33. then
  34. sizearg=""
  35. maxsize="any"
  36. else
  37. sizearg=("-fs" "${4}")
  38. maxsize="$4"
  39. fi
  40.  
  41. glcFile="$1"
  42. glcBase="$(basename $glcFile)"
  43. glcBase="${1/.*/}"
  44. out="$glcBase.webm"
  45.  
  46. if [ -e "$out" ]
  47. then
  48. if [ -f "$out" ]
  49. then
  50. echo "warning: $out existed beforehand, moved to $out.old" >&2
  51. mv $out $out.old
  52. else
  53. echo "error: $out exists and is not a regular file, skipping" >&2
  54. continue
  55. fi
  56. fi
  57.  
  58. echo "Encoding ${glcFile} at FPS of ${fpsRate} at ${bitrate}, max size $maxsize"
  59.  
  60. echo "Dumping to MP4..."
  61. (glc-play $glcFile -o - -y 1 -g "0.02;0;1.35;1.35;1.35" | ffmpeg -i - -y -loglevel warning video-$glcBase.mp4)
  62.  
  63. local error=$?
  64. if [[ $error != 0 ]]
  65. then
  66. echo "Error on dumping, aborting"
  67. return $error
  68. fi
  69.  
  70. echo "Pass 1..."
  71. ffmpeg -i video-$glcBase.mp4 -codec:v libvpx -b:v $bitrate -r $fpsRate $sizearg -c 4 -quality best -bufsize 2048k -an -threads 3 -pass 1 -f webm -loglevel warning - >/dev/null
  72.  
  73. local error=$?
  74. if [[ $error != 0 ]]
  75. then
  76. echo "Error on pass 1, aborting"
  77. return $error
  78. fi
  79.  
  80. echo "Pass 2..."
  81. ffmpeg -i video-$glcBase.mp4 -codec:v libvpx -b:v $bitrate -r $fpsRate $sizearg -c 4 -quality best -bufsize 2048k -an -threads 3 -pass 2 -f webm -loglevel warning $out
  82.  
  83. local error=$?
  84. if [[ $error != 0 ]]
  85. then
  86. echo "Error on pass 2, aborting"
  87. return $error
  88. fi
  89.  
  90. rm video-$glcBase.mp4
  91. echo "dun, look at $out (size $(du -h ${out} | cut -f1))"
  92. }
Advertisement
Add Comment
Please, Sign In to add comment