segunda-feira, 10 de outubro de 2011

Convertendo vídeos com o HandBrake

O HandBrake é um conversor de vídeo multiplataforma, disponível para Windows, Linux e Mac OS X. Suporta dezenas de formatos de arquivo e codecs de vídeo em sua entrada (todos suportados pela libavcodec do FFmpeg). Suporta em sua saída:

Codecs:
Áudio: AAC, MP3, Vorbis, AC-3, DTS [1]
Vídeo: H.264 [2], Theora, MPEG-4 Part 2 [3]

Formatos:
MP4, MKV (Matroska)

[1] Modo pass-through, uma cópia bit a bit do áudio original, sem conversão, mantendo a máxima qualidade possível.
[2] O codec H.264 também pode ser chamado de MPEG-4 AVC ou MPEG-4 Part 10.
[3] Usa a implementação da libavcodec (do FFmpeg). No HandBrake, gera fluxo MPEG-4 Simple Profile. Apesar de mais rápido, o resultado é de baixa qualidade comparado ao H.264; por isso, é usado geralmente só para testes.


Existem restrições ao misturar os codecs de áudio/vídeo e os formatos suportados. Aqui vai uma tabela das combinações possíveis.


CONFIGURAÇÃO
(será usado como exemplo um DVD como fonte, mas os passos
se aplicam aos demais tipos de arquivos suportados)

Interface inicial

Em "Source" você escolhe o arquivo de entrada

Pode ser um arquivo ou uma pasta contendo a estrutura de um DVD (VIDEO_TS). O HandBrake não possui as bibliotecas para ler DVDs encriptados (ou "protegidos"), a maioria dos títulos hoje em dia. Porém ele usa a libdvdcss quando disponível no Mac OS X e Linux. No Mac OS X, ele busca pela cópia da libdvdcss do VLC Player. No Windows, você precisará usar o AnyDVD para desencriptar o disco em tempo real ou programas como o DVD Decrypter (antigo mas ainda funciona com títulos não tão recentes) ou o DVDFab para copiar o conteúdo do DVD para uma pasta no disco rígido, tendo daí a possibilidade de customizar os capítulos, faixas de áudio, legendas, ângulos.


Depois de selecionar o arquivo/pasta de entrada, o próximo passo é, para DVDs, selecionar o título, ângulo (quando disponível) e o intervalo de capítulos a ser convertido. Se você instalou o HandBrake pela primeira vez, ele irá avisar que está configurado para nomear automaticamente os arquivos de saída, porém que não existe uma pasta padrão especificada nas opções. Vá em "Tools -> Options -> Default Path -> Browse" e selecione uma pasta de sua preferência. Logo abaixo selecionamos o formato de arquivo que será usado: "MP4 file" ou "MKV file".


Próxima etapa é escolher um perfil. O HandBrake vem com alguns perfis pré-configurados. Alguns específicos para aparelhos da Apple, que você pode usar se pretende converter para eles. Para criar arquivos para serem tocados em PCs em geral, eu prefiro escolher os prefis regulares, preferencialmente o "High Profile". Com ele, o programa pré-configura as opções para um resultado de alta qualidade. Abaixo veremos como customizar algumas configurações.

- PICTURE


A primeira guia trata das características da imagem. Ali precisamos escolher se queremos um arquivo anamórfico ou não no final da conversão. Este é um assunto um pouco complexo, mas superficialmente é o seguinte: quando ripar de DVDs, é possível converter o vídeo em um determinado tamanho e instruir o tocador a exibir em outro. Isso permite que tenhamos um arquivo de vídeo que se adapta tanto a resoluções widescreen (16:9) quanto standard (4:3). O vídeo é armazenado numa resolução, mas é exibido usando proporções diferentes conforme o caso, sem distorção. Quando não usa-se anamorfismo, o vídeo é armazenado e exibido sempre na mesma proporção. Os tipos de anamorfismo implementados pelo HandBrake são "Strict" e "Loose". O primeiro armazena sempre o vídeo no tamanho original do DVD (720x480 no caso de discos NTSC). O segundo nos permite alterar a resolução do vídeo armazenado. Existe uma outra questão a respeito do tamanho dos macroblocos usados na conversão, com a qual o método Loose é mais "esperto", pois mantém sempre a largura e a altura divisíveis por 16, o que otimiza a conversão por parte do encoder. Se for usar anamorfismo, sugiro que use o Loose. Veja que ao usa-lo, é exibido o campo "Display Size", que indica o tamanho de exibição máximo (ao usar widescreen). Se você for tocar o vídeo nos dois formatos de tela, 4:3 e 16:9, melhor usar o recurso. Do contrário, você pode desativar se quiser. Os tocadores costumam lidar bem com anamorfismo, como é caso do MPC-HC, MPlayer e VLC. O Windows Media Player às vezes tem problemas, sendo recomendavél usar a versão 10 ou superior. Mais informações: http://trac.handbrake.fr/wiki/AnamorphicGuide

- VIDEO FILTERS


A próxima guia é a respeito dos filtros a serem aplicados. O perfil "High Profile" por padrão seleciona "Detelecine" e "Decomb". O primeiro é para materiais que foram convertidos de filme para vídeo usando a técnica "Telecine". O segundo transforma materias interlaçados em progressivos (uma versão inteligente do filtro "Deinterlace"). As duas opções ficando em "Default" renderão bons resultados para qualquer tipo de conversão.

- VIDEO



Agora chegamos à parte do vídeo em sí. O codec é o H.264, para melhor qualidade, e é importante deixar a opção "Framerate (FPS)" em "Same as source". Assim, no caso da fonte ser telecine, os frames duplicados serão descartados e o vídeo final terá frame rate variável, o que garante uma conversão mais eficiente.

A opção mais crítica é o método usado para controlar a qualidade. No HandBrake, são disponibilizados dois métodos:

Por bitrate

Com controle por bitrate, você diz ao encoder para manter 1) um bitrate constante numa passada ou 2) manter um bitrate médio em duas passadas.

A opção 1 é a pior de todas e deve ser evitada, pois o encoder não tem como saber quando existirão cenas movimentadas (que precisam bitrate mais alto) ou cenas pacatas (onde o bitrate pode ser diminuído). A opção 2 é melhor, chamada de modo 2-pass (duas passadas). Na primeira passada, o encoder só colhe informações sobre cada frame do vídeo. Na segunda, com base nessas informações, ele consegue definir muito melhor onde precisa mais bitrate e onde precisa menos (bitrate variável — VBR), o que resulta numa qualidade bem melhor, porém aumenta o tempo da conversão.

O controle por bitrate em duas passadas é usado pelo HandBrake marcando as opções "Target Size (MB)" ou "Avg Bitrate (kbps)" e a caixa "2-Pass Encoding". As duas primeiras opções fazem a mesma coisa. "Target Size (MB)" calcula o bitrate médio com base na duração do vídeo e no tamanho do arquivo que você fornecer. "Avg Bitrate (kbps)" diz diretamente ao encoder qual o bitrate médio que você quer. A caixa "Turbo fisrt Pass" é opcional. Com ela ativa, o encoder desabilita algumas funções durante a primeira passada para agilizar o trabalho. Costuma afetar pouco a qualidade final. Se você estiver procurando qualidade máxima possível, deixe desmarcado.

Como referência, usando a opção "Avg Bitrate (kbps)", para conteúdos SD (resolução de DVD), um bitrate em torno de 1000kbps já dará uma qualidade aceitável.

Por Rate Factor

Método padrão usado pelo HandBrake. O encoder x264 usa um algoritmo que adapta o bitrate às variações das cenas numa passada (VBR também), o que torna o processo mais rápido do que ao usar o modo 2-pass. O controle é por um parâmetro chamado "RF" (Rate Factor). Quanto menor o valor, maior a qualidade; quanto maior o valor, menor a qualidade. Valores típicos ficam entre 18 e 26.

Observação: o codec Theora só estará disponível se o formato de arquivo estiver configurado como MKV.

- AUDIO


Chegamos ao áudio. O perfil "High Profile" por padrão coloca duas faixas de áudio no arquivo final. Uma em AAC e outra no formato original da origem, se esta usar AC-3. Nesta parte, depende do que você pretende usar. Eu costumo deixar só uma trilha de áudio estéreo. Para adicionar/remover/editar uma trilha de áudio, clique sobre ela e use os botões e opções disponíveis. Para usar Vorbis/DTS (na opção "Audio Codec") é necessário configurar o formato de arquivo para MKV. Se quiser, mexa no bitrate e no sample rate.

Neste exemplo eu removi a trilha "AC3 Passthru" (selecionar e clicar no botão "Remove") e configurei manualmente como fonte a trilha AC-3 2.0 do DVD. Caso a fonte tenha mais de uma trilha de áudio disponível (os DVDs costumam ter), você pode especificar manualmente qual delas quer usar na opção "Source". Se for usar estéreo, prefira uma trilha de origem também estéreo (2.0), caso exista. Porém cuide quando a trilha de origem for AC-3 2.0. É comum, em DVDs que tenham apenas áudio AC-3 estéreo, o uso de Dolby Pro Logic; se o DVD que você tiver em mãos usa-lo, mude manualmente a opção "Mixdown" de "Automatic" para "Stereo". Existe um bug no HandBrake que faz a mixagem original Dolby Pro Logic ser perdida na conversão se a fonte é estéreo. Quando a fonte é 5.1 não tem problema. DVDs que usam AC-3 Dolby Pro Logic têm estampados na caixa "Dolby Surround Pro Logic".

Para criar áudio AAC, o encoder usado nas versões do HandBrake para Windows e Linux é o FAAC, um encoder na melhor das hipóteses mediano (estou sendo otimista...). Já a versão para Mac OS X usa as bibliotecas do próprio OS X para criar AAC, que são muito superiores ao FAAC. Então, se você rodar o HandBrake num Mac, use AAC. Se rodar em Windows/Linux, prefira MP3 ou Vorbis (com o último terá que usar obrigatoriamente o formato MKV). Se AAC for requerido, use um bitrate alto para compensar as deficiências do encoder (por padrão o HandBrake usa 160kbps, que deve ser suficiente na maioria dos casos). Como comparação, o LAME (usado para gerar MP3), com 160kbps cria um áudio melhor que o AAC a 160kbps do FAAC, sendo que MP3 é um codec muito mais antigo e menos eficiente. Aqui entra em cena a qualidade do encoder, pela qual o LAME é amplamente reconhecido. Vorbis é superior ao MP3, com ele dá para baixar um pouco mais o bitrate sem comprometer tanto a qualidade.

Na versão 0.9.5, o HandBrake ganhou a habilidade de criar áudio AC-3 usando a libavcodec — "AC3 (ffmpeg)" na interface. Pelos poucos testes que fiz, é um encoder de baixa qualidade, aos moldes do FAAC.

- SUBTITLES


Hora das legendas. Quando o DVD possuir legendas, é possível adiciona-las no próprio arquivo MP4 ou MKV, sem depender de arquivos SRT/VobSub separados. Esta é uma das vantagens de formatos de arquivos modernos frente àqueles obsoletos (*coff* AVI *coff*).

Siga a numeração da imagem: adicione a faixa de legenda, selecione-a, selecione a linguagem da legenda em "Track". "Burned In" define se a legenda será "queimada" no próprio vídeo, ou seja, fará parte da imagem e não poderá ser desabilitada. É recomendável não ativar essa opção, por dois motivos: diminui a compressibilidade e impossibilita que a legenda seja desativada. A opção "Default" define se o tocador exibirá por padrão a legenda ou se o usuário terá que faze-lo usando a interface do tocador.

- CHAPTERS


Se o seu DVD for separado em capítulos, o HandBrake pode copiar as marcações para o arquivo final. Assim, você pode selecionar os capítulos com facilidade depois.

Sobre a guia Advanced não comentarei, pois foge do básico e eu não cheguei a mexer com ela.

CONVERSÃO

Depois de tudo conferido, só falta converter. Clique no botão "Start" do menu superior e espere. Enquanto a conversão é executada, no rodapé da janela do HandBrake é exibido o progresso e uma estimativa de término. A janela do HandBrake pode ser minimizada (irá para o system tray). Para acompanhar os passos executados, você pode olhar o log clicando no botão "Activity Window" do menu.

Lembre que conversão de vídeo exige muito processamento. O HandBrake aproveita múltiplos núcleos; portanto, quanto mais núcleos seu processador tiver melhor. Não tente usar aquele veterano Pentium III ou Athlon XP para isso, a menos que queira esperar um dia inteiro.

E teste codecs, formatos, configurações diferentes. Nem sempre conseguimos bom resultado na primeira conversão.

[Atualização - 10/10/2011] Adaptações para a versão 0.9.5.

8 comentários:

  1. Cara... mato a pau nesse tuto... parabens!

    ResponderExcluir
  2. Boa Tarde Marcos.
    Sempre prezei máxima qualidade em vídeos (som e imagem). E por questão de praticidade para tocar direto no Home, resolvi ripar meus DVDs de Shows para o formato MP4. Daí depois de uma vasta procura na internet por um programa que fizesse tal conversão para MP4 com perda mínima de qualidade, me deparei com o Handbrake. O problema é que apesar da boa vontade de muitos internautas tentarem ajudar com tutoriais, sinceramente das dezenas dos que vi, todos eram muito superficiais e não tinham resultados satisfatórios. Até que pra minha felicidade encontrei esse seu tutorial que mesmo feito há alguns anos atrás, obtive resultados infinitamente superiores aos demais. Problemas como entrelaçamento, qualidade de imagem a desejar, etc, todos foram resolvidos de imediato usando o seu tutorial. Por isso fiz questão de vir aqui lhe agradecer pela criação deste excelente tutorial. Só por questão de esclarecimento, estou usando a versão 0.9.9-1_i686-Win que é a última ainda suportada pelo WinXP ;)
    Abraços!

    ResponderExcluir
    Respostas
    1. Obrigado. Está na minha lista de coisas a fazer atualizá-lo para cobrir as mudanças das versões mais recentes do programa.

      Excluir
  3. Boa Noite Marcos.
    Opa, que ótima notícia. Enquanto isso aguardaremos ansiosos.
    A propósito, seu blog tem excelentes conteúdos. Parabéns!

    ResponderExcluir
  4. Boa tarde Marcos.
    Muito bom seu tutorial, somente aqui encontrei uma postagem bem clara sobre o assunto.
    Mudando de assunto, seria de grande valor, se possível você postar um tutorial sobre
    upscale em videos ripados de DVD.
    Desde já agradeço, e parabéns pelo blog.

    ResponderExcluir
  5. como embutir no filme, com o handbrake, legenda de cor amarela, para assistir no dvd de mesa. agradeço

    ResponderExcluir