Eu já mudei para avconv
, então peço desculpas se a resposta pode ser um pouco diferente no ffmpeg clássico, mas acredito que não deve haver muita diferença.
Você pode ter um corte em movimento se puder criar algum tipo de fórmula entre o número do quadro e a posição do corte; mas não há ferramentas analíticas disponíveis para fazer isso. Isso significa que, se o alto-falante se mover de maneira previsível, teoricamente você poderá fazer isso sem um aplicativo externo.
Vamos supor, por exemplo, que o alto-falante esteja se movendo da parte superior esquerda para a parte inferior direita da imagem. Você pode fazer algo como:
avconv -i input.ogv -vf 'crop=200:100:n:n' -c:v libtheora output.ogv
Aqui estou movendo 1 pixel por quadro, o que é muito improvável como alguém se moveria.
Lembre-se de que existem muitas funções matemáticas que são fornecidas pela interface de filtro do avconv (e eu tenho certeza que o ffmpeg é semelhante).
Então, vamos imaginar que você deseja mover 1 pixel por quadro, mas apenas de 200 para 350 quadros. Você pode então fazer
min(max(n,200)-200, 150)
Para os quadros <200, max(n,200)
geraria 200, depois retiramos 200 para torná-lo 0 e, em seguida min
, retornamos a primeira parte até 350 quadros, onde esse resultado se tornaria mais de 150 e a constante começará a ser retornada.
Embora escrever essa fórmula à mão seja bastante tedioso, talvez seja útil em alguns casos também.
Dito tudo isso, se eu tivesse a opção de ter acesso ao software capaz de trabalhar com imagens quadro a quadro, eu seguiria esse caminho.