configurações ffmpeg para vídeos youtube de alta qualidade

0

Estou tentando gravar um pequeno vídeo da minha área de trabalho e enviá-lo para o youtube. O problema é que toda vez que faço o upload para o youtube ou mesmo dropbox (como vídeo), a qualidade é muito pior.

Minha execução do ffmpeg:

ffmpeg -f x11grab -s 1366x768 -r 30 -i :0.0 -codec:v libx264 -crf 10 -bf 20 -flags +cgop -pix_fmt yuv440p -movflags faststart help.mp4

com base em:

ffmpeg -i <input file> -codec:v libx264 -crf 21 -bf 2 -flags +cgop -pix_fmt yuv420p -codec:a aac -strict -2 -b:a 384k -r:a 48000 -movflags faststart <output_name>.mp4

que eu encontrei aqui

Arquivo original (.zip): link

Arquivo após o upload para o youtube: link

Como você pode ver, perdi a qualidade depois do upload para o youtube.

Você poderia me ajudar?
Como devo escolher os parâmetros apropriados para gravar e enviar vídeos de alta qualidade?

    
por pb. 21.03.2018 / 09:30

1 resposta

0

Tente tirar seu vídeo gravado e aumentá-lo.

Ouvi dizer que quando o sistema de codificação do YT vê um vídeo supermegahighresolution ele o trata de maneira diferente e trabalha mais para tornar as versões de resolução mais baixa de melhor qualidade do que a entrada de 1080p / etc. Eu nunca explorei isso, YMMV, mas vale a pena tentar.

A única questão é que o upscaling é um processo necessariamente com perdas; a escala de pixels perfeitos parece terrível (veja abaixo). A menos que o sistema de codificação do YT seja incrível, espero que a suavização seja necessária para que o vídeo ainda pareça bom quando as versões 1080p / 720p (reencodificadas, reduzidas) são assistidas.

Por isso, é necessário encontrar um equilíbrio entre o processo de downscale upscale > que introduz a menor quantidade possível de blur / lossiness. Em geral, esse é um problema de tentativa e erro que exige uma entrada no mundo real (específico para o que você vai mostrar na tela; por exemplo, a maioria do texto).

(Além disso, não tenho idéia se você pode remover / ocultar / etc certas resoluções de vídeo ao enviar vídeo para o YT, mas você certamente estaria escondendo a versão carregada de 2K / 4K neste caso.)

Eu brinquei com o ffmpeg um pouco; os dois bits de informação que provaram ser mais úteis foram o dimensionando a página e o documentação do escalonador .

Veja o que eu criei:

ffmpeg -i help.mp4 -c:v libx264 -preset ultrafast -vf scale=iw*4:-1:flags=neighbor+bitexact+accurate_rnd+full_chroma_int+full_chroma_inp+print_info -y help4x.mp4

  • -c:v libx264 -preset ultrafast torna a codificação mais rápida, mas usa muito disco (nesse caso, 6,6 MB contra 1,7 MB). O escalonamento parecia precisar de mais de 1 GB de RAM e todo o meu CPU, independentemente das configurações de codificação, portanto, se você tiver mais largura de banda que o tempo, talvez prefira a aceleração. O codificador H264 tem outras configurações de velocidade / desempenho, consulte link

  • -vf scale=iw*4:-1 upscale o vídeo 4x >: D - iw = largura de entrada, *4 (multiplique por 4) é autoexplicativo, -1 ="calcule a largura a partir da altura e mantenha relação de aspecto. "

  • flags= :

    • Eu selecionei neighbor aqui para mostrar a você qual é o que não faz nenhum borrão / suavização, ou seja, duplicação / duplicação de pixels perfeitos / etc ... e que você saiba que realmente parece surpreendentemente ruim escalado de volta para baixo (eu não estava esperando isso). experimental parecia bom, sem saber se era melhor que o padrão bicubic . Eu recomendo que recomende folhear link , montando um pequeno vídeo de teste que mostre o que você realmente quer gravar e experimentar todos os codificadores (possivelmente até carregando todos os vídeos de teste). Seja qual for o trabalho que você faz aqui, estou curioso para saber os resultados que você obtém!

    • Encontrei accurate_rnd+full_chroma_int+full_chroma_inp+print_info no link e os joguei. Não tenho ideia do que eles fazem / se ajudam. : D

    • bitexact soa bem. Eu não tenho ideia do que isso também faz.

    • print_info mostra qual o escalonador que você está usando em "Pressione [q] para parar".

-y permite a substituição . Caso contrário, o ffmpeg o atrapalha com uma "sobrescrever (y / n)" todas as vezes.

    
por 01.04.2018 / 18:16