Is there a formula that exists to estimate, the final data size that can be achieved?
Não. O tamanho depende em grande parte das configurações de codificação escolhidas, isto é, o modo de controle de taxa, a taxa de bits média ou a qualidade média, a taxa de quadros, a compensação entre a eficiência e a velocidade de compactação, o codificador específico, etc.
Naturalmente, se você tiver um processo de codificação de taxa de bits constante e trivial, o tamanho do arquivo de saída será fácil de calcular. Mas na maioria dos casos, você preferiria não forçar uma taxa de bits fixa.
For the video I am trying to estimate the size of the video and the encoding format I should use to produce a 1080p video quality?
1080p refere-se apenas a uma resolução de 1080 pixels na vertical. Não há "qualidade" inerente a essas dimensões. Quando você fala sobre qualidade, você geralmente classifica como:
- sem perdas (matematicamente sem perdas)
- sem perda visual (diferenças entre a versão original e a codificada não visíveis ao olho humano)
- com perdas
Ao escolher um codec sem perdas, como YUV, FFV1 ou HuffYUV, sua única preocupação é o tamanho do arquivo. Ao escolher um codec visualmente sem perdas, como ProRes ou DNxHD, você ainda pode ter tamanhos de arquivo altos que não são adequados para o streaming online.
Para a parte com perdas, você deve pensar sobre quais são seus requisitos. A codificação rápida é mais importante que o tamanho de arquivo baixo? Você está preocupado com os artefatos de compactação ou o vídeo deve ser transmitido pela Web e, portanto, ser compactado? Você planeja arquivar o stream para assisti-lo mais tarde?
Dependendo da resposta às perguntas acima, você pode preferir uma predefinição de codificação rápida de passagem única com taxa de bits baixa e restrita para ativar o fluxo contínuo da Web. Ou talvez você queira uma predefinição de codificação lenta de duas passagens com um modo de qualidade constante (por exemplo, CRF em x264 ), se você se preocupa com fidelidade, mas ainda quer um tamanho pequeno.
And how to estimate the time it would take to encode the video?
Isso depende das capacidades da CPU, das dimensões em pixels e da taxa de quadros do vídeo, da complexidade espaço-temporal e das opções do codificador. Com libx264
, por exemplo, você tem várias predefinições para escolher. Consulte o guia de codificação FFmpeg H.264 para obter algumas dicas.