web-dev-qa-db-ja.com

x264エンコーディングジョブを複数のコンピュータに分散する方法(エンコーディング速度を上げるため)はありますか?

エンコードFPSを向上させるために(ネットワーク経由で)多くのコンピューターでx264ビデオをエンコードする現在のアクティブなソリューションを知っている人はいますか?

クロスプラットフォームおよびオープンソースのブラウニーポイントですが、ご存じのとおり、私は通常Windowsを使用しています。


私が聞いたことがあるプログラム、およびそれらが適切であると私が信じない理由:

  • x264farm:積極的に開発されていません。優れたインターフェイスですが、2パスエンコーディングをサポートしておらず、新しいx264ビルドでは失敗します。
  • [〜#〜] elder [〜#〜]:繰り返しますが、積極的に開発されていませんが、私の問題は、新しいx264ビルドでは機能せず、設定が非常に難しいことです(読み取り:ランダムに動作を停止しました)。

積極的に開発されているプログラムは絶対に必要というわけではありませんが、2パスエンコーディングをサポートで、new(er)x264ビルドで動作するプログラムが欲しいです。


追加情報:これまで、2年以上前にこの質問を投稿して以来、この質問に対して2つの個別の賞金を提供(および受賞)しましたが、この問題の解決策はまだ見つかりません。基本的に私が探しているのは、LAN経由で接続された複数のコンピューターの処理能力を使用してx264ビデオをエンコードできる単純なプログラムです。さらに、新しい(新しい)x264ビルドで動作し、2パスエンコーディングをサポートしていれば、すばらしいでしょう。

いつでも誰かが更新された回答、またはこの問題の新しい解決策を持っている場合は、それを投稿してください。考慮されます。


2016年更新

コンピューター/マシンビジョンでの多くの実務経験の後、大量の共有データ/メモリに関連するオーバーヘッドと、それがもたらす潜在的なボトルネックが、潜在的な利点を上回る可能性があることに気付きました。

いくつかのデバイスのアイドル状態のコンピューティングパワーを活用できるものを見つけたいと思っていますが、今のところ、最新のGPGPUベースのエンコーダーは、改善されたリアルタイムエンコーディングが必要な場合ははるかに優れたアプローチです。これは、大規模ではありますが、ほとんどのクラウドベースのビデオエンコーディングプラットフォームが提供するものです(SaaSまたはクラウドコンピューティングを使用している場合は、別の代替手段))。

29
Breakthrough

ビデオの個別のチャンクをレンダリングし、VirtualDubを使用して、コピーモード(エンコードを行わない)ですべてをつなぎ合わせることができます。これは実際の分散エンコーディングなどではありませんが、最も単純なソリューションが最適な場合があります。

6
Ivan Vučica

ベータ版ですが機能的です。それほど単純ではありませんが、機能します。 IS Windowsベースで無料です。

[〜#〜] elder [〜#〜] Doom9の人から

4
Keck

また、これを使用することもできます。これは、Windows用の並列/分散エンコーディングソフトウェアであり、うまく機能し、適切にスケーリングされます。

Xcode Parallelエンコーダーのグーグルを試してください。

これらのリンクは、より多くの情報を提供するはずです。

http://superscalar.pbworks.com/

3
dxblitzx

Mac OS X 10.5(10.6との互換性についてはよくわかりません)の場合、以前は VisualHub がありました。これにより、ローカルネットワークにグリッドファームをセットアップできます。現在は廃止されており、交換用として ReduxEncoder が表示されていますが、そのオプションが見つからないようです。

2
Tiago Veloso

Final Cut Studio(Macのみ)のユーザーの場合、 x264 QuickTimeコンポーネント は、QMasterを使用して作成されたクラスターで使用すると非常にうまく機能します。ムービーをCompressorにロードすると、それはなくなります。テストでは、特に共有ストレージポイントで作業しているときに、かなりの速度が向上することがわかりました。

2
Chealion

私は、Sony Vegas for Windowsビデオ編集の大ファンです...ネットワークレンダーと呼ばれる機能があります。 :)ヤム。

Sony Vegasワークフロー

EDIT:これが実行可能なソリューションであるかどうかはわかりませんが、ネットワークレンダリングをサポートするビデオエンコーディングアプリケーションを探す代わりに、任意のアプリケーションが分散コンピューティングを利用できるようにするソフトウェア。そして私はこれを見つけました- IAIDataShareServer

それはかなり強力に見え、サンプルの投稿結果は本当に素晴らしいです。試してみる場合は、その仕組みを教えてください。

EDIT2:IAIDataShareServerは、マシンに個々のタスクを実行するように指示しているようです。その点で、私は他の分散コンピューティングソリューションを調達しようと試み、有望なソリューションをいくつか挙げました。

  1. [〜#〜] jppf [〜#〜]
  2. [〜#〜] xoreax [〜#〜]
  3. DCEZ(これはよさそうだ)
2
caliban

あなたは Media Encoding Cluster を見ているかもしれません:

Media Encoding Clusterは、分散メディア(ビデオおよびオーディオ)エンコーディング用にC/C++で記述された最初のオープンソースクラスタエンコーディングソリューションです。

Media Encoding Clusterは拡張可能なビデオエンコーダであり、軽量のピアツーピアグリッドを使用して、MPEG4やH.264などの高度に圧縮されたビデオのエンコーディングを分散する目的で、通常のPCの処理能力を活用します。

ビデオチャンクをネットワーク経由でクライアントノードに分散し、1つのファイルのエンコードタスクを複数のコンピューターに並列化して、ファイルごとのエンコード時間を短縮します。

Badaboom (トライアル付き$ 39.99)によってNvidiaに別のアプローチが提供され、さらにレビュー here

ElementalのBadaboomは、NvidiaのCUDAインターフェイスを使用して、かび臭い古いCPUの代わりにGPUを使用することにより、DVDリッピングの多くの面倒な作業を実行します。

同じように、ATI Radeon用のAvivoビデオコンバーターもあります。これは wikipedia で説明されていますが、機能させるには少し時間がかかる場合があります。

1
harrymc

単純な事実は、現在のx264の分散型TCP:IP/UDP汎用エンコーディングクライアント/サーバーパッチを作成して提出することに煩わされている世界の開発者の日付ではないことです。

クリーンなx264コードベースと同様に、一般的なクライアント/サーバーモデルはよく理解されており、x264コードの明確化を求めることは、x264 dev IRCチャネルに参加し、通常、キーセクションx264 Devまたは2つがそのコードセクションの動作に関するクエリに回答し、さらにx264(およびx262に基づく新しいMpeg2エンコーダーx262)に適合するように進化するコードを書き直す方法の実用的なアイデアを得ることもできます現在取り組んでいるx264ワールドクラスのフレームワーク)モデル。

したがって、もしあなたの開発者が品質と職業の32/64ビットx264分散ビデオエンコーディングの将来のためにあなたができる最善のことはこれらの必要な基本的なクライアント/サーバーパッチを実際に書くことですx264の1つのインスタンスまたは別のWeb/GUIアプリインターフェイスを作成したこの新しいクライアント/サーバーx264 APIコードで作成し、1つの個別のエンコードセクションをアクティブに検索して割り当て、その場で渡すあなたが書いた新しい一致するマネージドx264クライアントコードへのビデオ。

新しいクライアント/サーバーの真に分散されたエンコードベースパッチは、テストされ使用されるDoom10.org/index.php?action=unread

、x264開発者が好むように思われることが1つあるため、既存の低速なCコードを使用して、最適化されたバージョンをセクションごとに記述しますが、実際に(パッチ歓迎)実際のベータコードを最初に送信する必要があります。最新のブランチOC

x264が10ビットの深度エンコーディング機能を備えているため(つまり、高品質の高、高10、高4:2:2 Hであるため)、これらのx264サーバーを多くのx264クライアントパッチにコード化する努力を実際に行う必要があります。 264の計算集中型プロファイルは、x264を追加すると誰でも無料で利用できるようになりました。

すぐにアセンブリでスピードを最適化する http://mailman.videolan.org/pipermail/x264-devel/2010-October/007858.html

しかし、単一の8コアマシンでも、1080Pで妥当な時間内に最高品質の出力を提供するのに苦労し、すぐに2Kおよび4K超高解像度など、分散x264/H.264ネイティブエンコードオプションの設定と使用が本当に簡単なのは、パッチを1つか2つ離してください。

あなたの開発者なら、待ってはいけません、今日それをしてください。

1

少々やり過ぎの提案かもしれませんが、Rhozet Carbon Serverは、あなたが説明した作業のために複数のCarbon Coderインスタンスをまとめることができます。

Rhozet CarbonサーバーのWebサイト

複数のCarbon Coderノードは、1つ以上のCarbonサーバーによって制御されるトランスコーディングファームとして構成できます。 Carbon Serverは、大量のトランスコーディングタスクの自動処理、Carbon Coderノードのサーバー制御のフェイルオーバー、ジョブの配布、ジョブの優先順位付け、負荷分散、FTP転送、ステータスの監視、ジョブの通知の管理を可能にします。

1
edusysadmin