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