Cortar vídeo para partes diferentes com a mesma taxa de bits no ffmpeg

1

Eu estou tentando recortar um videoclipe (originalmente 960 por 540) em duas partes (top-left, top-right, etc.) e eu uso este comando abaixo (com as posições naturalmente xx correspondentes) :

ffmpeg -i mov_a.m4v -vf "crop=480:270:480:270" mov_a_4.m4v

O problema é que a taxa de bits de cada clipe recortado é diferente. O que eu estou tentando fazer é colocar este 4 partes do filme em 4 tablets Android e iniciá-los ao mesmo tempo (para formar uma tela multi).

Tenho certeza de que o comando PLAY atinge os tablets Android ao mesmo tempo (bem, uma diferença de tempo muito pequena). Mas então eu tenho este 4 clipes fora de sincronia, e eu acho que é porque as taxas de bits diferentes, o jogador tem que fazer mais trabalho para carregar as partes superiores com maior taxa de bits.

Mesmo se você acha que este não é o problema, é possível forçar a saída do FFMPEG para ter exatamente a mesma taxa de bits para todas as 4 partes do filme? se sim, o que devo mudar na minha linha de comando acima?

Obrigado pela sua ajuda!

    
por Sean87 04.11.2013 / 15:39

1 resposta

2

Força uma taxa de bits usando a opção -b: v. Essa taxa dependeria da taxa de entrada. Diga ffprobe relatórios 1024 kbps para o seu vídeo não cortado. Eu iria, assumindo 1/4 de tamanho de quadro, passar um bitrate de 256 kbps ou mais.

ffmpeg -i mov_a.m4v -vf "crop=480:270:480:270" -b:v 256k mov_a_4.m4v

Você deve idealmente usar um codec explicitamente se estiver forçando uma taxa de bits:

ffmpeg -i mov_a.m4v -vf "crop=480:270:480:270" -vcodec libx264 -b:v 256k mov_a_4.m4v

Mas verifique o codec no arquivo de entrada. Note que a reprodução não sincronizada pode não ter nada a ver com taxas de bits - você pode verificar cada vídeo recortado que você já tem com ffprobe ou ffmpeg:

ffmpeg -i filename

    
por 04.11.2013 / 15:56