Eu tenho muitos arquivos MP3 no meu site e decidi enviá-los para o Youtube, mas infelizmente para mim, o YouTube não me permite fazer isso. Requer apenas o formato de vídeo.
Como posso converter esses MP3s em vídeo e adicionar o mesmo conjunto de imagens (uma ou mais imagens) ao formato de vídeo resultante.
Preciso fazer isso em massa, não individualmente, tenho centenas de arquivos MP3.
Pode ser um aplicativo baseado em Windows ou Linux.
fonte
-vcodec libx264
reduz drasticamente o aumento do tamanho do vídeo em relação ao MP3: superuser.com/a/1472572/128124Você também pode considerar o bash oneliner simples em vez do script python -
Isso converterá todos os arquivos mp3 no seu diretório atual em vídeos mp4 com picture.jpg.
Para converter flac para mp3 que seria
Observe "-v quiet" , que fecha a boca alta do ffmpeg e também aspas duplas em torno de $ ie
sed
- isso garantirá que não falhe com nomes de arquivos que contenham espaços.Uma dica: converter para vídeo leva bastante tempo (pelo menos para mim). Tente usar -threads 4 (ou qualquer outro valor, é claro. Não fará sentido na CPU de núcleo único)
Edit: Eu descobri que "-loop 1" (sugerido por outros) cria loop (que surpreendente!), Que é realmente infinito. No meu gentoo, isso significa que ele comerá todas as suas mordidas saborosas. Sem o "-loop 1", ele funciona muito bem, então eu sugiro que você faça isso.
fonte
Existem algumas soluções para o Ubuntu e outros sistemas Linux em http://ubuntuforums.org/showthread.php?t=1686664 . A maioria são comandos de shell ou alguma outra linguagem de script rápida que pode ser executada em loop para todos os MP3s, produzindo arquivos de vídeo. Em seguida, você pode simplesmente enfileirar os arquivos de vídeo para enviar para o YouTube. Entre as soluções listadas na página:
FFmpeg, faça o upload de arquivos para o YouTube
ffmpeg -loop 1 -i picture.jpg -i music.mp3 -shortest -acodec copy video.mp4
Loop de acordo com todos os arquivos mp3 e, em seguida, faça o upload de todos os arquivos de vídeo resultantes.Python, converta para mp4 e depois envie arquivos para o YouTube
Ele também usa ffmpeg e aceita música e imagem como argumentos.
fonte
loop_input
está obsoleto no ffmpeg - você precisa usar-loop 1
agora.Converter recursivamente em subdiretórios
Aqui está uma
find
versão simples que converte tudo.mp3
no diretório atual e seus subdiretórios para mp4:Obtenha alguns dados de teste:
Saída carregada: https://www.youtube.com/watch?v=tv3a6kP6BDA
Se
ffmpeg
reclamar que o tamanho da imagem não é múltiplo de 2 (necessáriolibx264
), primeiro você pode encontrar o tamanho da imagem com o Imagemagick:e depois arredondar a largura e a altura para ficarem uniformes, por exemplo, se o tamanho fosse 1023x513, usaríamos:
onde as
!
forças desse tamanho serão usadas: https://unix.stackexchange.com/questions/319504/force-graphicsmagick-to-resize-image-to-specific-widthA
-nostdin
é necessária porque ffmpeg lê bytes do stdin de outro modo, e quebra o nossoread
!!! https://stackoverflow.com/questions/52374260/bash-variable-changes-in-loop-with-ffmpegA
-vcodec libx264
reduz drasticamente o tamanho do vídeo final a ser muito mais próximo ao do MP3 original: o codec de vídeo padrão parece ser muito pior. Pode ser possível reduzir ainda mais o aumento do tamanho, tendo menos quadros-chave: https://stackoverflow.com/questions/30979714/how-to-change-keyframe-interval-in-ffmpeg Nos dados de nossa amostra, tivemos +3 MB em um MP3 de 3 minutos e 3 MB com uma imagem de 1,1 MB.Consulte também: Combine uma imagem + um arquivo de áudio para criar um vídeo usando o FFmpeg
Representação processual de vídeo de áudio
O ffmpeg é muito abrangente e você pode gerar várias representações de vídeo do seu áudio usando os comandos do formulário:
Aqui
avectorscope
está o tipo de representação específico.Aqui está uma lista útil desses formatos: https://gist.github.com/seyoum/4455e9bed74241bfbd640a8083fd38b3, todos documentados em: http://ffmpeg.org/ffmpeg-filters.html#Multimedia-Filters
Consulte também: Crie um arquivo de vídeo a partir de um arquivo de áudio e adicione visualizações do áudio
Testado no Ubuntu 19.04, ffmpeg 4.1.3. Os arquivos foram enviados corretamente para o YouTube a partir de agosto de 2019.
fonte
scale
filtro no ffmpeg, por exemplo, stackoverflow.com/a/40497904/435093Copie seus arquivos mp3 (ou o que você quiser codificar, altere seu formato de áudio de acordo.) Para uma pasta. Coloque também uma instância de ffmpeg, com uma imagem de capa intitulada
herringbone.jpg
.Em seguida, vá para o CMD e navegue até a pasta.
Copie isto:
(Para colar na janela CMD, clique na janela da linha cmd no canto superior esquerdo. Escolha EDIT / Paste.)
Pressione Enter.
Funciona com a versão mais recente do codificador ffmpeg (4.1.1)
Eu imagino que você também pode alterar o formato do vídeo. Basta mudar de mp4 para o que você deseja e o que o ffmpeg suporta.
Encontrei isso em outro fórum, mas não funcionou até que eu mudei de lugar
-shortest
no script.fonte