Copiar fluxos é mais rápido
Seu primeiro exemplo é simplesmente copiar os fluxos e, em seguida, realocar o átomo moov. Essa realocação permite que um vídeo comece a reprodução antes de ser completamente transferido, como um espectador que assiste ao seu vídeo pelo navegador.
ffmpeg -i input.mp4 -codec copy -map 0 -movflags +faststart output.mp4
A codificação é mais lenta
A codificação, como em seu segundo exemplo, pode levar muito tempo, dependendo de vários fatores, incluindo: a complexidade e duração de suas entradas, como seus builds ffmpeg e x264 foram compilados, a idade de suas builds (potencial falta de recursos, aprimoramentos e correções de bugs), sua CPU, o codificador usado e suas configurações de codificação. Nem todos eles podem ser controlados, mas você pode ter certeza de que está usando uma versão recente e pode alterar suas configurações de codificação para melhor atender às suas necessidades.
Obtendo o FFmpeg
As compilações estáticas são fáceis de usar: basta baixar, extrair e executar. Consulte a página Download do FFmpeg para obter opções para usuários de Linux, Windows e OS X. Você também pode compilar e vários guias passo-a-passo de compilação FFmpeg estão disponíveis.
Usando uma predefinição
Você pode usar uma predefinição de codificação mais rápida ao codificar com x264:
ffmpeg -i in.wmv -codec:v libx264 -preset fast -movflags +faststart out.mp4
Uma predefinição é uma coleção de opções que determinam a eficiência da codificação e, portanto, também afetará a velocidade. As predefinições atuais são: ultrafast
, superfast
, veryfast
, faster
, fast
, medium
, slow
, slower
, veryslow
, placebo
. O padrão é medium
e placebo
é uma perda de tempo. A recomendação geral é simplesmente usar a predefinição mais lenta para a qual você tem paciência. Consulte o FFmpeg e o x264 Encoding Guide para obter mais informações.
O -f mp4
é desnecessário e, dependendo da sua versão do ffmpeg h264
pode funcionar como um nome de codificador, convém usar libx264
.