Junte Áudio e Imagem -> Saída como Vídeo usando FFmpeg

Junte Áudio e Imagem -> Saída como Vídeo usando FFmpeg

Tenho 1 imagem (jpg) e 1 arquivo de áudio (MP3) e gostaria de gerar isso como um arquivo de vídeo (digamos AVI, por exemplo).

Alguém sabe como usar o FFMPEG para juntar os dois? Gostaria de mostrar a imagem durante o áudio.

Alguém tem alguma ideia?

Responder1

Se você estiver no Windows, também poderá fazer isso no Windows Movie Maker ... se precisar de instruções, deixe um comentário

Para FFmpeg use isto

ffmpeg -loop_input -vframes 14490 -i imagine.jpg -i audio.mp3 -y -r 30 
    -b 2500k -acodec ac3 -ab 384k -vcodec mpeg4 result.mp4
  • vframes 14490 é o número de frames que devem ser repetidos para ter uma imagem contínua para todo o arquivo audio.mp3

    Ex: Por 8 minutos e 3 segundos ((8m x 60s + 3s) x 30fps = 14490 vf)

Recurso deaqui

Responder2

Existe uma maneira muito mais simples do que as sugeridas aqui, que não requer o cálculo do número de quadros ou a inserção do comprimento de arquivos individuais (especialmente melhor para processamento em lote). Com uma versão recente do ffmpeg, você pode usar a -shortestopção, que interrompe a codificação quando o fluxo mais curto termina - neste caso, input.mp3 (já que a imagem fará um loop para sempre, ela tem comprimento infinito):

ffmpeg -i input.mp3 -f image2 -loop 1 -r 2 -i input.jpg \
-shortest -c:a copy -c:v libx264 -crf 23 -preset veryfast output.mp4

Isso usa 2 quadros por segundo para a imagem/vídeo, o que deve ser bom, mas você pode configurá-lo para um valor mais padrão de 25, se desejar.

Responder3

subanki quase acertou. A linha de comando funcional é a seguinte;

ffmpeg -y -loop 1 -i image.jpg -i audio.mp3 -r 30 -b:v 2500k -vframes 14490 -acodec libvo_aacenc -ab 160k result.mp4
- sim

sobrescrever arquivos de saída sem avisar

-loop 1

A opção '-loop_input' está obsoleta, use -loop 1. Consultedocumentação do ffmpeg.

-eu

arquivo(s) de entrada

-r

Quadros por segundo
também podem ser expressos como: -r 30000/1001 dando um fps de 29,97nnn

-b:v

taxa de bits de vídeo; quanto maior o número, melhor será a qualidade e maior será o tamanho do arquivo.

-vframes

Conforme explicado acima; calcule o tempo total do seu arquivo de áudio em segundos (por exemplo, 00:02:41 (2 minutos e 41 segundos) é igual a 161 segundos no total (2 x 60) + 41). Em seguida, multiplique o total de segundos pelos quadros por segundo especificados com -r (por exemplo, 161 x 30 = 4830).

-vframes pode ser substituído por -t 161 (-t registro de duração ou transcodificação de segundos de “duração” de áudio/vídeo)

-acodec

Use o codec de áudio correto para o tipo de arquivo que você está criando. Para .mp4, deve ser um formato AAC. O codec libvo_aacenc era o codec de codificação correto para meu sistema Windows 7.

-ab

Taxa de bits do áudio

resultado.mp4

Este é o nome do arquivo de saída. Pode ser qualquer nome de arquivo legal para o seu sistema. A extensão ajudará o ffmpeg a determinar o codec de vídeo adequado se você não especificar um usando -vcodec.

Responder4

DownloadVirtual Dub, então faça isso:

  1. Abra a imagem como abriria um arquivo de vídeo normal.

  2. Calcule a duração do áudio em segundos e arredonde-a para o segundo inteiro mais próximo (por exemplo, 78,34 segundos se transforma em 79 segundos). Este valor é chamado de x a partir de agora.

  3. Vá para "vídeo > taxa de quadros", selecione "alterar para taxa de quadros (fps)" e insira "1/x" como valor. Além disso, se você quiser ter uma taxa de quadros normal no arquivo resultante, como 25 fps, selecione "Converter para fps" e insira a taxa de quadros desejada.

  4. Selecione “vídeo > compressão” e escolha seu sabor favorito. Pode ser que você precise ajustar o tamanho da imagem com o filtro de redimensionamento.

  5. Vá para "áudio> áudio de outro arquivo" e selecione seu áudio lá. Se necessário, selecione uma compactação para o áudio.

  6. Salve o arquivo.

Fonte:StephanV

informação relacionada