O YouTube mexe constantemente com a qualidade do meu vídeo

2

Estou com problemas para codificar um vídeo para o YouTube. O conteúdo não é muito "amigável à compressão" (é uma filmagem de gameplay do Battlefield 4), mas eu sou 100% positivo, os resultados poderiam ser melhores. Alguns links:

  • O mesmo quadro extraído da fonte e do vídeo processado pelo YouTube: link
  • A fonte MP4: link
  • O vídeo em si: link
  • Um clipe aleatório de um cara jogando no mesmo mapa (compare com a versão 1080p dele, é claro): link

O comando que eu uso para invocar o codificador:

ffmpeg.exe -i %INPUT%.avs -c:v libx264 -profile high -g 15 -keyint_min 15 -coder 1 ^
-preset slow -bf 2 -subq 9 -crf 18 -c:a libvorbis -pix_fmt yuv420p %OUTPUT%.mp4

Eu tentei várias configurações diferentes:

Mas nenhum parece tornar as coisas diferentes. Mesmo filmagens não modificadas, gravadas com o ShadowPlay, parecem ruins: link . Talvez eu deva experimentar algum outro codificador? Ou use outro contêiner? Escolhi minhas opções de acordo com o guia oficial do YouTube: link

Estou sem ideias agora. Qualquer sugestão seria muito apreciada.

P.S. Eu percebo que o quadro que estou referenciando é o pesadelo de qualquer codificador, mas por que é tão ruim assim? E por que isso afeta toda a imagem, não apenas as partes mais difíceis dela?

EDIT : Eu tentei codificar com taxa de bits fixa (dois passos):

O álbum com as capturas de tela foi atualizado. 50m parece ser um pouco melhor do que todos os outros (bordas mais nítidas, elementos HUD reconhecíveis, como o ícone do tanque vermelho em uma árvore à esquerda do jipe; exceto o 1440p com redução de escala, é claro, mas está fora da competição) , mas isso ainda não é nem perto do que deveria ser.

    
por Olegs Jeremejevs 24.11.2013 / 20:46

3 respostas

2

Não há muito que você possa fazer. Se o arquivo original parecer ruim no YouTube, a recodificação não melhorará a situação. Eu estou supondo que você está re-codificando o seu "material bruto não modificado, gravado com o ShadowPlay". É sempre recomendável fazer o upload do conteúdo original, se possível, a menos que seja um arquivo obeso e impraticável fazer o upload, porque o YouTube vai recodificar o que você quiser. Na minha opinião, a versão HD do seu primeiro link não parece terrível para mim, e comparar as capturas de tela não é exatamente "razoável", já que o olho humano não vê vídeos como esse.

Quanto ao seu comando:

  • Parece decente para re-codificar: -crf é o fator mais importante aqui. Você pode tentar um valor ligeiramente inferior. Algumas pessoas afirmam ver a diferença.

  • Eu pessoalmente omitiria -g 15 -keyint_min 15 -coder 1 -bf 2 -subq 9 porque as predefinições lidam com a maioria dessas opções e geralmente são mais inteligentes do que eu.

  • -pix_fmt yuv420p provavelmente não é necessário para o YouTube, mas observe que um jogador de baixa qualidade (QuickTime, etc.) pode não decodificar corretamente nada além do espaço de cores YUV (planar) com subamostragem de croma 4: 2: 0. / p>

  • O codificador escolherá automaticamente um perfil, portanto, não é necessário usar -profile (que deve ser -profile:v , pois também há -profile para alguns codificadores de áudio). Esta opção é geralmente usada se o seu decodificador ou dispositivo não suportar perfis mais avançados.

  • Você pode, possivelmente, transmitir a cópia do áudio ( -c:a copy ) em vez de recodificá-lo , mas suponho que seu áudio de entrada não foi compactado.

  • Vendo a saída completa do console ffmpeg teria ajudado com mais sugestões e impedido adivinhação.

  • Não é uma sugestão útil, mas algum outro site pode fornecer melhor qualidade.

Veja também:

por 25.11.2013 / 07:15
3

A questão aqui é que o YouTube reduz a taxa de bits de vídeos de 1080p para 6Mbps, já que a esmagadora maioria de seus usuários tem uma velocidade média de download de 5,8Mbps.

(A maioria de seus usuários também é burra demais para se meter com configurações, ou mesmo saber o que pode estar causando o atraso, então eles fizeram a mudança (no período de julho a agosto, creio) para consertar o resmungo do massas.)

Eu sugeriria uma correção, mas no momento não há nenhuma. Houve várias correções viáveis nos últimos três meses, mas todas foram removidas porque o YouTube está ajustando sua infraestrutura. Aqui está algo que você pode TENTAR, mas o YMMV e o YT já podem ter desativado isso.

  1. Grave em 1920x1080
  2. Codifique em 2048x1152 usando a taxa de bits mais baixa com a qual você pode lidar para o bem de seus usuários.
  3. Upload.
  4. Diga aos seus usuários para reproduzir em "original" ou 1440p, qualquer que seja a opção disponível para eles.

Resultados.

Se seus usuários deixarem o vídeo em 1080p, PODEM ser um pouco mais borrados para eles do que os vídeos anteriores de 1080p. O YT está reduzindo a amostragem para 2048x1152 e reduzindo a taxa de bits para 6Mbps. Se eles transmitirem em resolução máxima, eles ainda terão amostragem reduzida, embora em suas próprias máquinas, e receberão uma taxa de bits MUITO mais alta. A taxa de bits mais alta é boa e ruim. Isso permite que eles obtenham uma imagem de melhor qualidade, mas a maioria das pessoas precisará pré-carregar metade do vídeo para impedir a pausa de carregamento. A reprodução do traço também os limitará a 30 segundos de pré-carregamento de uma só vez, se eles não tiverem desativado manualmente, para que eles também precisem desativá-lo.

    
por 30.12.2013 / 05:43
-1
-movflags faststart B:\output.mp4

Tente adicionar isso ao resultado final antes do upload.

Mantenha taxas de quadros HD de 24 ou 25 e qualidade abaixo de 4, tente corresponder às especificações de vídeo procurado pelo YouTube antes do upload. NTSC é como 24000/1001. PAL é como 25,0. Possivelmente é preciso pagar o Youtube para fazer o upload de melhor qualidade em uma assinatura como serviço.

    
por 30.01.2014 / 17:38