2016-04-22 3 views
0

私はビデオを表示するためのlibとして処理(3.0.2)を使用しようとしています。下の私のメインクラスの始まりを見ることができます。私はMavenを使ってコマンドラインで実行するfat .jarをビルドしています。プログラムは実行され、フリーズせず、終了することができますが、ビデオはありません...(下のスクリーンショット)問題は完全に静かに起こります。警告もクラッシュもありません。スタンドアロンプ​​ログラムの処理に関するサイレント実行のバグ

ビデオファイルを削除すると、ビデオファイルが削除されるため、ビデオファイルが見つかったと確信しています(RuntimeException)。

編集:いいえ、ファイルは見つかりましたが、フレームは見つかりませんでした。プログラムが非ゼロのフレームを見つけようとしています。

編集2:実際にはGStreamerの問題です。明らかに、ProcessingはGStreamer 1.x系統をサポートしていません。説明したGStreamer 0.1xをherehereのようにインストールすると、残念ながら私のためにはうまくいきませんでした。

編集3:(下記のコード)の基本的な例をしようと、私はdraw()方法であるがMovie.read()方法は、トリガされないことを見ます。それでもエラーや警告はないので、ライブラリの問題だと思います。 興味深いことに、この非常に同じコードは、処理IDEから.pdeとして実行されたときに完全に機能するため、そこにはライブラリが不足している必要があります。任意のアイデア??

私の依存関係:

  • core.jar
  • video.jar
  • jna.jar
  • のgstreamer-java.jar

システム:Ubuntuの14.04 LTS、は、Java HotSpot (TM)64ビット・サーバーVM(Javaバージョン "1.8.0_77")、処理IDEを介してインストールされたビデオ・ライブラリーを含む処理3.0.2。


import processing.core.PApplet; 
import processing.video.*; 

public class TestMovie extends PApplet{ 

    Movie myMovie; 

    public static void main(String[] args){ 
     PApplet.main(TestMovie.class.getName()); 
    } 

    public void settings(){ 
     size(720, 480, FX2D); 
    } 

    public void setup() { 
     //background(0); 
     try{ 
      myMovie = new Movie(this, "red_45deg_284sec_500ml.mpg"); 
     }catch(Exception e){ 
      System.out.println(e.getMessage()); 
     } 
     myMovie.loop(); 
    } 

    public void draw() { 
     image(myMovie.get(), 0, 0); 
     System.out.println("I'm drawing!"); 
    } 

    // Called every time a new frame is available to read 
    void movieEvent(Movie m) { 
     try{ 
     m.read(); 
     }catch(Exception e){ 
      System.out.println(e.getMessage()); 
     } 
     System.out.println("new frame!"); 
    } 
} 
+0

は動作が期待されているように見える次のようにMovie.available()を使用すると、それを解決しましたその代わりにビデオ(少なくともコードはこのように見える)を表示します。 – Tom

+0

@Tomこれは、インターレースのために大きなスナップショットを1つ表示し、4つの小さな「スクリーン」がインターレース解除されたフレームを表示するためです。 – Raoul

答えて

0

何のイベントはありませんので、だから、私は最終的に映画再生を持って、それが最も可能性の高い、movieEvent()が実行されない、いくつかの神秘的な理由で...すべての後に、ライブラリの問題ではないようですトリガーされた。あなたはそれから単一の画像を抽出し、その後、あなたがサイズ(0,0)をしていない最初のフレームまでのビデオを読んでいると:

public class TestMovie extends PApplet{ 

    Movie myMovie; 

    public static void main(String[] args){ 
     PApplet.main(TestMovie.class.getName()); 
    } 

    public void settings(){ 
     size(720, 480, FX2D); 
    } 

    public void setup() { 
     //background(0); 
     try{ 
      myMovie = new Movie(this, "red_45deg_284sec_500ml.mpg"); 
     }catch(Exception e){ 
      System.out.println(e.getMessage()); 
     } 
     myMovie.loop(); 
    } 

    public void draw() { 
     if (myMovie.available()) { 
      myMovie.read(); 
      } 
      image(myMovie, 0, 0); 
    } 
} 
関連する問題