Que conveniente! O FFMPEG pode ler e converter arquivos SPC!
ffmpeg -i night1.spc -acodec pcm_u8 -ar 44100 night1.wav
Agora, este comando irá converter o seu arquivo de forma bem limpa, e irá cuspir um bom arquivo .wav
(não se esqueça de substituir night1.spc
e night1.wav
com o que você quiser que os nomes dos arquivos sejam).
Infelizmente, isso não encerra a história nem um pouco. Depois de executar o comando acima por um tempo, recebi o seguinte resultado:
-rw-rw-r-- 1 kazwolfe kazwolfe 297M Mar 28 02:05 night1.wav
-rw-rw-r-- 1 kazwolfe kazwolfe 65K Mar 28 02:01 night1.spc
Isso não pode estar certo ... vamos abrir o arquivo no Audacity e ver o que está acontecendo:
Em suma, os arquivos SPC não possuem comprimento definido neles. Embora haja uma menção ao comprimento na especificação , ela parece ser ignorada com frequência e, na verdade, é ignorados nos arquivos enviados para o seu Google Drive.
Os arquivos SPC, conforme copiados do SNES (em seu formato original), foram feitos para praticamente todos os tipos de arquivos. Assim, quando eles são reproduzidos (ou convertidos neste caso), eles também vão fazer loop para sempre.
Portanto, precisamos passar manualmente o comprimento (e possivelmente compensar) para ffmpeg
. Felizmente, o programa vem com um pequeno argumento de linha de comando chamado -t <time>
. Usando isso, podemos especificar quanto áudio queremos converter.
Da mesma forma, se o arquivo tiver um deslocamento, podemos usar o argumento -ss <time>
para especificar o quão longe do começo queremos recortar.
Portanto, assumindo um arquivo de 45 segundos com um deslocamento de 5 segundos, o comando que precisamos executar é:
ffmpeg -i night1.spc -t 00:00:45 -ss 00:00:05 -acodec pcm_u8 -ar 44100 night1.wav