Existe uma maneira de extrair os intra-frames e preservá-los como estão no FFMPEG ou programa semelhante? Eu sei que você pode extrair quadros para uma sequência de imagens JPEG usando -f image2
. Mas essas são imagens completas de cada um dos quadros. Gostaria de exportar apenas a imagem da mudança em movimento, assim teria os quadros P e B mostrando apenas a mudança em movimento excluindo ou mascarando a área não alterada das imagens.
Isso é possível?
O comando básico de exportação de quadros que estou usando. Isso me dá imagens completas de cada quadro, no FPS especificado.
ffmpeg -i input.mp4 -r 12 -an -b 1024k -y -f image2 frame%4d.jpg
Espero exportar os frames para que eu tenha uma pasta de frames onde o primeiro frame seria uma imagem completa, o próximo frame seria apenas os dados da imagem onde a imagem precisa ser redesenhada. Expor a redundância temporal entre os dois quadros (não é isso que os quadros I, P, B fazem?)
Responder1
Para extrair um determinado tipo de quadro use oselect
filtro:
select=eq(pict_type\,<x>)
onde <x>
está um dos seguintes:pict_type (video only) the type of the filtered frame, can assume one of the following values: I, P, B, S, SI, SP, BI
Então, por exemplo:
ffmpeg -i <inputfile> -vf '[in]select=eq(pict_type\,B)[out]' b.frames.mp4
Para entender mais sobre a saída, adicione oshowinfo
filtro:
ffmpeg -i <inputfile> -vf '[in]select=eq(pict_type\,B),showinfo[out]' b.frames.mp4
Responder2
Os quadros P e B geralmente não contêm novos dados de imagem para cada uma das áreas que foram alteradas. Em vez disso, a imagem é dividida em macroblocos de diferentes tipos. Alguns tipos de macroblocos contêm novos dados de imagem, mas a maioria calcula o conteúdo com base em outras imagens de referência e vetores de movimento.
Não é exatamente o que você estava pedindo, mas usará cores para mostrar o tipo de cada macrobloco:
ffmpeg -debug vis_mb_type -i input.mp4 output.mp4
ou
ffplay -debug vis_mb_type input.mp4
Isso também mostrará os vetores de movimento:
ffplay -debug vis_mb_type -vismv 7 input.mp4
Consulte o link para obter mais informações sobre as cores de cada MB:
Documentação do FFMpeg de depuração de macroblocos e vetores de movimento