FFMPEG para interpolação de quadros ala Twixtor

FFMPEG para interpolação de quadros ala Twixtor

Algum especialista em FFMPEG pode me dizer se o FFMPEG pode fazer alguma interpolação de quadros sofisticada semelhante ao plugin Twixtor no After Effects? Em caso afirmativo, quais seriam algumas configurações sugeridas para tentar? Estou tentando criar imagens HD em câmera ultra lenta a partir de uma fonte de 60fps. ou seja, converta para 120fps e interpole os quadros.

Responder1

O FFmpeg não pode fazer isso.

Haviaalgumas discussõessobre a implementação de tal recurso há alguns anos, mas até agora eles não lançaram nada semelhante à interpolação de quadros no projeto.

É claro que você poderia usar uma ferramenta gratuita semelhante, comocâmera lentaVídeoque também está hospedadono GitHubse você quiser dar uma olhada na fonte.

Responder2

A biblioteca libavfilter possui um filtro chamadointerpolar, disponível desde novembro de 2016. Segundo descrição do fitler, sua finalidade é:

"Converta o vídeo para uma taxa de quadros especificada usando interpolação de movimento."

Exemplo de uso:

ffmpeg -i input.60fps.hevc -filter "minterpolate='fps=120'" output.120fps.hevc

Não sei quais configurações usar para obter o melhor resultado possível. Pela minha experiência, as configurações padrão fornecem qualidade aceitável da própria interpolação de movimento. Mas existem alguns artefatos visuais muito perceptíveis introduzidos ocasionalmente. Não consegui encontrar uma combinação de configurações que as eliminasse completamente.

O filtro está muito lento no momento. Ele pode produzir cerca de 2 quadros interpolados por movimento de vídeo 1080p por segundo em uma CPU x86 moderna e de última geração. Percebi que a interpolação utiliza apenas um único thread da CPU, o que provavelmente é o principal motivo para uma velocidade tão lenta.

Para acelerar o filtro em uma CPU multi-core, pode ser aconselhável dividir o vídeo de entrada em vários pedaços de igual comprimento e aplicar a interpolação de movimento a todos eles em paralelo.

Responder3

Meses após atualização:

ffmpeg -i input.mp4 -movflags +faststart -filter_complex "[0:v]minterpolate='fps=60:mi_mode=mci:me_mode=bidir:mc_mode=obmc:me=ds:vsbmc=1'" -predefinir saída ultrarrápida .mp4

Postagem original:

Eu sou capaz de alcançar tais efeitos (embora não perfeitos), com misturafiltro

ffmpeg -i fonte.mp4 -filtro:v tblend -r 120 resultado.mp4

informação relacionada