FFMPEG convertendo o tipo de mídia, bem como relocando o átomo MOOV

6

Encontrei esta linha on-line

ffmpeg -i input.mp4 -c:a copy -c:v copy -movflags faststart output.mp4

Que recebe uma entrada e copia o áudio, o vídeo e define o átomo MOOV para o início em um elemento chamado output.mp4. Basicamente criando o mesmo vídeo com os átomos MOOV em um novo local.

Eu preciso converter o tipo dessa mídia - então eu tenho a linha

ffmpeg -i input.wmv -vcodec h264 -f mp4 output.mp4

Meu problema é, isso é possível em uma linha? Eu sei que posso executar um após o outro, mas isso cria um par de vídeos quando eu só preciso do vídeo resultante, o que poderia resultar em muita memória desperdiçada.

Estou certo de que a linha

ffmpeg -i input.wmv -movflags faststart -vcodec h264 -f mp4 output.mp4 

É legítimo, mas sem as cópias diretas, isso leva muito tempo para ser computado.

Qualquer entrada em átomos de MOOV e computação de ffmpeg é bem-vinda.

    
por Jim 11.06.2013 / 14:01

1 resposta

5

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 .

    
por 11.06.2013 / 19:48