Jak scalić / połączyć kilka plików mp3 w linii komend?
Jak się okazuje jest to możliwe za pomocą 1 komenty. Tylko uwaga – wszystkie pliki MP3 muszą mieć identyczne albo bardzo podobne taktowanie. Jeśli któraś ma inną kompresję albo inny bitrate – dźwięk w tym miejscu może być zniekształcony. Np. zwolniony.
Uwaga! komendy zmienią bezpowrotnie nazwy plików mp3. Wykonuj zatem je na kopii plików którą następnie usuniesz po scaleniu.
Na początek zmieniamy hurtem nazwy plików aby nie było w nich spacji albo znaków specjalnych:
for i in *.mp3; do new=$(printf "%04d.mp3" "$a"); mv -i -- "$i" "$new"; let a=a+1; done
Po czym wykonujemy scalenie:
ls *.mp3 | sed -e "s/\(.*\)/file '\1'/" | ffmpeg -protocol_whitelist 'file,pipe' -f concat -i - -c copy output.mp3
Uwaga, może być konieczne zainstalowanie dodatkowego oprogramowania:
sudo apt-get install ffmpeg

