add compress-music.sh
							parent
							
								
									e63dbed425
								
							
						
					
					
						commit
						b782d22395
					
				| @ -0,0 +1,34 @@ | |||||||
|  | #!/bin/bash | ||||||
|  | set -e | ||||||
|  | 
 | ||||||
|  | source="$HOME/kskcloud/Musik/" | ||||||
|  | tmp="$HOME/Musik.tiny/" | ||||||
|  | destination="$HOME/kskcloud/Musik.tiny/" | ||||||
|  | placeholder="$destination/a" | ||||||
|  | 
 | ||||||
|  | rm -rf "$tmp" | ||||||
|  | mkdir "$tmp" | ||||||
|  | 
 | ||||||
|  | mkdir -p "$destination" | ||||||
|  | 
 | ||||||
|  | # create a placeholder to prevent * from failing | ||||||
|  | touch "$placeholder" | ||||||
|  | 
 | ||||||
|  | # copy original target files and existing files as cache | ||||||
|  | echo 'copying . . .' | ||||||
|  | cp -a --reflink=always "$source/"* "$destination/"* "$tmp" | ||||||
|  | 
 | ||||||
|  | # compress with opus; +e because ffmpeg errors on .jpg, .txt, etc. | ||||||
|  | echo 'compressing . . .' | ||||||
|  | set +e | ||||||
|  | find "$tmp" -type f -not -name '*.opus' | parallel --eta --progress 'ffmpeg -v 0 -n -i ""{}"" -c:a libopus -map_metadata 0 -b:a 128k ""{.}.opus""' | ||||||
|  | set -e | ||||||
|  | 
 | ||||||
|  | # delete all non-opus files | ||||||
|  | echo 'deleting . . .' | ||||||
|  | find "$tmp" -type f -not -name '*.opus' -delete | ||||||
|  | 
 | ||||||
|  | # copy compressed files to target destination | ||||||
|  | cp -a --reflink=always "$tmp/"* "$destination" | ||||||
|  | 
 | ||||||
|  | rm -r "$tmp" | ||||||
					Loading…
					
					
				
		Reference in New Issue