Tooling for managing asset compression, storage, and retrieval
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

176 lines
5.1 KiB

4 years ago
4 years ago
  1. {
  2. "concurrency": 0,
  3. "profiles": {
  4. "default": {
  5. "jpeg": {
  6. "processors": ["cjpeg"],
  7. "extensions": [
  8. "jpg",
  9. "jpeg"
  10. ],
  11. "outputExtension": "jpg",
  12. "command": "cjpeg -optimize -quality 90 -progressive -outfile {output_file} {input_file}"
  13. },
  14. "png": {
  15. "processors": ["optipng"],
  16. "extensions": [
  17. "png"
  18. ],
  19. "outputExtension": "png",
  20. "command": "optipng -o2 -strip all -out {output_file} {input_file}"
  21. },
  22. "video": {
  23. "processors": ["ffmpeg"],
  24. "extensions": [
  25. "mp4",
  26. "webm"
  27. ],
  28. "outputExtension": "webm",
  29. "command": "ffmpeg -hide_banner -loglevel panic -i {input_file} -c:v libvpx-vp9 -b:v 0 -crf 29 -c:a libopus {output_file}"
  30. },
  31. "audio": {
  32. "processors": ["ffmpeg", "opusenc"],
  33. "extensions": [
  34. "wav",
  35. "mp3"
  36. ],
  37. "outputExtension": "ogg",
  38. "command": "ffmpeg -hide_banner -loglevel panic -i {input_file} -f wav -| opusenc --bitrate 64 --vbr --downmix-stereo --discard-comments --discard-pictures - {output_file}"
  39. }
  40. },
  41. "placebo": {
  42. "jpeg": {
  43. "processors": ["cp"],
  44. "extensions": [
  45. "jpg",
  46. "jpeg"
  47. ],
  48. "outputExtension": "jpg",
  49. "preserveInputExtension": true,
  50. "command": "cp {input_file} {output_file}"
  51. },
  52. "png": {
  53. "processors": ["cp"],
  54. "extensions": [
  55. "png"
  56. ],
  57. "outputExtension": "png",
  58. "preserveInputExtension": true,
  59. "command": "cp {input_file} {output_file}"
  60. },
  61. "video": {
  62. "processors": ["cp"],
  63. "extensions": [
  64. "mp4",
  65. "webm"
  66. ],
  67. "outputExtension": "mp4",
  68. "preserveInputExtension": true,
  69. "command": "cp {input_file} {output_file}"
  70. },
  71. "audio": {
  72. "processors": ["cp"],
  73. "extensions": [
  74. "wav",
  75. "mp3"
  76. ],
  77. "outputExtension": "ogg",
  78. "preserveInputExtension": true,
  79. "command": "cp {input_file} {output_file}"
  80. }
  81. },
  82. "webp": {
  83. "jpeg": {
  84. "processors": ["cwebp"],
  85. "extensions": [
  86. "jpg",
  87. "jpeg"
  88. ],
  89. "outputExtension": "webp",
  90. "command": "cwebp -jpeg_like -q 90 -o {output_file} {input_file}"
  91. },
  92. "png": {
  93. "processors": ["cwebp"],
  94. "extensions": [
  95. "png"
  96. ],
  97. "outputExtension": "webp",
  98. "command": "cwebp -lossless -o {output_file} {input_file}"
  99. }
  100. },
  101. "aggressive": {
  102. "jpeg": {
  103. "processors": ["ffmpeg", "cjpeg"],
  104. "extensions": [
  105. "jpg",
  106. "jpeg"
  107. ],
  108. "outputExtension": "jpg",
  109. "command": "export FILE={output_file} && export TEMP_FILE=${FILE}_tmp.jpg && ffmpeg -i {input_file} -vf scale=-1:720 ${TEMP_FILE} && cjpeg -optimize -quality 75 -progressive -outfile {output_file} ${TEMP_FILE} && rm ${TEMP_FILE}"
  110. },
  111. "png": {
  112. "processors": ["optipng"],
  113. "extensions": [
  114. "png"
  115. ],
  116. "outputExtension": "png",
  117. "command": "optipng -o2 -strip all -out {output_file} {input_file}"
  118. },
  119. "video": {
  120. "processors": ["ffmpeg"],
  121. "extensions": [
  122. "mp4",
  123. "webm"
  124. ],
  125. "outputExtension": "webm",
  126. "command": "ffmpeg -hide_banner -loglevel panic -i {input_file} -vf scale=-1:720 -c:v libvpx-vp9 -b:v 0 -crf 38 -c:a libopus {output_file}"
  127. },
  128. "audio": {
  129. "processors": ["ffmpeg", "opusenc"],
  130. "extensions": [
  131. "wav",
  132. "mp3"
  133. ],
  134. "outputExtension": "ogg",
  135. "command": "ffmpeg -hide_banner -loglevel panic -i {input_file} -f wav -| opusenc --bitrate 64 --vbr --downmix-stereo --discard-comments --discard-pictures - {output_file}"
  136. }
  137. },
  138. "aggressive-webp": {
  139. "jpeg": {
  140. "processors": ["cwebp"],
  141. "extensions": [
  142. "jpg",
  143. "jpeg"
  144. ],
  145. "outputExtension": "webp",
  146. "command": "export FILE={output_file} && export TEMP_FILE=${FILE}_tmp.jpg && ffmpeg -i {input_file} -vf scale=-1:720 ${TEMP_FILE} && cwebp -jpeg_like -q 75 -o {output_file} ${TEMP_FILE} && rm ${TEMP_FILE}"
  147. },
  148. "png": {
  149. "processors": ["cwebp"],
  150. "extensions": [
  151. "png"
  152. ],
  153. "outputExtension": "webp",
  154. "command": "cwebp -o {output_file} ${input_file}"
  155. },
  156. "video": {
  157. "processors": ["ffmpeg"],
  158. "extensions": [
  159. "mp4",
  160. "webm"
  161. ],
  162. "outputExtension": "webm",
  163. "command": "ffmpeg -hide_banner -loglevel panic -i {input_file} -vf scale=-1:720 -c:v libvpx-vp9 -b:v 0 -crf 38 -c:a libopus {output_file}"
  164. },
  165. "audio": {
  166. "processors": ["ffmpeg", "opusenc"],
  167. "extensions": [
  168. "wav",
  169. "mp3"
  170. ],
  171. "outputExtension": "ogg",
  172. "command": "ffmpeg -hide_banner -loglevel panic -i {input_file} -f wav -| opusenc --bitrate 64 --vbr --downmix-stereo --discard-comments --discard-pictures - {output_file}"
  173. }
  174. }
  175. }
  176. }