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