Receiving video stream from an IP camera on android

前端 未结 2 1542
失恋的感觉
失恋的感觉 2021-02-08 21:20

I have an IP camera which is streaming video in MJPEG format. Now my aim is to receive it and display it in my own custom android app. For this I have three programming alternat

2条回答
  •  梦如初夏
    2021-02-08 21:48

    To test 3rd option (gstreamer) you can use this app: https://play.google.com/store/apps/details?id=pl.effisoft.rpicamviewer2. You can also open gstreamer preview from your code using following code:

    Intent intent = new Intent("pl.effisoft.rpicamviewer2.PREVIEW");
    int camera =0;
    
    //--------- Basic settings
    intent.putExtra("full_screen", true);
    
    intent.putExtra("name"+camera, "My pipeline name");
    intent.putExtra("host"+camera, "192.168.0.1");
    intent.putExtra("port"+camera, 5000);
    intent.putExtra("description"+camera, "My pipeline description");
    intent.putExtra("uuid"+camera, UUID.randomUUID().toString() );
    intent.putExtra("aspectRatio"+camera, 1.6);
    intent.putExtra("autoplay"+camera, true);
    
    //--------- Enable advanced mode
    intent.putExtra("advanced"+camera, true);   //when advanced=true, then     custom_pipeline will be played
                                            //when advanced=false, then pipeline will be generated from host, port (use only for backward compatibility with previous versions)
    intent.putExtra("custom_pipeline"+camera, "videotestsrc ! warptv ! autovideosink");
    
    //--------- Enable application extra features
    intent.putExtra("extraFeaturesEnabled"+camera, false);
    
    //--------- Add autoaudiosink to featured pipeline
    intent.putExtra("extraFeaturesSoundEnabled"+camera, false);
    
    //--------- Scale Video Stream option
    intent.putExtra("extraResizeVideoEnabled"+camera, false);
    intent.putExtra("width"+camera, 320);       //used only when extraResizeVideoEnabled=true
    intent.putExtra("height"+camera, 200);      //used only when extraResizeVideoEnabled=true
    
    //--------- Add plugins
    ArrayList plugins = new ArrayList();
    intent.putExtra("plugins"+camera, plugins);
    
    intent.setPackage("pl.effisoft.rpicamviewer2");
    startActivityForResult(intent, 0);
    

提交回复
热议问题