Como você pode testar um vídeo com canal alfa antes de mesclá-lo com outro vídeo?

1

Estou trabalhando em vídeos com canal alfa para serem mesclados com um vídeo em segundo plano em uma determinada posição (por exemplo, [100,100] ). Você pode fazer isso usando:

ffmpeg -i BACK -i OVER -filter_complex [0][1]overlay=100:100 OUTPUT

Mas gostaria de testar o resultado sem ter que gerar o vídeo inteiro e depois reproduzi-lo.

Eu tentei o VLC , mas a única opção de sobreposição é colocar uma imagem (nem mesmo animada) sobre o vídeo. Eu não sei se existe um shader em MPC-HC que seja adequado para mim, mas eu não o encontrei (e shaders, ainda mais simples, geralmente exigem CPU). O mesmo acontece com avisynth : a reprodução é brusca e procura ainda pior (eu acredito que é porque o avisynth trabalha com e produz vídeo não comprimido).

Existe uma maneira de assistir ao vídeo resultante on-the-fly, sendo capaz de pular para qualquer ponto dele e usar uma quantidade razoável de CPU?

    
por cdlvcdlv 12.07.2016 / 12:09

2 respostas

1

Eu respondo:

Encontrei uma questão relacionada e achei que poderia canalizar ffmpeg para ffplay Ele funciona parcialmente (você pode assistir ao vídeo mesclado), mas você não pode procurar (e sufoca a CPU).

ffmpeg -i BACKGROUND -i OVERLAY -filter_complex [0][1]overlay=100:100 -f matroska - | ffplay -

Mas eu nem achei que ffplay pudesse ser usado e, apesar de ffplay aceitar apenas uma opção -i , revisando o ffmpeg filters, me deparei com o filtro movie (quase não usado com ffmpeg porque você pode adicionar várias opções -i ), que fornece uma maneira de adicionar mais entradas. Depois de alguns testes, pude fazer o que queria:

ffplay -i BACKGROUND -vf "movie=OVERLAY[ov]; [in][ov]overlay=100:100"

(Se você estiver usando o Windows e OVERLAY for um nome com espaços, você poderá colocá-lo com '' .)

Com esta linha de comando, você pode procurar o vídeo resultante usando nenhuma CPU adicional perceptível (basta clicar com o botão direito na imagem - você irá para a porcentagem no arquivo correspondente à fração de largura).

Um ponto positivo é que, se você precisar de algumas opções adicionais na codificação final com ffmpeg , elas podem ser desconsideradas por ffplay .

    
por 19.07.2016 / 13:36
1

Se você gerar um MP4 fragmentado, poderá ver o vídeo conforme ele está sendo codificado. Você só pode buscar os pontos que já foram codificados no momento do carregamento do arquivo. Então, se você quiser procurar mais, recarregue depois.

A sintaxe básica é

ffmpeg -i input -<encoding parameters> -movflags +frag_keyframe+separate_moof+omit_tfhd_offset+empty_moov out.mp4
    
por 13.07.2016 / 09:09