Como você pode aparar arquivos mp3 usando o `ffmpeg`?

10

Aqui está um quebra-cabeça de áudio e áudio em Linux que está me incomodando há algum tempo:

Como cortar o início de alguns segundos de um arquivo de áudio MP3? (Não consigo ffmpeg -sstrabalhar com o formato 00:01 ou 1.000)

Até agora, para fazer o que eu quero, recorro a fazê-lo de uma maneira GUI, que talvez seja mais lenta para um único arquivo e definitivamente mais lenta para um lote de arquivos.

Mark Hudson
fonte
1
Uma atualização. Mais tarde, deparei-me com o fato de que o ffmpeg é muito exigente quanto ao formato de hora --ss, e pude cortar com mais facilidade os primeiros 9 segundos, por exemplo, especificando -ss 00:00:09 (observe que ele precisa de tudo 3 números no formato hh: mm: ss) A versão que eu estava usando pode ser antiga ... FFmpeg versão SVN-r18709, Copyright (c) 2000-2009 Fabrice Bellard, et al.
Mark Hudson

Respostas:

5

Para editar mp3 em linux, eu recomendo o sox . Tem um trimefeito simples de usar que fará o que você solicita (consulte os dados man sox- pesquise (pressione /) por "início de corte"). Exemplo:

sox input.mp3 output.mp3 trim 1 5

Você não mencionou, mas se seu objetivo é apenas remover o silêncio no início dos arquivos, você achará o silenceefeito muito mais útil ( man soxprocure por "períodos acima")

rozcietrzewiacz
fonte
Obrigado, incrível: funcionou. Acabei usando a trimsimplicidade. O único infortúnio foi - sox FAIL formats: can't open output file 'blah.mp3': SoX was compiled without MP3 encoding supportassim, re-digite ffmpeg: /
Mark Hudson
Isso parece incomum. No meu computador, ele funciona sem problemas com mp3s. É uma questão de configuração em tempo de compilação. Como você instalou?
rozcietrzewiacz
@rozcietrzewiacz, se você instalar o sox a partir de um repositório de distribuição, provavelmente obterá o sox sem o suporte a MP3 (devido a problemas de licença). Por exemplo, no Fedora 17:no handler for file extension mp3
maxschlepzig 10/06/2013
4

Você pode tentar usar o mp3splt , que pode dividir arquivos MP3 e Ogg e tem a vantagem de não recodificar o arquivo, evitando assim a perda de qualidade.


fonte
1
Eu gosto disso; obrigado. É simples e ainda possui muitas opções ... Por exemplo: aqui está o comando que acabei de usar, que adiciona os tempos parciais ao nome do arquivo: mp3splt "$file" 4.12 27.55.7... Permite formatação personalizada do nome da saída e vários pontos de divisão.
Peter.O
1

Verifique se as especificações de tempo começam com horas.

Para citar a página de manual ffmpeg :

posição pode estar em segundos ou no formato "hh: mm: ss [.xxx]"

Isso significa que, quando você escolhe a segunda sintaxe, apenas a .xxxparte é opcional. Caso contrário, o ffmpeg pode analisá-lo incorretamente em segundos.

O mesmo vale para a duração:

a duração pode ser um número em segundos ou em "hh: mm: ss [.xxx]"

Outra armadilha é a ordenação dos argumentos ffmpeg (por exemplo, as opções -ss/ -tpara um arquivo de entrada devem vir antes da -iopção).

Exemplo

$ wget http://traffic.libsyn.com/twiv/TWiV179.mp3
$ ffmpeg -ss 1:05:59.3 -t 00:02:03.9 -i TWiV179.mp3 -acodec copy \
     what_is_a_hmm_twiv179.mp3

Com a especificação, -ss 1:05:59.3 -t 2:03.9você obteria um resultado diferente (ou seja, uma peça de 2 segundos).

(Testado no Fedora 17 com a versão 0.10.7 do ffmpeg.)

maxschlepzig
fonte