Olá a todos os colegas do fórum, depois de muito tempo em fóruns em inglês, com meu inglês ruim, resolvi juntar o máximo possível de conteúdo sobre esse formato, que vem sendo cada vez mais usado, chamado MPEG-4 part 10 ou AVC, mais conhecido como H.264.
Aqui eu irei explicar como fazer conversão de qualquer arquivo que possa usar o directshow atrevés do
ffdshow (avi, mpeg, divix, xvid, mkv, mp4 ) para H.264 dentro de um arquivos matroska (.mkv) incluindo toda a parte de conversão de áudio usando somente programas grátis/opensource que, na minha opinião, apesar das dificuldades, não conheço pagos tão bons quanto esses.
1. O que é o H.264? H.264 é um formato de vídeo criado pelo ITU-T Video Coding Experts Group (VCEG) juntamente com o ISO/IEC Moving Picture Experts Group (MPEG), não vou entrar em muitos detalhes, mas
aqui há muitas informações.
O formato vem sendo cada vez mais utilizado a cada dia, seu maior trunfo é o alto nivel de qualidade que se consegue alcançar com um tamanho ainda menor (algumas vezes menos da metade) do que os nossos já conhecidos
DivX e
XviD, entretanto para se conseguir essa alta qualidade também é necessário um grande poder de processamento tanto na hora da codificação quanto na hora da decodificação do vídeo.
2. Programas requeridos AviSynth: É o programa que irá gerar os scripts necessários para a conversão do vídeo. É uma ferramenta muito útil nas mãos de um profissional, mas como não é a nossa finalidade e eu não sei fazer muito bom uso dela (se alguém puder dar algumas dicas...) iremos ficar somente com o básico.
meGUI Esse é o programa principal onde iremos fazer as conversões de vídeo. Requer o Microsoft .NET Framework 2.0 que pode ser encontrado
aqui MKVToolnix: Com ele iremos mesclar o vídeo e o áudio e, se for o caso, as legendas em um único arquivo.
CCCP: Um dos programas necessários para a decodificação e codificação dos arquivos e vem incluido o
ffdshow.
Para facilitar,
aqui está o instalador do MKVToolnix e do AviSynth mais o meGUI (basta descompactar apenas) e o CCCP se encontra no site do link acima.
3. Formatos de arquivos. Matroska O formato Matroska (.mkv) é atualmente o formato mais flexível encontrado, com ele pode se usar praticamente todos os formatos de vídeo e áudio ou misturar formatos diferentes em um mesmo arquivo, pode ser usado para streaming via internet, pode se anexar qualquer arquivo nele, pode se usar capítulos parecido como os de um DVD, é opensource e, portanto, funciona tanto em linux quanto windows entre outras vantagens.
Vorbis O formato de áudio vorbis (.ogg) é atualmente o melhor formato de áudio com perda, conseguindo uma compressão melhor que a do MP3 e WMV. Só é superado pelo AAC+ (.mp4) em bitrates abaixo dos 64 onde este se torna o melhor formato a ser usado. Também é opensource.
4. Primeiros passos Após se ter instalado/descompactado todos os programas necessários, abra o meGUI. Assim que abrir autorize o programa a baixar as atualizações e automaticamente ele irá baixar todos os arquivos necessários para este tutorial.
O primeiro passo para se fazer a codificação do vídeo é criar um script do AviSynth.
5. Criando um script AviSyntyh usando o meGUI Caso for fazer uma conversão a partir de um arquivo AVI eu
altamente recomendo fazer segundo o item
6 a seguir para evitar possíveis problemas de sincronização com o áudio, para os outros arquivos siga esses passos:
1- Abra o no menu “tools” e depois vá a “AviSynth script creator”. (atalho CTRL+R)
Abrirá uma janela, nela escolha o vídeo a ser usado em
"video input", isso fará aparecer uma visualização do vídeo que você escolheu, e depois marque a caixa
"Clever (TM) anamorphic encoding", essa opção fará com que o seu vídeo seja redimensionado para o mais próximo multiplo de 16 pois o vídeo precisa estar assim para se conseguir uma melhor compressão. Caso queira diminuir a resolução do vídeo basta escolher em
"resize" a resolução desejada.
Na aba
"filters" pode se escolher o modo como será feito o redimensionamento em "
resize filter". Pessoalmente eu prefiro usar
Bicubic (sharp), mas isso fica a seu critério, a maioria das pessoas sequer notará alguma direfença entre os modos.
Salve o script e volte para a tela principal.
6. Criando script para arquivos AVI Eu recomendo usar esse procedimento para arquivos AVI porque através do método que o meGUI usa pode ocorrer perdas de quadros e, assim, acontecerá a perda de síncronização com o áudio também.
Você pode simplesmente abrir o bloco de notas e usar o seguinte código
Código: |
AVISource("caminho_completo_do_arquivo") |
e salvar em um arquivo com a extensão
.avs.
Ou você pode usar um programa, bem conhecido de quem já mexeu com vídeo, chamado
VirtualDubMod. Pegue o programa
aqui e abra-o, em seguida vá a
"file",
"open video file" e na parte de baixo da tela em
"Use AviSynth template" escolha AVIsource. Pronto quando ele abrir o arquivo vai criar automaticamente um script com o mesmo nome do arquivo e na mesma pasta.
7. Convertendo o vídeo De volta a tela inicial do programa abra o script que você criou e escolha o nome e onde será salvo o arquivo. Tenha certeza de que o codec esteja como
x264 e em seguida escolha o perfil que será usado para a codificação em
"video profile". Pessoalmente não gosto de usar os perfis que vem junto com o programa e criei os meus próprios, os quais usarei nesse tutorial. Estão disponíveis
aqui . Para usá-los basta colar os mesmos na pasta profiles\Video do meGUI.
São quatro perfis, sendo 2 modos de alta compactação, mais lentos para codificar, e dois modos com uma compactação um pouco menor, mas com uma velocidade de codificação bem maior. Recomendo que, para uso geral, usem o modo mais rápido, pelo fato dele possui uma excelente relação de qualidade x tempo de codificação e para criar arquivos que precisem ser bem pequenos utilizem o de alta compactação.
Os dois modos são os seguintes:
CQ - A compressão em
constant quantizer que é feita de uma forma constante, fazendo com que a qualidade do arquivo seja igual durante todo o vídeo não importando o tamanho final, e por esta razão não existe uma taxa de bits definido, ele pode variar dependendo da complexidade das cenas.
Exemplo: você está codificando um anime/seriado em que todos os episódios tenham a mesma duração e os arquivos finais dele ficaram com tamanhos como: A=170MB, B=120MB e C=200MB. O episódio A tem mais complexidade do que o B e para manter a qualidade foram necessários mais bits, enquanto em C teve mais complexidade ainda e foi necessario mais bits do que os outros 2.
2pass - A codificação é feita com base em uma taxa média de bits definida independente da qualidade final, sendo que primeiramente é feita uma análise da complexidade das cenas para se distribuir os bits e depois é feita a codificação, deste modo cria-se arquivos com tamanhos específicos. Levando em consideração os mesmos três vídeos do exemplo anterior vamos fazer uma comparação: usando um certo valor de bitrate, todos os vídeos ficaram com o tamanho de 150MB. Desse modo podemos dizer que o vídeo A ficou com uma qualidade um pouco inferior para poder ficar com os 150MB, o vídeo B ficou com uma qualidade superior do que a anterior - já que no anterior ele precisou de 120MB e neste ele precisou ocupar os 150MB - e C ficou com uma qualidade considerávelmente menor que a do anterior para poder ficar com os 150MB.
O modo de compressão depende de cada pessoa, pessoalmente eu considero o CQ mais vantajoso, principalmente se o vídeo original está em alta qualidade como um DVD, mas quando preciso fazer algo com um tamanho definido, como gravar em um CD, eu uso o 2pass.
Independentemente do modo que for usar, abra a caixa
"config" na linha do
"video profile" e escolha o
"bitrate" ou
"quantizer" que você deseja usar. O melhor modo de se achar o valor ideal é testando, mas de uma maneira geral, se consegue uma boa qualidade a partir de 700Kbits/s de bitrate ou um valor entre 20 a 24 de quantizer.
Faça testes com alguns arquivos e veja o valor que você acha mais apropriado, para quantizer costumo usar 22.
Após abrir o script e escolher o modo de compactação basta dar um click em "enqueue" e ele irá para a fila de arquivos a serem codificados. Para inicar a codificação basta ir para à aba
"queue" e clicar em
"start" 8. Convertendo o áudio Caso queira converter o áudio também, basta ir a; aba
"input"; escolher o vídeo/áudio o qual queira converter para Vorbis em
"audio input"; codec deixe em
"ogg vorbis"; vá a
"config" e escolha a qualidade desejada.
O vorbis é codificado de uma maneira diferente dos outros arquivos, pois deve-se escolher não o bitrate, mas sim a qualidade desejada. Para termos uma idéia vou dar os valores de bitrate final:
q0= 64
q1= 80
q2= 96
q3= 112
q4= 128
q5= 144
E continua a aumentar de 16 em 16Kb/s.
existem testes (em inglês) que comparam vários formatos de áudio no
link da wikipédia do vorbis que devem ser conferidos por quem está curioso sobre as diferenças entre eles, o arquivo codificado pelo meGUI é através do aoTuV e está nos teste.
Caso queira usar outro formato o próprio meGUI vem com várias opções diferentes.
9. Juntando os arquivos Agora, para terminar, basta juntar os arquivos de vídeo com o áudio. Para tal, bastar abrir o
"mkvmerge GUI" que foi instalado pelo
"MKVToolnix" e seguir os seguntes passos: você pode arrastar e soltar na janela os arquivos de vídeo e áudio ou, se você não optou por converter também o áudio, o arquivo de vídeo codificado e o vídeo original, também é possível através do botão
"add". Após abertos os arquivos, na caixa
"tracks" aparecerá todos os áudios, vídeos ou legendas adicionados. Basta apenas escolher os que você quer deixar no arquivo, pode se usar vários áudios ou legendas no mesmo arquivo, e clicar em
"start muxing" . Pronto! Seu vídeo está codificado e pronto para ser reproduzido
Com o tempo, vou adicionando todo que for possível para incrementar esse tutorial e deixa-lo o mais completo possível.
Espero que gostem, qualquer suguestão, ou dúvidas postem aqui.
Agredeço a nossa colega Bellatrix pela grande ajuda na revisão