quarta-feira, 1 de fevereiro de 2012

Usando placas NVidia para acelerar a edição no Premiere Pro CS5, CS5.5 ou CS6

Importante: página atualizada em abril/2013. Esse post não aceita mais comentários. Por favor use as páginas de Dúvidas e Sugestões

Muita gente tem tido dúvidas quanto ao funcionamento do Mercury Playback Engine do Premiere Pro CS5, CS5.5e e o novo Pro CS6,  relatando que apesar de usarem modelos de GPU Nvidia GTX, não conseguemhabilitar a aceleração por hardware. E ainda uma parcela considerável de usuários dos programas da Adobe, nem sabem que podem melhorar substancialmente o desempenho do seu computador habilitando essa função importante do Premiere. Então aqui vão as dicas.

Se você usa sistemas da Apple como Mac Pro e Macbook Pro, clique aqui para ler o tutorial correto.


Para saber se o MPE (Mercury Playback Engine) está habilitado por hardware, nas versões CS5 ou CS5.5, vá em Projects => Project Settings => General e na janela que vai abrir procure a última caixa de texto no fim da janela. No CS6 a caixa de texto Video Rendering and Playback está logo no início, na parte superior da janela.


Se a caixa de seleção estiver apagada e escrito Mercury Playback Engine Software Only é porque sua paca não é compatível com o programa.

Placas de vídeo Nvidia suportadas para aceleração pela GPU pela última versão do Premeire CS6 (Lista atualizada em 27/04/2013)


Outra disca importante:  Use sempre a última versão de atualização do Premiere. Se for a versão CS5, a última atualização foi a 5.0.3. Se for a CS5.5 a última disponível é a 5.5.2. e a versão CS6 está na atualização 6.0.3.  E tenha sempre os drivse mais atualizados da sua placa de vídeo Nvidia e demais componentes do computador. Quanto aos drivers de vídeo das placas GTX use sempre o driver baixado do site da própria Nvidia e não o do site do fabricante da sua placa, pois alguns não atualizam rapidamente os arquivos.

O pulo do gato...

Além das placas de vídeo Nvidia listadas no site da Adobe, outros modelos do mesmo fabricante podem ser ativados no Premiere CS5, CS5.5 ou CS6 para habilitarem o Mercury Play Back Engine para rodar por hardware. Nesse caso quando você acessar a aba de Project Settings verá a janela da figura anterior com a aparência abaixo.


Note que agora há uma borda amarela ao redor da janela e aparece a indicação que o Mercury Playback Engine está funcionando com aceleração pela GPU.

Se esse for seu caso, é sinal que sua placa é de um modelo reconhecido pelo Premiere para rodar o MPE. Então nada precisa ser feito. Essa janela serve também para você desabilitar o MPE por hardware e usar apenas por software caso esteja tendo problemas de travamentos com o MPE ativado. Mas eu recomendo enfaticamente que você procure solucionar o conflito de fora a usar o Premiere sempre com o MPE ativado por hardware (pela GPU), pois o ganho de desempenho é, em alguns casos 20X maior.

Para quem não está tendo a placa de vídeo reconhecida:

Em primeiro lugar, para ter sua placa de vídeo habilitada pelo Mercury Playback Engine, ela tem que satisfazer a 3 critérios básicos:

1.     Ter o chipset da Nvidia (ATI funciona apenas para alguns modelos em Mac's);
2.     Ter, no mínimo, 1 Gigabyte de RAM DDR3 ou melhor;
3.     Ter a tecnologia de processadores CUDA;
4.     Ter pelo menos 96 núcleos CUDA ativos.

Sem essas especificações mínimas, mesmo fazendo as modificações a seguir, o Premiere não irá habilitar a placa que esteja fora das especificações acima. Os modelos que estão fora da lista da Adobe e que eu recomendo são:

GeForce GTX 480 (Windows)

GeForce GTX 550Ti (Windows)
GeForce GTX 560 Ti (Windows)
GeForce GTX 570 (Windows)
GeForce GTX 580 (Windows)
GeForce GTX 660 TI (Windows)
GeForce GTX 670 (Windows)
GForce GTX 680 (Windows)



Quanto melhor seja a série da placa e quanto mais núcleos CUDA ela tenha, melhor será a performance. Mas atenção: existem modelos overclocados pelos fabricantes, como o caso das GTX 295 e GTX 590 e GTX 690 que não funcionam no MPE pois tratam-se de GPU’s com 2 processadores, tecnologia não reconhecida pelo Premiere. 

Modelos que também funcionam apesar de serem mais fracos (mas mesmo assim você terá um bom ganho se comparar o desempenho de sua máquina com o MPE rodando apenas por software):

·      GeForce GT 240 (Windows)
·      GeForce GTS 250 (Windows)
·      GeForce GTX 285 (Windows)
·      GeForce GT   430 (Windows)

Então vamos ver como fazer o Premiere CS5, CS5.5 ou CS6 reconhecer sua placa:

Entre no drive onde está instalado o Windows, vá em Arquivos de Programa (se você roda o CS5 seu Windows é 64bits e existe outra pasta chamada Arquivos de Programa x86, cuidado para não se confundir), dentro de Arquivos de Programa vá em Adobe/Adobe Premiere CS5. Dentro dessa pasta estão todos os executáveis e DLL’s do Premiere. Navegue para baixo, depois das pastas, vai haver uma lista de arquivos, programas e DLL’s fora de pastas.

Encontre um arquivo em formato *.txt nomeado como:

cuda_supported_cards.txt

Abra com o Bloco de Notas. Você verá algo desse tipo:

GeForce GTX 285
GeForce GTX 470
Quadro CX
Quadro FX 3800
Quadro FX 4800
Quadro FX 5800
Quadro 4000
Quadro 5000
Quadro 5000M

Observe que sua placa não estará listada. Sem alterar nada do que já esta lá, coloque na primeira linha o código da sua placa. Se, por exemplo, sua placa for uma GTX 580, seu arquivo ficará assim:

GeForce GTX 580
GeForce GTX 285
GeForce GTX 470
Quadro CX
Quadro FX 3800
Quadro FX 4800
Quadro FX 5800
Quadro 4000
Quadro 5000
Quadro 5000M

Atenção: não altere os espaços entre as palavras e nem inclua outras informações. Pegue  um nome de placa similar a sua na lista e copie e cole mudando apenas o número. Se a grafia ficar incorreta com o nome que existe gravado no firmware da placa, o Premiere não reconhece o modelo mesmo ele sendo compatível. Exemplo de  alteração errada:

GeForce Nvidia GTX580
GeForce GTX 285
GeForce GTX 470
Quadro CX
Quadro FX 3800
Quadro FX 4800
Quadro FX 5800
Quadro 4000
Quadro 5000
Quadro 5000M

Feita a alteração, salve o arquivo no mesmo lugar substituindo pelo antigo. Uma dica: salve o antigo em algum lugar no seu computador com outro nome, pois caso algo der errado você tem o original.  Abra novamente o Premiere e veja se na janela Project Settings se a opção Mercury Playback GPU Acceleration está habilitada. Se você fez tudo certo é só aproveitar a melhoria do seu Premiere.

A maioria dos vídeos que você colocar na timeline aparecerão sem barra vermelha de render ou com uma barra amarela.  Principalmente aqueles que sempre apareciam com barra vermelha e precisavam de render para fazer preview. Mas lembre-se: uma placa de vídeo Nvidia mais modesta não fará milagres. Dependendo do modelo você ainda pode ter pequenos travamentos no preview.

Faça essas mudanças por sua conta e risco. Eu não me responsabilizo por danos ao seu comutador ou programas. O procedimento é seguro, mas não custa avisar.

Se tiver dúvidas, antes de enviar uma pergunta, leia as Perguntas Frequentes abaixo e veja se o seu caso se enquadra em alguma delas:


1) Minha placa não estava reconhecida pelo Premiere, mas segui os passos, incluí o nome dela no arquivo TXT da pasta Adobe e agora reconheceu e está trabalhando por GPU, porém o desempenho está a mesma coisa, lentidão e congelamentos nas linhas vermelhas da timeline.

R: Existem dezenas de modelos de placas NVidia GTX  que possuem os núcleos Cuda porem não são todas que podem ser usadas no Mercury Playback Engine ativadas por hardware. É necessário que a placa de vídeo tenha pelo menos 96 núcleos Cuda ativos e no mínimo 1GB de RAM DDR3. Mas tenha em mente que quanto menos núcleos sua placa tiver, menos visível será a melhoria de desempenho. Exemplo: Uma placa GTX 250 possui 128 núcleos Cuda, enquanto o modelo top GTX 680 possuem 1554 núcleos. Evidentemente o desempenho da última será muitas vezes maior.

2) Mesmo com uma placa GTX com Mercury Playback Engine ativado estou tendo problemas para visualizar os arquivos mais pesados em tempo real, sem render. Minha CPU não é um modelo de ponta.

R: Tente baixar a resolução de preview de vídeo do Premiere. Isso pode resolver. Em vez de trabalhar em Full Resolution experimente trabalhar em 1/2 (half) resolution ou mesmo em ¼. Você muda a resolução de exibição clicando em um pequeno ícone no canto inferior direito da janela de preview da timeline no Premiere. Alterar a resolução de exibição não altera a qualidade final do vídeo que será exportado.

3) Comprei uma placa Nvidia GTX 550 Ti com 192 núcleos CUDA 1 Gb DDR5, mas depois de ter feito tudo como explicado no post, não consigo liberar minha placa para ativação por hardware.

R: Atualize os drivers da placa de vídeo pelo site da NVidia e se isso não resolver, provavelmente é a grafia do nome da placa, digitada no arquivo do Premiere, que está diferente do nome reconhecido pelo programa GPUSniffer.Tem que ser exatamente o nome que o executável GPUSniffer.exe lê da Bios da GPU. Qualquer coisa abre uma janela do DOS e executa o GPUSniffer.exe como administrador e copia o nome da placa que ele informa. Ele também vai informar, de acordo com as informações que ler da Bios da GPU, se ela pode ou não ser habilitada. O GPUSniffer fica no mesmo local do arquivo de listagem das placas na pasta do Premiere.

4) Minha placa não consta da lista oficial de modelos suportados, no site da Adobe, como compatível com o Premiere. Possi habilita-la? E isso pode trazer danos a placa, ao computador ou ao programa?

R: Se a placa for Nvidia GTX ou Quadro e prossuir as condições mínimas exigidas, sim, ela pode ser habilitada. E de forma alguma a modificação do arquivo txt para incluir outros modelos pode danificar alguma coisa em seu hardware ou software.


5) Atualizei a versão do meu Premiere e a minha placa deixou de ser reconhecida pelo Mercury PB Engine para ativação por hardware.

R: Toda vez que houver atualização da versão do programa, você deve verificar se o arquivo txt que foi editado manualmente não foi substituído pela versão original e reeditar incluindo o nome da sua placa novamente. Verifique também se o driver da placa de vídeo é o mais atual disponível no site da Nvidia.

6) Minha placa é uma Point of View GTX 550 Ti. Como devo editar o arquivo txt? Geforce GTX 550 Ti ou Geforce GTX 550Ti ou ainda Geforce GTX 550?

R: A grafia correta depende de como um programa chamado GPUSniffer.exe, que roda quando abrimos o Premiere, lê as especificações da placa através do chip interno, onde existem várias informações como fabricante, modelo, serial number, etc. A grafia tem que ser igual a detectada. Nesses casos é necessário rodar o programa GPUSniffer como administrador, através de uma janela do DOS, e copiar exatamente o nome detectado da placa.


7) Executei a configuração conforme é ensinado no post, mas minha GFORCE GT9800 não habilita. Tenho muita lentidão ao abrir um projeto existente em AVCHD extensão .mts e também ao importar arquivos de áudio mp3.

R: A GTX 9800 não habilitou porque tem apenas 512 MB de RAM e o Mercury PB Engine  exige pelo menos 1 GB de RAM para funcionar. A lentidão geral se deve aos demais componentes. Processadores Phenon não são muito indicados para editar vídeos. Para editar AVCHD sem problemas a configuração mínima e a que indico na minha pagina de workstations aqui no blog. Veja as configurações da ProCS5 elas são as mínimas recomendadas.

8) Quando vou visualizar o vídeo em preview, ele fica dando umas travadinhas, já fiz todo o procedimento para habilitar o MPE por hardware, mas o problema continua. A configuração do meu PC é processador i7, vídeo 550 ti, 16 gigas de memoria, HDD Sata 3. Qual o motivo dessas travadas?

R: Mesmo um computador com componentes atuais e com o MPE ativo por hardware pode dar essas travadas ou pulos nos vídeos no modo preview. Isso é normal e se deve ao fato deque alguns efeitos ou outras modificações que fazemos nos parâmetros dos vídeos, durante a edição, não são aceitos pela GPU para rodar sem render. Ela tenta fazer o melhor que pode, mas somente um render final para exportação vai fazer o vídeo rodar direito.

9) Instalei o Adobe Photoshop CS6 e não estou conseguindo operar o 3D. Quando acesso o filtro vem um comunicado: Os recursos de 3D exigem que a opção "USAR PROCESSADOR GRÁFICO" esteja ativada nas Preferencias de desempenho. A sua placa de vídeo deve atender os requisitos mínimos e vocêpode precisar verificar se o seu driver está funcionando corretamente. Já fui em: Editar>Preferências >Desempenho>Configurações do Processador Gráfico > (selecionei: usar processador gráfico) > configurações avançadas > selecionei: (x)usarprocessador grafico para agilizar a computação, (x) guia e demarcadores de suavização de borda --- mais a opção ( ) Utilize o OpenCL ........ está apagada e não é possível aciona-la.

R: Verifique se o seu Photoshop é o da versão 32bits, pois 3D só funciona em 64bits. Vc terá que atualizar seu sistema operacional para 64bits e instalar o Photoshop CS6 64 bits.

10) Quando tento salvar o arquivo txt queestá na pasta raiz do Premiere, aparece uma mensagem dizendo:  “Aceso negado”.

R: Salve primeiro o arquivo em outro lugar do computador (na area de trabalho por exemplo) e depois substitua o arquivo antigo na pasta do Premiere. 


11) Minha placa é uma GTX 550Ti  mas não consigo habilitar o MPE por harware. O GPUSniffer diz que a minha placa tem apenas 729MB de memória de vídeo. Passei o Everest e ele tabém acusou apenas 729MB de memória. Minha placa é uma Geforce GTX 550Ti, NVidia genuína.  O que pode ter acontecido?

R: Você deve estar usando uma motherboard com vídeo onboard, por exemplo um modelo P8Z68 e o GPUSniffer está detectando as configurações da placa de vídeo onboard no processador. Provavelmente você está usando os processadores i7 de segunda geração (i72600 por exemplo), que possuem um processador de vídeo Intel HD4000. Na BIOS desabilite a opção de uso do vídeo onboard e nas opções de vídeo escolha iniciar o computador somente pela placa de vídeo externa. E é bom baixar a última versão do driver direto do site da NVidia.

12) Minha placa de vídeo é uma AMD Radeon HD 7730M 2GB. O Premiere Pro CS6 reconhece essa placa habilitando o MPE por hardware?.

R; Se for um notebook Macbook Pro ou estação MacPro tem sim. Basta editar o arquivo opencl_supported_cards.txt seguindo o tutorial que postei nesse link

13) Istalei uma GTX 670 e gostaria de saber se tem que configurar alguma coisa no Premiere,  para poder fazer o render do vídeo finalizado pelo MPE, pois não vi ganho na hora do render final para exportação.

R: Em primeiro lugar é preciso saber se o seu Mercury Playback Engine está ativado por hardware. Existem alguns efeitos e transições que não são processados em tempo real pelo MPE e esses efeitos terão que ser renderizados pelo processador na hora da exportação final. E aí a velocidade do trabalho dependerá do seu processador e das configurações globais da sua estação de trabalho, pois grande parte do render final é feito pela CPU. Mas com certeza, se você medir os tempos fazendo um teste de exportação com o MPE ativado por software e depois por hardware vai notar que há uma diferença sim.

14) Consegui ativar o MPE para a minha placa de vídeo, porém ao exportar meus projetos de vídeo estou tendo o seguinte erro:"Error compiling movie unknown error".


R: Esse tipo de erro é o mais difícil de solucionar (Unknown error) pois não é fornecido o código numérico específico para saber de onde vem o problema. Podem ser diversas coisas:

1 - Um arquivo de vídeo na timeline está corrompido na origem em algum trecho. ele pode até rodar em certos players, mas no Premiere, apesar de aparecer OK na timeline, na hora do render causa um erro.
2 - Um arquivo de vídeo tem um codec não suportado para o formato de exportação;
3 - Existe algum áudio em MP3 (alguns MP3 apesar de tocarem na timeline dão erro na exportação;
4 - Existe um gap entre duas sequências de vídeo na timeline (pode ser o espaço de apenas um freme que ficou vazio entre dois trechos de vídeo)
5 - Um dos arquivos de vídeo, fotos ou áudio estava originalmente em outro HDD que não está mais conectado ao computador ou em um driver em outra máquina que esteja em rede e foi desligada;
6 - O disco escolhido para receber o arquivo exportado está sem espaço suficiente ou ausente;
7 - As especificações do perfil de exportação foram modificadas para algum parâmetro não suportado;

Tente reiniciar a máquina e abrir o projeto novamente. Depois copie toda a timeline e abra outro projeto novo e cole. Veja se dá o mesmo erro.

Tente salvar o projeto como uma cópia do projeto original e após reiniciar o computador abra o novo projeto renomeado.

Tente selecionar trechos da sua timeline menores e de o comando de exportação. Se exportar é sinal que o problema está mais a frente. Vá selecionando outros trechos até descobrir em que ponto ocorre o erro.


15) Quando tento executar o programa GPUSniffer direto de dentro da pasta no Premiere, mesmo como administrador, a tela do DOS abre e fecha rápido, impedindo de ver os dados.

R: Você deve executar o GPU Sniffer pelo DOS. Abra uma janela do DOS como administrador e vá navegando pelo DOS até chegar a pasta onde está o GPUSniffer. Dando enter no arquivo ele executa pelo DOS e a janela fica aberta e pode ver as informações e copiar o nome exato de sua GPU.

16) Na hora do render para exportação o Adobe Premiere pede render em algumas transições, é normal isso?

R: Isso é normal sim, pois não são todos os efeitos que podem ser renderizados em tempo real pela GPU através do Mercury Playback Engine. Os efeitos em tempo real são:

Alpha Adjust
Basic 3D
Black & White
Brightness & Contrast
Color Balance (RGB)
Color Pass
Color Replace
Crop
Drop Shadow
Extract
Fast Color Corrector
Feather Edges
Gamma Correction
Garbage Matte (4, 8, 16)
Gaussian Blur
Horizontal Flip
Levels
Luma Corrector
Luma Curve
Noise
Proc Amp
RGB Curves
RGB Color Corrector
Sharpen
Three-way Color Corrector
Timecode
Tint
Track Matte
Ultra Keyer
Video Limiter
Vertical Flip
Cross Dissolve
Dip to Black
Dip to White
Film Dissolve
Additive Dissolve
Invert
Directional Blur
Fast Blur

O restante mostra o trecho com o efeito aplicado com uma barra vermelha, indicando que precisa de render pela CPU para exportar. E dependendo da complexidade do efeito, da placa de vídeo e das demais especificações de seu computador,  pode inclusive travar durante o preview, mesmo usando o MPE.

17) O Premiere CS6 aproveitaria todo os núcleos CUDA existentes na máquina , considerando que eu pusesse uma Quadro 6000 e uma GTX 550 Ti?

R: No caso do Premiere CS6 ou versões anteriores, nãosão reconhecidas ou utilizadas duas GPU ao mesmo tempo. Nem as placas GTX 690 com 2 processadores funcionam. O Premiere só reconhece uma GPU por sistema. É muito complicado instalar duas placas de vídeo na mesma máquina usando apenas um sistema operacional. O que pode ser feito é instalar 2 Windows em dual boot e instalar uma placa em cada um. Mas isso é dor de cabeça na certa. A opinião geral nos foruns é que sem um bom software de virtualização é impossível instalar uma Quadro e uma GTX no mesmo sistema, pois o s drivers são diferentes e conflitantes.

Existe uma opção caríssima da NVida que usa uma Quadro e uma Tesla com drivers específicos para os programas Adobe e outros. Mas nesse caso são 2 placas que usam o mesmo driver. Como se vc usasse 2 GTX em SLI. Mas também nesse caso o Premiere não reconheceria o SLI.

Então se você quer investir em uma Quadro 6000 vá em frente se o assunto for trabalhar com 3D e modelagem, pois existem drivers da NVidia específicos para esses programas. Caso esteja querendo editar vídeos e usar o Adobe Premiere para efeitos, as GTX 680 são bem mais rápidas que o melhor modelo da Quadro (6000) e custam um quarto do preço.

18) O Mercury PB Engine pode ser usado em notebooks pelo modo de render porhardware?

R: Você deve comprar um notebook que tenha placa de vídeo dedicada NVidia GTX ou Quadro. Com Quadro, somente algumas workstations, como as da DELL são vendidas em formato laptop. Se for GTX existem diversos modelos no mercado, mas é importante que a placa tenha pelo menos 1 GB de RAM dedicada. E depois de instalar o Adobe Premiere no notebook, tem que editar o arquivo txt de placas suportadas para o Adobe reconhecer a GTX, caso ela não esteja incluída na listagem oficial do Premiere.
Abraços,

19) Estava usando Adobe Premiere CS4 e resolvi instalar a versão CS5. Na linha do tempo quando coloco uma transição no vídeo fica uma linha de cor amarela em cima da transição e clico enter para reinderizar ela não renderiza como acontece na versão CS4 que aparece em vermelho e ao pressionar enter inicia o render e roda a transição normalmente.

R: A partir do CS5 as coisas mudaram um pouco. Se o programa detectar que sua transição pode ser exibida em preview sem necessitar de render ele coloca uma faixa amarela avisando.

Faixa vermelha = o vídeo só rodará com render
Faixa amarela = pode ser que o vídeo rode sem render ou rode com alguns lags
Faixa verde = o conteúdo não precisará de render para rodar.

E isso se aplica também ao render final para exportação. Nesse caso a faixa amarela indica que o render será feito pela GPU em tempo real, o vermelho indica que o render será feito pela GPU e/ou pela CPU e a verde indica que não haverá render nesse trecho.

20) Daria para usar duas Nvidia Quadro no mesmo PC e tirar proveito dos núcleos CUDA das duas usando o Premiere?

R: Não dá para usar duas placas Quadro juntas a não ser que seja Quadro e outra Tesla e contanto que os programas tenham os drivers adequados a elas. O Premiere e outros programas de computação gráfica tem esses drivers disponíveis no site da NVidia. Mas o custo é alto e uma placa GTX 680 bem mais barata e tão rápida quanto. O Premiere só reconhece uma GPU e nem as placas GTX590 e 690 com 2 processadores podem ser usadas, pois o Premiere só reconhece apenas um núcleo, ficando sub utilizadas.

Grande abraço a todos!

Marcelo Ruiz