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

Możesz również polubić…

Inna porada:
Przywrócenie wiekowego CMS MODx do życia na serwerze PHP 5.6