ffmpeg
versões e empacotamento ffmpeg
você mesmo
Se alguém estiver usando ffmpeg
0.5.10, você realmente não é culpado se algo não funcionar. A causa número um dos problemas com os comandos ffmpeg
(pelo menos da minha experiência) é uma versão desatualizada. Entre 0,5 e 1,2 recentes, existem literalmente milhares de erros fixos e centenas de novos recursos. Mais notavelmente, eles alteraram (e removeram) algumas opções de linha de comando, que quebram alguns fluxos de trabalho.
Observe que o Ubuntu, devido em algumas circunstâncias , realmente não usa ffmpeg
do projeto FFmpeg, mas na verdade usa o avconv
do Libav. Nas versões mais recentes do Ubuntu, isso é. Versões antigas do Ubuntu ainda forneciam um binário chamado ffmpeg
que vinha do Libav, que está quebrado e desatualizado, mas as pessoas ainda pensam que ele vem do FFmpeg. Conclusão: Você não pode e não deve confiar em seu usuário para ter um binário ffmpeg
em funcionamento em seu sistema.
Existem muitos projetos que incluem parte das ferramentas do FFmpeg , e você pode incorporar uma compilação estática com o seu software, se não for um problema legal (IANAL, portanto, verifique). A única desvantagem que vejo aqui é que os kernels mais antigos podem não executar todas as compilações estáticas.
Dito tudo, eis o que deve funcionar em todos os lugares, supondo que ffmpeg
foi compilado com libx264
e libmp3lame
ativado. O comando original que você tinha não funcionaria de forma confiável porque o áudio do Vorbis é problemático em AVI , e o codificador AC3 que é auto- selecionado para AVI pode chocke em algumas entradas. Além disso, você recodificaria seu áudio de Vorbis para AC3, o que deteriora a qualidade.
Extrair áudio para MP3
Em vez disso, exporte para o áudio de MP3, por ex. com 320 kBit / s CBR ou VBR de 4 (LAME% equivalente -V
). O último pode não funcionar em versões antigas devido ao sufixo :a
.
ffmpeg -v error -i source_1_path -vn -acodec libmp3lame -ab 320k audio_track.mp3
ffmpeg -v error -i source_1_path -vn -acodec libmp3lame -q:a 4 audio_track.mp3
Combinar com vídeo H.264
Para combinar, usaremos o vídeo x264 (um codificador H.264):
ffmpeg -v error -f image2 -r 1 -i frame_pattern.jpg -i audio_track.mp3 \
-acodec copy -vcodec libx264 output.mp4
Aqui, você simplesmente copia o fluxo de áudio em vez de ter ffmpeg
recodificado. Isso ajudará você a manter a qualidade original.
Quanto ao vídeo, note que nem todos os dispositivos podem reproduzir H.264 fora da caixa. Alguns podem reproduzir apenas o H.264 com o perfil de linha de base, que você define com -profile:v baseline
no mais recente ffmpeg
ou -vprofile baseline
em algumas versões em torno de 0,7 (não sei qual… estava indocumentado) ou -vpre baseline
para versões realmente antigas que usavam predefinições internas em vez de dependerem do x264 biblioteca de codificadores.
Alternativa: Combine com vídeo MPEG-4
Se o H.264 não for uma opção, você pode experimentar o vídeo MPEG-4 Parte II - aqui com uma taxa de bits de 2 MBit / s definida em -vb
:
ffmpeg -v error -f image2 -r 1 -i frame_pattern.jpg -i audio_track.mp3 \
-acodec copy -vcodec mpeg4 -vb 2M output.mp4
A opção deve ser -b:v
agora, mas o antigo alias ainda funciona.