2011-08-12 19 views
1

2つのIPアドレスを2つのカメラにリンクしています。私は1つのIPアドレスをストリームすることができます。あるカメラから別のカメラに切り替える必要があるので、パイプライン内のソースをあるIPアドレスから別のIPアドレスに変更する必要があります。 gstreamerプラグインを使用してそれを達成する方法はありますか?またはコマンドラインで?これを行うことができるアプリケーションはありますか?カスタムアプリケーションを作成する必要がありますか?IPソースをリアルタイムでgstreamerパイプラインに変更する

答えて

1

カスタムアプリケーションを作成する必要があります。

どちらのカメラからのストリームでも何をするのかは不明です。あなたが今それを表示していると仮定しよう。

カメラ用のソース要素とデコード用のdecodebin要素でビンを作成します。

パイプラインを一時停止し、sourceとdecodebinをrenmoveし、新しいipを2つ追加して、新しいipを追加して一時停止に設定する場合。

次に、パイプライン全体を再生するように設定します。

カメラのタイプが同じ場合は、1つのソースエレメントを再利用することができますが(NULLまたはREADYを先に行っています)、デコーダを捨てて再作成するほうがよいでしょう。

1

gstreamer-javaを使用していると仮定した場合のリストです。要件に合わせてこれを変更する必要があります。あなたの場合、dest_bin_new、dest_bin_oldの代わりにsrc_bin_new、src_bin_oldが必要です。以下の機能が変更されますが、これによりアイデアが得られます。

private static void dynamic_bin_replacement(Pipeline pipe, Element src_bin, Element dst_bin_new, Element dst_bin_old) { 
    pipe.pause(); 
    src_bin.unlink(dst_bin_old);      
    pipe.remove(dst_bin_old); 
    pipe.add(dst_bin_new); 
    dst_bin_new.syncStateWithParent(); 
    src_bin.link(dst_bin_new); 
    pipe.ready();      
    pipe.play(); 
} 

また、次のポストhttp://gstreamer-devel.966125.n4.nabble.com/Adding-new-tee-src-d-to-a-running-pipeline-td2304488.htmlを見て(そのページの最後のポストを参照してください)

関連する問題