Olá, mundo :) (primeira msg, nível iniciante;))
Estou tentando escrever um pequeno script msdos para simplesmente redimensionar os vids.
Primeiro, com ffprobe eu recebo iw
, ih
, DAR, SAR da fonte e escolho uma altura de saída desejada oH. Eu uso essa simples linha cmd para deixar o ffmpeg calcular a largura de saída e fazer o trabalho:
ffmpeg -i !in! -ss !t1! -to !t2! -filter:v scale=-2:!oH!,setsar=1,setdar=!dar! -c:a copy !out!
Eu tomo o exemplo da largura de saída em um caso simples porque o cálculo é fácil, e o valor -2 do filtro de escala deve fornecer uma largura de saída de ow=trunc(oh*a/2)*2
Mas a vida não é tão simples! e às vezes eu adiciono / jogo com outras opções como crop ou outros efeitos, etc ... O cálculo automático com -1 ou -2 é útil, mas eu precisaria verificar se as dimensões finais calculadas pelo ffmpeg serão o que eu esperava antes de eu execute o script inteiro.
Assim, minha pergunta: existe uma maneira de obter uma estimativa em alguns dados do vídeo de saída antes de executar o ffmpeg, usando qualquer ferramenta ffmpeg?
Não encontrei nenhuma opção de "execução de simulação" (sem codificação) que pudesse fornecer alguns dados, pelo menos aqueles que são previsíveis.
Eu também pensei em usar o ffplay, pois ele pode pegar os mesmos argumentos e processar o vídeo 'on the fly' e tentar diferentes valores de nível de log: %código% mas não consigo encontrar as dimensões de saída em qualquer lugar ... embora o vídeo esteja realmente tocando ...
(última ideia ao escrever: parece que o ffmpeg pode extrair e processar uma única imagem do vídeo, então eu teria que analisá-la; mas seria uma etapa adicional e consumiria mais tempo para uma execução em lote)
alguma sugestão? obrigada!
Tags command-line video ffmpeg