Como converter vários arquivos mp3 para mp4 com ffmpeg?

1

O comando a seguir pega o mp3, anexa uma imagem a ele e o converte em um mp4:

ffmpeg -i input.mp3 -loop 1 -i image.png -c: uma cópia -c: v libx264 -shortest output.mp4

Estou tentando aplicar a mesma imagem a cada mp3 em uma pasta. O sistema operacional é o windows 8 e a saída desejada para o arquivo é mp4.

Eu preciso fazer isso para todos os mp3s em uma pasta. Como eu iria codificar isso?

P.S. Eu também estou precisando do código que pode anexar um mp4 intro a vários arquivos mp4 em uma pasta.

    
por Doc Chop 08.07.2015 / 23:38

3 respostas

0

Você pode fazer esse tipo de coisa usando uma linguagem de script. Aqui está um pequeno script Ruby que deve fazer o trabalho, se você executá-lo na pasta que contém os arquivos .mp3 e image.png :

Dir.glob("*.mp3").each do |file|
    system("ffmpeg -i #{file} -loop 1 -i image.png -c:a copy -c:v libx264 -shortest output.mp4")
end
    
por 08.07.2015 / 23:51
0

Assumindo o padrão bog Windows cmd.exe (ou seja, não é adorável cygwin , ou Powershell, ou <insert scripting language here> ):

for %f in (*.mp3) do ffmpeg -i %f -loop 1 -i image.png -c:a copy -c:v libx264 -shortest %~nf.mp4

(também assume que não em um arquivo de lote; se for esse o caso, o % s precisa ser dobrado para %% )

Utiliza o fato de que você pode ler no arquivo atual (ou diretório, etc, dependendo de quais argumentos você passar para for ) para uma variável de caractere único; que você pode obter o nome de base de via %~n .

Portanto, supondo que seus mp3s e image.png estejam na sua pasta Downloads , de acordo com seu comentário:

  1. Inicie um prompt de comando: <windows key>+r --> cmd --> <enter>
  2. Alterar para o diretório de downloads: cd Downloads
  3. Execute o comando ffmpeg com loop: for %f in (*.mp3) do ffmpeg -i %f -loop 1 -i image.png -c:a copy -c:v libx264 -shortest %~nf.mp4
  4. (opcional) Aproveite as versões mp4 de seus mp3s com a imagem
por 08.07.2015 / 23:50
0
  1. Crie um arquivo e salve-o com a extensão .bat
  2. Escreva o código abaixo nele. (especifique o arquivo de imagem correto)
  3. Copie o arquivo em lote no diretório que contém seus arquivos .mp3.
  4. Assumindo que o caminho para o ffmpeg.exe está definido em suas variáveis de ambiente, execute o arquivo em lote
  5. Localize os arquivos convertidos na pasta criada "convertida".
@echo off
mkdir converted
for %%a in ("*.mp3") do ffmpeg -i "%%a" -loop 1 -i image.png -c:a copy -c:v libx264 -shortest "converted\%%~na.mp4"
pause
    
por 08.10.2018 / 17:38