2014-12-29 67 views
4

我正在研究一個需要使用Gstreamer一次播放多個RTSP流的應用程序, 它正在單流處理正常,因爲我添加第二個流,第一個流停止並且第二次開始播放,幾秒鐘後,它也停止並應用程序崩潰。Gstreamer一次不播放多個流

這裏是APP的截圖流視圖 APP screenview

,當應用程序崩潰這張截圖

app crash screen

我有更新Gstreamer.framework,搜索和嘗試不同的solutions.but毫無效果

這裏是我的代碼示例流水線

#import "VideoViewController.h" 
#import "GStreamerBackend.h" 
#import <UIKit/UIKit.h> 

@interface VideoViewController() { 
    GStreamerBackend *gst_backend; 
    GStreamerBackend *gst_backend1; 
    int media_width;    /* Width of the clip */ 
    int media_height;    /* height ofthe clip */ 
    Boolean dragging_slider;  /* Whether the time slider is being dragged or not */ 
    Boolean is_local_media;   /* Whether this clip is stored locally or is being streamed */ 
    Boolean is_playing_desired;  /* Whether the user asked to go to PLAYING */ 
} 

在viewDidLoad中:

url1= my first url 
url2=my second URL 

這裏我初始化我2流。

gst_backend = [[GStreamerBackend alloc] init:self videoView:video_view]; 

gst_backend1 = [[GStreamerBackend alloc] init:self videoView:video_view1]; 

此委託方法被稱爲:

-(void) gstreamerInitialized 
{ 

     dispatch_async(dispatch_get_main_queue(), ^{ 
      firstInit=YES; 
      play_button.enabled = TRUE; 
      pause_button.enabled = TRUE; 
      message_label.text = @"Ready"; 
      [gst_backend setUri:uri]; 
      [gst_backend1 setUri:uri2]; 
      //is_local_media = [uri hasPrefix:@"file://"]; 
      //is_playing_desired = NO; 

      [gst_backend1 play]; 
      [gst_backend play]; 
     }); 

} 

我認爲問題是在搜索路徑。 enter image description here

enter image description here

+0

我不知道很多關於iOS的實施的GStreamer,但要牢記Linux實施的一點是每個進程只能有一個管道。也許您需要使用比GStreamerBackend更低級別的東西來創建兩部分管道?但是,你必須考慮解碼元素可能不容易支持兩個同時解碼... – mpr

+0

如果你有輸出流的控制權,另一個需要考慮的事情是你可以讓應用程序將它們包裝起來,並將它們重新編碼爲單一流到您的iOS設備。 – mpr

回答

2

您使用的GStreamer哪個版本的?我記得前一段時間修復正是錯誤,你可以在這裏找到關於它的詳細信息:https://bugzilla.gnome.org/show_bug.cgi?id=720421

最好是使用從這裏最新的二進制文件:http://gstreamer.freedesktop.org/data/pkg/ios/1.4.5/

+0

thankx @Sebastian Droge爲你回答,iam使用「gstreamer-sdk-devel-2013.6-ios-universal」,當我用其他一些heigher bulid/binary更新時,gestreamer停止與其他一些erros一起工作。 – Logic

+0

我正在閱讀由你提供的鏈接,如果我面臨任何困難,我會問你,你已經解決了這個問題,謝謝你的隊友。 – Logic

+1

你看到了哪些其他錯誤? GStreamer 1.x與0.10相比略有不同(這是「2013.6」的基礎)。 但請注意,GStreamer 0.10自2年多以來不再維護和過時。 –