Como o YouTube codifica meus envios e que codec devo usar para enviar?


25

Relacionado a Quais codecs / formatos são adequados para a gravação de vídeo em movimento total para o youtube? Gostaria de saber exatamente como posso esperar que o YouTube lide com meus vídeos. Sei que eles têm um processamento bastante zeloso, que gera várias cópias do meu upload em diferentes resoluções; 1080p, 720p e 480p e aparentemente móvel, no mínimo.

Quais codecs eles usam? Como produtor, tenho a opção de baixar o arquivo como um MP4; no entanto, notei que um downloader de terceiros (que é extremamente obscuro e ruim) reduz os arquivos como FLV. Estou basicamente me perguntando se meu codec será preservado ou substituído pelo H.264 ou o que eles usarem. Considerando sua incrível compatibilidade entre dispositivos, presumo que eles usem um padrão muito comum ou vários codecs para cada vídeo.

Então, em que codec posso esperar que meus vídeos sejam exibidos e, se depender, do que depende? Devo ajustar minha própria codificação para "jogar bem" com o codec do Youtube ou isso importa em termos de qualidade? Eu sei que posso lançar praticamente qualquer coisa no Youtube e vai demorar, por isso estou preocupado principalmente com a qualidade do vídeo.


aqui está uma ferramenta para ver os formatos disponíveis para um vídeo: h3xed.com/web-and-internet/…
akostadinov

Respostas:


31

Algumas informações gerais sobre os formatos utilizados:

O YouTube usa 4 formatos de contêiner e 4 codecs diferentes. Depende da popularidade do vídeo que codecs são usados ​​para o seu vídeo (veja abaixo o porquê). Geralmente, todos os seus vídeos enviados serão codificados em h.264 e agrupados em um container .flv e .mp4. Esse é o padrão e isso acontecerá para todos os vídeos. Embora .flv seja usado apenas para resoluções abaixo de 720p. Significando que apenas 360p e 480p existirão em um contêiner .flv. Embora todo vídeo abaixo de 720p também tenha uma versão em mp4 disponível. Para 240p, o YouTube também usa 3gp, um codec bastante antigo (baseado no MPEG-4 Parte 2 (que não deve ser confundido com o MPEG4 Parte 10, também conhecido como h.264), destinado a dispositivos móveis (muito antes da era dos smartphones), ele vem em o contêiner .3gpp.

O outro codec usado é o VP8, que vem no formato de contêiner WebM. O WebM é um formato desenvolvido pelo Google e foi concebido como um codec de vídeo padrão para HTML5; o suporte a ele é agora bastante bom na maioria dos navegadores modernos. O WebM foi introduzido com a versão HTML5 do YouTube. O YouTube codifica apenas alguns vídeos no WebM após o upload e, principalmente, apenas vídeos populares (passando pelos vídeos que eu vi codificados no WebM), portanto, não é certo que seu vídeo esteja presente no WebM. Embora isso esteja mudando, com o WebM ganhando mais suporte.

Até agora, o YouTube também suporta o VP9 no WebM, mas até agora apenas o Chrome suporta esse codec (a partir de 06/2015). Com o VP9, ​​eles também introduziram suporte para o codec de áudio Opus (além do AAC, que é usado em todos os outros contêineres).

Em relação à sua pergunta vinculada (talvez elas devam ser mescladas?)

Qual codec / contêiner você deve usar para fazer upload?

Isso depende, se você estiver limitado / preocupado com a velocidade de upload, use o h.264 Nível 3.1 / 4.1 com o Perfil principal para SD ou Alto perfil para HD. O YouTube aceitará isso muito bem e ficará bem depois de codificado pelos servidores do YouTube. Normalmente, eu recomendaria uma taxa de bits de ~ 4-5 Mbit / s para material de 720p e ~ 8-9 Mbit / s para 1080p. Para 4k, vá para ~ 15Mbit / s. Geralmente, esse é um bom equilíbrio entre tamanho e qualidade. Se você deseja uma melhor qualidade, escolha uma taxa de bits mais alta e se deseja um vídeo menor, escolha uma taxa de bits mais baixa.

Mas lembre-se de que o YouTube SEMPRE codificará seu vídeo após o upload, independentemente do codec e das configurações que você usar. Portanto, se você deseja a melhor qualidade teoricamente para seus uploads, escolha um codec sem perdas para upload ou, pelo menos, visualmente sem perdas. Veja o YouTube como a saída final para um formato de entrega / consumidor e o upload para o YouTube é a última etapa da produção e durante a produção você deseja ficar sem perdas. Mas observe que tudo isso é apenas uma coisa teórica, praticamente eu diria que realmente não importa, pois estamos falando do YouTube e não de transmissão de TV ou Cinema.

Mas se você realmente deseja fazer da maneira "perfeita", use um codec de produção e não um codec de consumidor como o h.264. MJPEG seria um bom codec para isso, o YouTube definitivamente suporta isso em um contêiner .avi ou .mov. O MJPEG é um codec com perdas, mas a qualidade visual será a mesma da fonte (se você escolher uma configuração de qualidade alta o suficiente, será praticamente JPEG como o codec de vídeo). Ir com um codec real sem perdas seria um desperdício de espaço no disco rígido e largura de banda na minha opinião.

Mas se você deseja enviar seu vídeo verdadeiramente sem perdas e não se importa com o tempo de carregamento, recomendo usar um codec QuickTime padrão, pois eles devem ser quase todos suportados pelo YouTube (observe que nem todos são sem perdas, o h264 também é um codec QuickTime padrão). Embora o YouTube não indique quais codecs do QuickTime são suportados, infelizmente. Animação ou JPEG2000 deve funcionar, eu acho. Ambos os codecs podem ser 100% sem perdas.

Quando se trata de taxas de quadros, se você pode optar por usar 25FPS (agora o YouTube também suporta vídeos de 50 e 60FPS, provavelmente também 30FPS) durante a gravação / animação, o YouTube gosta mais (a taxa de quadros usada para cada vídeo), mas se a sua filmagem já tiver outra taxa de quadros, fique com ela e não interpole para cima ou para baixo. O YouTube manipulará a conversão para você e geralmente faz isso melhor do que o seu codificador. Eles precisam lidar com todos os tipos de taxas de quadros todos os dias e resolver muito bem esse problema (realmente muito complicado).

Áudio:

Para o áudio, use o PCM se você quiser ficar sem perdas com o áudio também, mas novamente isso é apenas uma melhoria teórica da qualidade. A AAC geralmente fará a mesma qualidade de trabalho (subjetiva) e será menor. Eu recomendo uma taxa de bits de pelo menos 192kbps para o AAC. O impacto do tamanho geralmente não é tão grande quanto o codec de vídeo, então você também pode optar por 320kbps. O YouTube converterá o áudio em ~ 24kbps (Mobile aka 3gp) ~ 64kbps (240p), ~ 128kbps (360p / 480p) e ~ 192kbps (720p +) usando o codec AAC e Opus (apenas WebM).


3
Eu concordo com esta resposta. Mas há um limite prático: a velocidade de upload. Quanto tempo você está permitindo um upload? Um fim de semana inteiro, uma noite ou algumas horas até o final do seu dia de trabalho. Eu próprio coloquei o limite de 2 GB por 10 minutos de vídeo, o que precisa de cerca de 4 horas de upload no meu caso. Mas isso realmente está restringindo a qualidade? Meu vídeo de 2 GB tem uma taxa de bits de 30 Mbit / s, que o YouTube converte em 3 Mbit / s. Uma codificação sem perdas multiplicaria o tempo de upload, mas a saída do YouTube ainda estaria em 3 Mbit / s. Defina seus limites pessoais por si mesmo.
21413 Fred42vid

Claro que é por isso que eu deixei (espero) bastante claro que é teórico e de forma alguma prático. O H.264 deve ser recomendado para quase todos os casos. A única maneira prática de usar MJPEG em que posso pensar é quando a faixa de cores ocorre com a primeira codificação h.264, que piora com a segunda codificação do YouTube.
PTS

11
O YouTube suporta o perfil alto h.264, portanto você deve usá-lo sempre. O perfil principal do conteúdo do SD é bobo. Sair do 8x8dct é sempre uma má ideia. No x264, ativar 8x8dct é a compensação mais eficiente do tempo da CPU para obter melhor qualidade por tamanho de arquivo (também conhecido como taxa: distorção ou RD).
Peter Cordes

2
O H.264 ficará muito melhor na mesma taxa de bits que o MJPEG. Se você deseja uma melhor qualidade, basta aumentar a taxa de bits (ou a configuração de qualidade em qualidade constante, em vez do modo de taxa de bits de destino). Você pode ir até o h.264 sem perdas, se não se importar em enviar um arquivo enorme. Provavelmente será menor que o j2k sem perdas. Ambos são de qualidade perfeita, pois é isso que significa sem perdas.
Peter Cordes

11
Para áudio, IDK se o youtube suportar FLAC ou não. Em caso afirmativo, essa seria sua escolha preferida para sem perdas. Caso contrário, sim, AAC de alta taxa de bits feita com um bom codificador. ( -c:a libfdk-aacE não os padrão faacou embutidas aacencoders em ffmpeg.)
Peter Cordes

5

Qual formato o YT produz para o vídeo depende de vários fatores. Para a maioria dos vídeos comuns, eles usam fluxos codificados em H264 para vídeo (AAC ou MP3 para áudio) na forma de arquivos contêineres MP4 e FLV.

Esses são apenas contêineres contendo os dados de vídeo codificados - embora o formato codificado em H264 não seja garantido com arquivos FLV (ou, em teoria, com arquivos MP4), pois eles também podem conter Sorenson Spark, On2 VP6 e outros (especialmente o caso de vídeos mais antigos). )

Os FLVs são usados, pois garantem a capacidade de reprodução com o Flash-player.

Não é realmente o software de download para determinar o formato - eles apenas baixam o que está disponível usando o itagURL de vídeo "interno" (não o do navegador) para identificar as opções. Se eles opcionalmente converterem o vídeo, isso seria um recurso, mas não relacionado aos formatos do YT.

Além disso, existem outros formatos, como 3GP, WEBM e também para filmes em 3D. Alguns para direcionar telefones e o novo padrão Html5 (sendo implementado como falamos), que pode reproduzir vídeos diretamente com html (ou seja, sem flash-player).

Mas voltando aos formatos mais comuns: em termos de qualidade, isso realmente não importa. Se o FLV contiver H264, você poderá reproduzi-lo tão bem quanto um arquivo contêiner MP4 com o VLC Player do f.ex VideoLAN . Se o FLV não contiver H264 e você o desejar como contêiner MP4 segurando o H264, será necessário recodificá-lo, o que significa que você perderá a qualidade.

Como o YT atualmente parece preferir o H264, sugiro fazer o upload nesse formato também (consulte as informações sobre tamanhos e taxas de bits para evitar a recodificação para obter a melhor resolução).



0

Sua pergunta é "Como o YouTube codifica meus envios e que codec devo usar para enviar?".

Indo mais fundo na sua pergunta, eu vejo: "Devo ajustar minha própria codificação para" tocar bem "com o codec do YouTube, ou isso importa, em termos de qualidade? Eu sei que posso jogar praticamente qualquer coisa no Youtube e será necessário. Estou preocupado principalmente com a qualidade do vídeo ".

A resposta é que o YouTube usa o Lavf57.25.100 para codificar novos vídeos, enquanto os vídeos com mais de alguns anos foram codificados com um codificador proprietário (que não tem "Lavf57.25.100" incorporado em seu ID, mas possui a seguinte frase: "Arquivo IsoMedia produzido pelo Google, 11/05/2011 "). Os vídeos antigos não foram recodificados quando o algoritmo foi alterado.

É aceitável usar muitos codecs diferentes, o YouTube recomenda o H.264 - veja aqui: https://support.google.com/youtube/answer/1722171?hl=pt-BR .

Por algum motivo, você escolhe não perguntar sobre o contêiner (que não é a mesma coisa que um codec). Você também supõe que 1080P esteja disponível e não pergunte sobre a coisa mais importante - Taxa de bits (seguida por Resolução).

Se você fizer upload de um vídeo em resolução 1080P a 60FPS, a resolução máxima disponível será 720P (a 60 FPS, em um dispositivo móvel, capaz de 1080P), o upload de um vídeo 1080P a 29,97 FPS permitirá a visualização em 1080p em um dispositivo móvel.

O que é importante é a taxa de bits e a resolução se "qualidade" é o seu objetivo. Você não pode melhorar ou usar o lossless para trapacear, já que o YouTube executa um 'Teste de compactação' para determinar o quanto eles podem esmagar seu vídeo com degradação mínima - faça upload de mush e ele será altamente compactado, faça upload de alta resolução e alta taxa de bits e, em seguida, YouTube recuará na trituração e proporcionará uma experiência de visualização muito melhor.

Veja: https://support.google.com/youtube/answer/1722171?hl=pt-BR .

Observe que diferentes resoluções e 'expectativas de qualidade'. Para vídeos 4K com baixas expectativas, você pode enviar vídeos com uma taxa de bits de 35 a 45 Mbps, mas se você é um "Produtor" e a qualidade é sua meta, você precisa de uma taxa de quadros mais alta e usar pelo menos 66 a 85 Mbps para o Taxa de bits da câmera (antes de compactá-la com muito cuidado).

Se você aprimorar um vídeo de baixa resolução e usar um codec não compactado, na esperança de obter a melhor qualidade possível, será pego (e reduzido a mingau).

Grave usando uma câmera de qualidade de produção, alta taxa de quadros e taxa de bits de vídeo, compactada com muita delicadeza (Ffmpeg Q = <10) para obter os melhores resultados - o "Codec" (suas palavras) não é o único fator determinante (embora eu recomendo Um velho).

O Ffmpeg suporta contêineres .MP4 e o codec H.264, portanto, use-os.

As pessoas costumam reclamar que o YouTube estraga seus vídeos, o problema é que eles não carregaram qualidade alta o suficiente para 'acionar o switch' e fazer com que o Compressor do YouTube siga suavemente o upload. Vídeos perfeitos para espreitar os pixels são possíveis. A regra GIGO se aplica.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.