User Tools

Site Tools


ubuntu:sound:fix_mp3_files

Ubuntu - Sound - Fix mp3 files

Some of the more important issues that are found:

  • broken tags / headers / audio
  • duplicate tags / headers
  • incorrect placement of tags / headers (ID3V2, ID3V1, LAME, Xing, …)
  • low quality audio
  • missing VBR header
  • missing track info / cover art
  • broken track info / cover art
  • missing normalization data
  • character encoding issues (for languages other than English)

Things to fix and change:

  • Adding / fixing track info, including album cover
  • Correcting files that show incorrect song duration
  • Correcting files in which the player cannot seek correctly
  • Converting characters for non-English names
  • Adding composer name to the artist field, for players that don't handle the composer field
  • Renaming files based on their fields
  • Changing word case for track info
mp3check --cut-junk-start --cut-junk-end --cut-tag-end --fix-headers input.mp3
ffmpeg -i oldfile.mp3 newfile.mp3
lame input.mp3 output.mp3
lame --decode input.mp3 - | lame -V0 - output.mp3 
for f in *.mp3 ; do lame --decode "$f" - | lame -V1 - "${f%.mp3}_V1.mp3" ; done
vbrfix -always -log input.mp3 output.mp3
vbrfix -always -makevbr -lameinfo imput.mp3 output.mp3

find . -iname '*.mp3' -exec /home/peter/Downloads/mp3gain/mp3gain -r -c -m 4 {} \;
 
for D in `find . -type d`; do for f in $D/*.mp3; do lame --decode "$f" - lame -V1 - "${f%.mp3}.mp3.mp3" ; done; done
 
ffmpeg -i a.mp3 -c:a libfdk_aac a.m4a
ffmpeg -i a.mp3 -c:a aac -b:a 192k a.m4a
 
find . -type f -name "*.mp3" -print0 | while IFS= read -r -d '' file; do echo "$file"; lame --decode "$file" - | vbrfix -always -makevbr -lameinfo - "${file%.mp3}_V1.mp3"; \mv "${file%.mp3}_V1.mp3" "$file";  done
find . -type f -name "*.mp3" -print0 | while IFS= read -r -d '' file; do echo "$file"; vbrfix -always -makevbr -lameinfo "$file" "${file%.mp3}_V1.mp3"; \mv "${file%.mp3}_V1.mp3" "$file";  done
find . -type f -name "*.mp3" -print0 | while IFS= read -r -d '' file; do echo "$file"; ffmpeg -i "$file" -c:a aac -b:a 320k "${file%.mp3}.m4a";  done
 
lame  --vbr-new --preset standard --tt "${tt}" --ta "${ta}" --tl "${tl}" --ty "${ty}" --tn "${tn}" --tg "${tg}" --add-id3v2 a.mp3 a_a.mp3
 
find . -type f -name "*.mp3" -print0 | while IFS= read -r -d '' file; do echo "$file"; lame --decode "$file" - | lame  --vbr-new --preset standard --tt "${tt}" --ta "${ta}" --tl "${tl}" --ty "${ty}" --tn "${tn}" --tg "${tg}" --add-id3v2 - "${file%.mp3}_V1.mp3"; \mv "${file%.mp3}_V1.mp3" "$file";  done
 
find . -type f -name "*.mp3" -print0 | while IFS= read -r -d '' file; do echo "$file"; mp3check --cut-junk-start --cut-junk-end --cut-tag-end --fix-headers "$file";  done
 
find . -type f -name "*.mp3" -print0 | while IFS= read -r -d '' file; do echo "$file"; lame --decode "$file" - | lame --id3v1-only --id3v2-latin1 --add-id3v2 --cbr - "${file%.mp3}_V1.mp3"; \mv "${file%.mp3}_V1.mp3" "$file";  done
 
find . -type f -name "*.mp3" -print0 | while IFS= read -r -d '' file; do echo "$file"; lame --decode "$file" - | lame --add-id3v2 --id3v1-only --id3v2-latin1 --cbr - "${file%.mp3}_V1.mp3"; \mv "${file%.mp3}_V1.mp3" "$file";  done
 
find . -type f -name "*.mp3" -print0 | while IFS= read -r -d '' file; do echo "$file"; lame --decode "$file" - | lame --add-id3v2 --id3v1-only --cbr - "${file%.mp3}_V1.mp3"; \mv "${file%.mp3}_V1.mp3" "$file";  done
find . -type f -name "*.mp3" -print0 | while IFS= read -r -d '' file; do echo "$file"; lame --decode "$file" - | lame --id3v1-only --cbr - "${file%.mp3}_V1.mp3"; \mv "${file%.mp3}_V1.mp3" "$file";  done
find . -type f -name "*.mp3" -print0 | while IFS= read -r -d '' file; do echo "$file"; lame --decode "$file" - | lame --add-id3v2 --cbr - "${file%.mp3}_V1.mp3"; \mv "${file%.mp3}_V1.mp3" "$file";  done
find . -type f -name "*.mp3" -print0 | while IFS= read -r -d '' file; do echo "$file"; lame --decode "$file" - | lame -V1 --id3v1-only --cbr - "${file%.mp3}_V1.mp3"; \mv "${file%.mp3}_V1.mp3" "$file";  done
find . -type f -name "*.mp3" -print0 | while IFS= read -r -d '' file; do echo "$file"; lame --decode "$file" - | lame --cbr - "${file%.mp3}_V1.mp3"; \mv "${file%.mp3}_V1.mp3" "$file";  done
find . -type f -name "*.mp3" -print0 | while IFS= read -r -d '' file; do echo "$file"; lame --decode "$file" - | lame --cbr -V1 - "${file%.mp3}_V1.mp3"; \mv "${file%.mp3}_V1.mp3" "$file";  done
find . -type f -name "*.mp3" -print0 | while IFS= read -r -d '' file; do echo "$file"; lame --decode "$file" - | lame -V1 - "${file%.mp3}_V1.mp3"; \mv "${file%.mp3}_V1.mp3" "$file";  done
find . -type f -name "*.mp3" -print0 | while IFS= read -r -d '' file; do echo "$file"; lame --decode "$file" - | lame -V1 - "${file%.mp3}_V1.mp3"; \mv "${file%.mp3}_V1.mp3" "$file"  done
 
find . -type f -name "*.mp3" -print0 | while IFS= read -r -d '' file; do echo "$file"; done
for D in `find . -print0 -type d`; do echo "$D"; done
for D in `find . -print0 -type d`; do echo $D; done
for D in `find . -type d`; do echo $D; done
for D in `find . -type d`; do echo '$D'; done
 
for file in *.mp3; do lame -V 2 "$file" "${file%.*}".mp3; done
for file in *.wav; do lame -V 2 "$file" "${file%.*}".mp3; done
 
for D in `find . -type d`; do for f in $D/*.mp3; do lame --decode "$f" - lame -V1 - "${f%.mp3}.mp3.mp3" ; done; done
for D in `find . -type d`; do for f in $D/*.mp3; do lame --decode "$f" -| lame -V1 - "${f%.mp3}.mp3.mp3" ; done; done
for D in `find . -type d` | xargs; do for f in *.mp3; do echo "$D" ; done; done
for D in `find . -type d`; do for f in *.mp3; do echo "$D" ; done; done
for D in `find . -type d`; do for f in *.mp3; do echo "'$D'" ; done; done
for D in `find . -type d`; do for f in *.mp3; do echo '"$D"' ; done; done
for D in `find . -type d`; do for f in "$D"/*.mp3; do echo "$D" ; done; done
for D in `find . -type d`; do for f in "$D"/*.mp3; do echo $D ; done; done
for D in `find . -type d`; do for f in "$D"/*.mp3; do echo $f ; done; done
for D in `find . -type d`; for f in "$D"/*.mp3; do echo "$f" ; done; done
 
find . -iname '*.mp3' -exec echo {}; echo {} \;
find . -iname '*.mp3' -exec echo {} \;
find . -iname '*.mp3' -exec echo {} | lame -V 1 - v1.mp3 \;
find . -iname '*.mp3' -exec echo {} - | lame -V 1 - v1.mp3 \;
find . -iname '*.mp3' -exec echo {} - | lame -V1 - v1.mp3 \;
find . -iname '*.mp3' -exec echo {} - | lame -V2 - v1.mp3 \;
find . -iname '*.mp3' -exec echo {} - | lame -V2 v1.mp3 \;
find . -iname '*.mp3' -exec echo {} v1.wav | lame -V2 v1.wav v1.mp3; \mv v1.mp3 {} \;
find . -iname '*.mp3' -exec echo {} v1.wav | lame -V2 v1.wav v1.mp3; mv v1.mp3 {} \;
find . -iname '*.mp3' -exec echo {} - | lame -V2 v1.mp3; mv v1.mp3 {} \;
find . -iname '*.mp3' -exec echo {} - | lame -V2 - v1.mp3; mv v1.mp3 {} \;
find . -iname '*.mp3' -exec echo {} - | lame -V2 - v1.mp3; \mv v1.mp3 {} \;
find . -iname '*.mp3' -exec echo {} - | lame -V2 v1.mp3\;
find . -iname '*.mp3' -exec echo {} -  | lame -V2 - v1.mp3\;
find . -iname '*.mp3' -exec lame --decode {} \;
find . -iname '*.mp3' -exec echo {} \;
find . -iname '*.mp3' -exec lame --decode {} - | lame -V1 - V1.mp3; \mv V1.mp3 {} \;
find . -iname '*.mp3' -exec lame --decode {} - | lame -V1 - {}"_V1.mp3"; \mv {}"_V1.mp3" {} \;
find . -iname '*.mp3' -exec echo {} \;
for D in `find . -type d`; do echo "$D"; for f in "$D"/*.mp3; do echo "$f" ; done; done
ubuntu/sound/fix_mp3_files.txt · Last modified: 2022/02/17 09:50 by peter

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki