diff --git a/experimental/app/src/main/java/io/devicefarmer/minicap/Main.kt b/experimental/app/src/main/java/io/devicefarmer/minicap/Main.kt
index 77aaee3..5ba2094 100644
--- a/experimental/app/src/main/java/io/devicefarmer/minicap/Main.kt
+++ b/experimental/app/src/main/java/io/devicefarmer/minicap/Main.kt
@@ -45,6 +45,7 @@ class Main {
                     Pair(p, elem)
                 } else {
                     when (lastKey) {
+                        "-d" -> p.displayId(elem.toInt())
                         "-n" -> p.socket(elem)
                         "-P" -> p.projection(elem)
                         "-Q" -> p.quality(elem.toInt())
@@ -55,10 +56,11 @@ class Main {
             }.first.build()
 
             provider = if (params.projection == null) {
-                SurfaceProvider()
+                SurfaceProvider(params.displayId)
             } else {
                 params.projection.forceAspectRatio()
                 SurfaceProvider(
+                    params.displayId,
                     Size(
                         params.projection.targetSize.width,
                         params.projection.targetSize.height
@@ -138,7 +140,8 @@ class Parameters private constructor(
     val socket: String,
     val quality: Int,
     val displayInfo: Boolean,
-    val frameRate: Float
+    val frameRate: Float,
+    val displayId: Int
 ) {
     data class Builder(
         var projection: Projection? = null,
@@ -146,7 +149,8 @@ class Parameters private constructor(
         var socket: String = "minicap",
         var quality: Int = 100,
         var displayInfo: Boolean = false,
-        var frameRate: Float = Float.MAX_VALUE
+        var frameRate: Float = Float.MAX_VALUE,
+        var displayId: Int = 0
     ) {
         //TODO make something more robust
         fun projection(p: String) = apply {
@@ -165,6 +169,7 @@ class Parameters private constructor(
         fun quality(value: Int) = apply { this.quality = value }
         fun displayInfo(enabled: Boolean) = apply { this.displayInfo = enabled }
         fun frameRate(value: Float) = apply { this.frameRate = value }
-        fun build() = Parameters(projection, screenshot, socket, quality, displayInfo, frameRate)
+        fun displayId(value: Int) = apply { this.displayId = value }
+        fun build() = Parameters(projection, screenshot, socket, quality, displayInfo, frameRate, displayId)
     }
 }
diff --git a/experimental/app/src/main/java/io/devicefarmer/minicap/provider/BaseProvider.kt b/experimental/app/src/main/java/io/devicefarmer/minicap/provider/BaseProvider.kt
index 0b59af4..8612c21 100644
--- a/experimental/app/src/main/java/io/devicefarmer/minicap/provider/BaseProvider.kt
+++ b/experimental/app/src/main/java/io/devicefarmer/minicap/provider/BaseProvider.kt
@@ -24,6 +24,7 @@ import android.util.Size
 import io.devicefarmer.minicap.output.DisplayOutput
 import io.devicefarmer.minicap.output.MinicapClientOutput
 import io.devicefarmer.minicap.SimpleServer
+import io.devicefarmer.minicap.utils.DisplayManagerGlobal
 import org.slf4j.LoggerFactory
 import java.io.OutputStream
 import java.io.PrintStream
@@ -36,7 +37,7 @@ import java.nio.ByteBuffer
  * and sends the results to an output (could be a file for screenshot, or a minicap client receiving the
  * jpeg stream)
  */
-abstract class BaseProvider(private val targetSize: Size, val rotation: Int) : SimpleServer.Listener,
+abstract class BaseProvider(private val displayId: Int, private val targetSize: Size, val rotation: Int) : SimpleServer.Listener,
     ImageReader.OnImageAvailableListener {
 
     companion object {
diff --git a/experimental/app/src/main/java/io/devicefarmer/minicap/provider/SurfaceProvider.kt b/experimental/app/src/main/java/io/devicefarmer/minicap/provider/SurfaceProvider.kt
index a9f9e96..32de3e1 100644
--- a/experimental/app/src/main/java/io/devicefarmer/minicap/provider/SurfaceProvider.kt
+++ b/experimental/app/src/main/java/io/devicefarmer/minicap/provider/SurfaceProvider.kt
@@ -34,8 +34,8 @@ import kotlin.system.exitProcess
  * Provides screen images using [SurfaceControl]. This is pretty similar to the native version
  * of minicap but here it is done at a higher level making things a bit easier.
  */
-class SurfaceProvider(targetSize: Size, orientation: Int) : BaseProvider(targetSize, orientation) {
-    constructor() : this(currentScreenSize(), currentRotation())
+class SurfaceProvider(displayId: Int, targetSize: Size, orientation: Int) : BaseProvider(displayId, targetSize, orientation) {
+    constructor(display: Int) : this(display, currentScreenSize(), currentRotation())
 
     companion object {
         private fun currentScreenSize(): Size {
@@ -54,7 +54,7 @@ class SurfaceProvider(targetSize: Size, orientation: Int) : BaseProvider(targetS
     private val handler: Handler = Handler(Looper.getMainLooper())
     private var display: IBinder? = null
 
-    val displayInfo: DisplayInfo = currentDisplayInfo()
+    val displayInfo: DisplayInfo = DisplayManagerGlobal.getDisplayInfo(displayId)
 
     override fun getScreenSize(): Size = displayInfo.size
 
diff --git a/experimental/app/src/main/java/io/devicefarmer/minicap/utils/DisplayManagerGlobal.kt b/experimental/app/src/main/java/io/devicefarmer/minicap/utils/DisplayManagerGlobal.kt
index a61800f..bc0b770 100644
--- a/experimental/app/src/main/java/io/devicefarmer/minicap/utils/DisplayManagerGlobal.kt
+++ b/experimental/app/src/main/java/io/devicefarmer/minicap/utils/DisplayManagerGlobal.kt
@@ -54,4 +54,13 @@ object DisplayManagerGlobal {
             throw AssertionError(e)
         }
     }
+
+    fun getDisplayIds(): IntArray {
+        return try {
+            displayManager!!.javaClass.getMethod("getDisplayIds")
+                .invoke(displayManager) as IntArray
+        } catch (e: Exception) {
+            throw AssertionError(e)
+        }
+    }
 }
diff --git a/package.json b/package.json
index 6eb0b50..27fcbfc 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@devicefarmer/minicap-prebuilt",
-  "version": "2.7.0",
+  "version": "2.7.1",
   "description": "Prebuilt binaries of minicap.",
   "keywords": [
     "minicap"