Existe alguma maneira de distribuir tarefas de codificação x264 em vários computadores (para aumentar a velocidade de codificação)?

29

Alguém sabe de uma solução atual e ativa para codificar vídeos x264 em vários computadores (via rede) para aumentar a codificação de FPS?

Pontos Brownie para plataforma cruzada e código aberto, mas para todos vocês sabem, eu costumo usar o Windows.

Programas de que ouvi falar e porque não acredito que sejam adequados:

  • x264farm : não desenvolvido ativamente. Boa interface, mas não suporta codificação de duas passagens e falha com as versões x264 mais recentes.
  • ELDER : Novamente, não desenvolvido ativamente, mas meu problema era que ele não funcionava com novas construções x264 e era muito difícil de configurar (leia: parou aleatoriamente de funcionar).

Embora eu não precise absolutamente de um programa que esteja sendo desenvolvido ativamente, eu gostaria de um que suporte a codificação de duas passagens e trabalhe com novas construções (er) x264 strong>.

Informações adicionais : Até agora, eu ofereci (e agradeço!) Duas recompensas separadas sobre essa questão desde que a publiquei pela primeira vez há mais de dois anos, e ainda não encontrei uma solução para esse problema. O que eu estou procurando, basicamente, é um programa simples para permitir que eu codifique vídeos x264 usando o poder de processamento de vários computadores conectados em uma LAN. Além disso, seria bom se funcionasse com novas construções (er) x264 e suportasse codificação de duas passagens.

Se a qualquer momento alguém tiver uma resposta atualizada ou uma nova solução para esse problema, poste-a e ela receberá algumas considerações.

Atualização de 2016 :

Depois de muito da minha experiência de trabalho com visão de computador / máquina, percebi que a sobrecarga associada à grande quantidade de dados / memória compartilhada e o potencial gargalo que ela apresenta poderiam superar os possíveis benefícios.

Embora eu ainda adoraria encontrar algo que me permita aproveitar o poder de computação ocioso de vários dispositivos, por enquanto, os modernos codificadores baseados em GPGPU são uma abordagem muito melhor se você precisar de codificação aprimorada / em tempo real. Isso é o que a maioria das plataformas de codificação de vídeo baseadas em nuvem oferece (que é outra alternativa se você estiver em SaaS ou computação em nuvem), embora em uma escala maior.

    
por Breakthrough 18.03.2016 / 13:51

9 respostas

6

Você pode renderizar partes separadas do vídeo e usar o VirtualDub para juntar tudo com o modo Copiar (onde não há codificação). Não é uma codificação distribuída real nem nada, mas as soluções mais simples às vezes funcionam da melhor maneira.

    
por 07.09.2009 / 15:45
4

É beta, mas funcional. Não é tão simples, mas funciona. É baseado em Windows e livre.

ELDER de alguns caras do Doom9

    
por 02.09.2009 / 21:10
3

Você também pode tentar usar isso, é um software de codificação paralelo / distribuído para o Windows e funciona bem e dimensiona bem também.

Experimente o google para o codificador paralelo xcode.

Esses links devem fornecer mais informações.

http://superscalar.pbworks.com/

    
por 10.08.2010 / 20:47
2

Para usuários do Final Cut Studio (somente Mac), o componente x264 QuickTime funciona notavelmente bem quando usado com o cluster criado usando o QMaster. Carregue seu filme no Compressor e pronto. Nos testes, encontrei aumentos de velocidade decentes, especialmente ao trabalhar em um ponto de armazenamento compartilhado.

    
por 21.08.2009 / 23:13
2

Para o Mac OS X 10.5 (não tenho certeza da compatibilidade com 10.6), costumava haver VisualHub , o que permitiria configurar um farm de grade em sua rede local. Agora está descontinuado e ReduxEncoder apareceu como substituto, mas não consigo encontrar as opções para isso.

    
por 07.09.2009 / 15:57
2

Sou um grande fã da edição de vídeo da Sony Vegas para Windows ... e há um recurso chamado Network Render. :) Yums.

Fluxo de trabalho da Sony Vegas

EDITAR: Não tenho certeza se essa é uma solução viável, mas em vez de tentar encontrar um aplicativo de codificação de vídeo que suporte renderização de rede, tentei encontrar um software que permita que qualquer aplicativo vantagem da computação distribuída. E eu encontrei isso - IAIDataShareServer .

Parece bastante poderoso, e os resultados publicados são realmente ótimos. Se você vai tentar, deixe-nos saber como funciona?

EDIT2: O IAIDataShareServer parece estar apenas instruindo as máquinas a executar tarefas individuais. Até esse ponto, tentei procurar outras soluções de computação distribuída e listar algumas soluções promissoras.

  1. JPPF
  2. XOREAX
  3. DCEZ (este parece bom)
por 02.09.2009 / 21:06
1

o simples fato de NON ser do desenvolvedor do mundo tem até hoje se preocupado em escrever e enviar patches TCP / IP / UDP genéricos de cliente / servidor de codificação para um x264 atual, a partir de hoje thats 1745 ver x264.nl/

o modelo cliente / servidor genérico é bem compreendido, assim como o código-base x264 limpo, e pedir esclarecimentos sobre qualquer código x264 é uma simples questão de se juntar ao canal x264 dev IRC e perguntar, em poucos minutos você normalmente terá um key x264 Dev ou dois respondem à sua pergunta sobre como essa seção de código funciona, e até recebem uma idéia prática de como você pode reescrever seu código em evolução para melhor encaixar no x264 (e x262 um novo codificador Mpeg2 baseado no framework x264 de classe mundial sendo trabalhado agora) modelo.

Portanto, se você é um desenvolvedor, então a melhor coisa que você poderia fazer para o futuro da qualidade e da profissão A codificação de vídeo distribuída x264 de 32/64 bits é, na verdade, gravar esses patchs de cliente / servidor básicos necessários para fazer uma instância de x264 ou uma interface de aplicativo Web / GUI separada com esse novo código de cliente / servidor x264 API que você escreve, para procurar ativamente e atribuir e transmitir as seções de codificação separadas de um único vídeo para qualquer novo cliente x264 gerenciado correspondente código você também escreve.

seus novos clientes / servidor realmente distribuem correções de base de codificação não precisa nem mesmo ser o maior, apenas básico, mas funcionando e funcionando totalmente código C que é testado e usado doom10.org/index.php?action=unread

, há uma coisa que os desenvolvedores do x264 parecem adorar fazer, e isso pega o código C lento existente e grava versões otimizadas dele, seção por seção, mas você precisa realmente enviar o (real bem-vindo) código beta real primeiro contra a última filial OC

vale a pena investigar, e realmente fazer o esforço de codificar esses servidores x264 para muitos clientes x264 hoje, já que o x264 tem capacidade de codificação de 10 bits (isso significa alta qualidade Alta, Alta 10, Alta 4: 2: 2 perfis intensivos de computação H.264 estão agora disponíveis para todos gratuitamente com x264) adicionados.

a ser otimizado para velocidade extra com montagem em breve link

mas até mesmo uma única máquina de 8 núcleos terá dificuldades para fornecer saída de alta qualidade em um tempo razoável com 1080P, e em breve 2K e 4K super alta Def etc, um verdadeiro fácil de configurar e usar codificação nativa distribuída x264 / H.264 opção é apenas um patch ou dois de distância Então.

se você é um dev, POR FAVOR, não espere, faça hoje.

    
por 12.10.2010 / 10:19
1

Você pode dar uma olhada no Cluster de codificação de mídia :

Media Encoding Cluster is the first Open Source Cluster Encoding Solution that is written in C/C++ for distributed Media(Video and Audio) Encoding.

Media Encoding Cluster is an extensible video encoder, which uses a lightweight peer-to-peer grid to leverage the processing power of regular PCs for the purpose of distributing the encoding of highly compressed video, for example MPEG4 and H.264

It distributes Video Chunks over the Network to Client Nodes and parallelize the Encoding Task for one File over even more than one Computer to reduce the Encoding Time per File.

Outra abordagem é oferecida para a Nvidia pelo Badaboom (US $ 39,99 com teste), também revisada aqui :

Elemental's Badaboom uses Nvidia's CUDA interface to do lots of the grunt work of DVD ripping by using the GPU instead of your musty old CPU.

Da mesma forma, há também o Avivo Video Converter para ATI Radeon, descrito na wikipedia , embora possa ser necessário alguns fazendo para fazê-lo funcionar.

    
por 12.03.2011 / 10:01
1

Embora possa ser uma sugestão exagerada, o Rhozet Carbon Server pode reunir várias instâncias do Carbon Coder para o trabalho que você descreveu.

Site do Rhozet Carbon Server

Multiple Carbon Coder nodes can be configured as a transcoding farm, controlled by one or more Carbon Servers. Carbon Server allows for automated processing of high-volume transcoding tasks, server-controlled failover of Carbon Coder nodes, as well as managing job distribution, job prioritization, load balancing, FTP transfer, status monitoring, and job notification.

    
por 12.03.2011 / 16:17