28 de abril de 2010

Como converter Vídeos para H.264 com Nvidia Cuda (GPGPU)

Há algum tempo escrevi um artigo que falava da conversão de vídeos usando Cuda com o MediaCoder e o grande ganho de desempenho que causava. Devido a dificuldade de usar o MediaCoder e a pedidos resolvi escrever um guia básico.

1º Primeiro baixe a última versão aqui;

2º Instale, abra, mas não use o configurador;

3º Configure a linguagem para português, o modo de interface de usuário para normal e a pasta de saída para uma de sua preferência;


4º Agora mude para a aba vídeo, desmarque "Auto seleção" no codificador e selecione "Cuda Encoder", onde esta 1000 irá depender da resolução do vídeo, quanto mais alto melhor, para um vídeo em baixa definição 800 esta muito bom, mas para 720p ou 1080p é melhor bem mais, lembrando que quanto mais maior ficará o arquivo;


5º Agora na aba som recomendo deixar como esta, mas você pode mudar para mp3 na configuração "Formato";


6º No recipiente recomendo colocar "Matroska", mas pode ser AVI, MP4, não importa tanto.


7º Agora é só clicar em Start! Qualquer dúvida é só comentar.


Editado em 17/08/2010: Recentemente saiu uma versão especial do MediaCoder para placas com Cuda, é uma copia do Badaboom, mas gratuita, sendo assim permite converter vídeos para dispositivos portáteis. Infelizmente ainda não cria arquivos em resolução FullHD, ou seja, para isso ainda faz-se necessário o uso desse tutorial. Faça o download do MediaCoder NT Cuda.

25 comentários:

Anônimo disse...

nossa, primeiro lugar que consigo achar isso na net obrigado

Juliana disse...

Nossa vlw, esse programa é muito chato de usar

bergao disse...

o problema aqui diz que o codec do cuda expirou..,porque??

RicardoZ disse...

só atualizar o mediacoder, foi um erro que eles ja corrigiram (ao menos dizem isso no change log)

bergao disse...

ja atualizei peguei a versao mais nova minha placa de video é uma gtx480 e nao consigo usar esse programa.

RicardoZ disse...

bom, então desinstale, apague todos os rastros do mediacoder (pastas e registros) instale de novo...

e use a versão 64bit se já não estiver usando.

marcia disse...

encontrei um melhor ainda..a versão do mediacoder própria para o cuda .. http://www.mediacoderhq.com/cuda/ quando vc baixar vai está em chinês então Você faz: Clique no ícone Configurações (que se parece com uma engrenagem), escolha a opção 2 na primeira caixa de combinação e fechar a janela. Clique no botão esquerdo quando prompt aparece para reiniciar MediaCoder em Inglês.

RicardoZ disse...

é, essa versão tem menos de 1 mes, já tinha visto, mas ñ tive tempo de testar, vou testar se for bom altero o artigo.

Obrigado.

bergao disse...

postei sem querer com email da minha esposa marcia,ja testei ricardo é muito boa sim e muito rapida.

RicardoZ disse...

Bergão atualizei o artigo, não consegui converter usando ele para uma resolução maior que 720p, então ainda assim (infelizmente) o tutorial é necessário =/

bergao disse...

pois é e eu nao consigo usar o mediacoder x64 pois ta o mesmo erro..caramba.

RicardoZ disse...

bom aqui diz algumas soluções, como atrasar o relógio do computador mais de 1 mes ou usar a versão 32bit, parece que a 64bit tem problemas. Estranho que aqui continua a funcionar.

http://forum.mediacoderhq.com/viewtopic.php?f=25&t=9403

bergao disse...

ricardo consegui aqui coloquei a versao nova 64bits mesmo..mas peguei o codec cuda da versao MediaCoder NT CUDA (cudaH264Enc) e coloquei na pasta codec do MediaCoderx64.em opcoes vc vai em video encoders vai em cuda e patch to the encoder troca de cudaH264Enc64 pro cudaH264Enc.lembrando é claro que vc ja colocou esse codec na pasta previamente.
ricardo queria agora testar com vc a velocidade da minha placa e da sua se faz diferenca,escolhe um filme novo como salt que saiu agora ou algum em 720p determina as configuracoes e me passa pra gente testar.obrigado.

RicardoZ disse...

Comparar uma 8600GT contra uma GTX 480 é covardia, são 480 SP contra 32, 15x menos, ainda temos que levar em consideração que essa nova arquitetura da Nvidia (ao menos em teoria) foi otimizada para computação. Mas duvido que a diferença de desempenho fique em 15x, na prática vai ser bem menos que isso, o MediaCoder não deve ser tão bem otimizado.

Há algum tempo escrevi esse artigo ( http://ricardoz.blogspot.com/2010/03/convertendo-video-para-h264-com-nvidia.html ), nele comparei a velocidade da GPU contra a CPU. Usei uma animação opensource que esta disponível em várias resoluções e formatos...

http://www.bigbuckbunny.org/index.php/download/

usei o em H264 em 1080p, da pra gente comparar, se vc quiser uso mais algum vídeo, mas queria evitar qualquer tipo de pirataria...

bergao disse...

é ricardo fiz aqui o teste com o video que me falou ficou na velocidade de 3x, e 74fps nao chega nei perto das 15x mais rapido..mas é bem mais rapido demorou so 3 minutos...enquanto no seu teste ficou em 11 minutos.bom para todos terem um bom comparativo.

RicardoZ disse...

se vc quiser fazer mais testes com outro vídeo (q não seja pirata) faço aqui tbm e atualizo aquele post com os dados, claro, dando os créditos a vc e linkando alguma página sua...

agora essas 3x mais rápido chuto q as pessoas que desenvolveram o encoder usam alguma 8800 com 128 shaders, assim otimizaram para ela... ou o processador limitou...

bergao disse...

nao sei ricardo aqui tenho um core i7 920,mas tava sem over posso testar com over,pois consigo colocar estavel aqui em 4200mhz...mas acho que nao é valido pois nei todos conseguem colocar nisso.agora massa é esse forum aqui dos programas compativeis com o cuda conhece? http://74.200.65.90/showthread.php?p=1459378 hoje ja sao muitos programas.

RicardoZ disse...

é interessante fazer um com over, dai da pra saber se o programa é mal otimizado ou limitação de CPU (já que nem todas as etapas são feitas pela GPU)...

um teste que eu gostaria q vc fize-se é converter usando o x264 que é um codec altamente otimizado para multiplos nucleos, q pode usar todos os 8 (com HT...) do seu processador... para comparar uma placa low end contra um processador top...

não conhecia esse site, infelizmente existem poucos programas que utilizam gpgpu, a maioria dos que convertem vídeo usam para encodar H264, outro uso é para quebrar senhas com força bruta de resto, infelizmente, não são minimamente úteis para mim.

Para o GPGPU se tornar comum a Intel (que é a maior fabricante mundial de chips gráficos) teria que dar suporte ao OpenCL ou, ao menos, ao DirectCompute, dai sim, com um mercado consumidor grande, as empresas de software teriam motivos para usar GPGPU... e sim os ultimos chips gráficos da intel (que acompanham alguns processadores i3 e i5 (talvez outros) são super decentes em desempenho, pecam no péssimo driver...

parabéns pelo computador, configuração extremamente parruda...

EdsonDaeva disse...

Ricardoz, não estou conseguindo usar o cuda da minha placa gigabyte gtx 560ti dual fan... Está dando o erro 014... segui todos os procedimentos do tutorial, mas não consegui. Minha versão é a 64bits mais recente.

RicardoZ disse...

Qual é o erro 014?

EdsonDaeva disse...

Bom, era o erro 014, mas instalei o gpucomputingsdk_4.2.9_win_64.exe que achei no site da nvidea... Agora dá o erro 06... hehehe
Tem alguma solução?? Já fiz o que um usuário aí de cima falou, substituir o cudaH264Enc.exe, mas não deu certo... Tem alguma solução, amigo?

RicardoZ disse...

Vamos lá, atualiza o driver de vídeo pra última versão e se certifica que realmente o Media Code está na última versão, toda hora lançam... Depois pega um vídeo num formato comum H264 recomendo o Big Buck Bunny... depois me fala.

As vezes da pau por causa do formato do vídeo de entrada que pode estar ruim...

EdsonDaeva disse...

Já estou usando a última versão do driver da placa. Já tentei o big buck bunny e voltou a aparecer o erro 014, a versão do media Code é 0.8.12.5250. Não se mais o que fazer aqui... Meu pc tem 10g de ram e é um phenom II x6 1100t com a gtx 560ti.

RicardoZ disse...

O que ocorria muito na época que usava o Media Coder era que escolhia uma configuração de conversão que não era possível. Usar um formato de audio incompatível com o container, coisas assim.

Vc tem um processador muito parrudo, com o x264 não deve perder quase nada para a geforce. Se insiste em usar o Cuda, tente um programa pago como esse http://www.arcsoft.com/mediaconverter/ .

Faz um ano que troquei de placa de vídeo, atualmente tenho uma Radeon, então não tenho mais como estar.

EdsonDaeva disse...

Muito obrigado por sua atenção e ajuda, Ricardoz. Vou ver esse programa que tu passou, mas acho que vou ficar com o media code x264 mesmo, pois foi a melhor qualidade até agora. E faz um excelente hardsub. Thanks, man. Abraço.