Beiträge von jeckyll

    Hi, just tested your app on my Shield pro, really great work.
    i was missing ambilight since i got my shield.
    I tested with hyperion-ng is it also compatible with the old hyperion?
    IMO the black detection (not blackborder) was better in the old hyperion, or does anyone know where the black threshold is gone in NG?

    The phone I used for the videos was rooted maybe that's the point, so for now maybe static color on amazon / Netflix and ambilight for the rest. Since I got my shield also, games, zatoo and so on works

    Try to manual set the display res in run.sh for ex.: 1080x1920@1080x1920/0
    First res is the real screen res, second ist the virtual minicap will output.


    -P 1080x1920@1080x1920/0 should also work
    i had the best results with a lowered output resolution


    They gave a great documentation about the binary format, so i think this would be the way to go

    Hello,
    I received my shield today and installed the Hyperion plug-in.


    I can not start it and I do not understand where to put the configuration file "hyperion.config.json" on Android device ?!


    thank you in advance for your help


    For the moment you need an extra device like a raspberry in combination with android
    ATM just Nvidia Shield-->Kodi-->Hyperion Plugin and RPI / Linux PC with hyperion and the config in /etc/hyperion

    I know for sure, because I use vysor from time to time via network adb.


    THX
    Chaos


    So we can say:


    Most set top Boxes like Nvidia Shield / Fire TV
    Android Phones
    Android TVs


    all have adb on board, so theres a good chance that minicap also works on them.
    That would give us a great way to get the screen from Android based devices and use them on hyperion
    Especially for people using 4K Tvs, cause no more expensive grabbers would be needed and no problems with HDR / CEC and so on


    Another great thing on minicap is that is can resize the output image to reduce load and bandwith

    For anyone who want's to check if at least adb (android debugging bridge) is working with your target device, here is what you need to do:


    1: You need an android based device
    2: Install the adb drivers and tools
    ,either via https://developer.android.com/studio/index.html or manual (look on xda-developers.com)
    3: enable USB debugging on the device.
    Go to settings, info, software identity, more
    tap the build-number several times fast (8-10 times) go back to settings and click on developer options, tick on USB debugging.


    Connect the device to your pc.


    Open a terminal and type adb shell
    And you should land on shell on the device


    For trying over LAN/WiFi also do:
    adb tcpip 5.5.5.5
    adb connect ip-of-device:5.5.5.5


    If this works please report back with
    -device name
    -software version
    -rooted?

    it should, the shield for example also has adb on board. In theory it should also work via wireless adb.


    @TPmodding
    You can try going in settings, find the build number and click several times on it. After that you should have a new entry called developer options, there you can enable debugging.

    Netflix works also, i will post a video i took of the capture so you can see the speed (i did with stf which is also based on minicap)


    Netflix:
    [MEDIA=streamable]jxf29[/MEDIA]


    Amazon:
    [MEDIA=streamable]bzwz7[/MEDIA]


    Don't know about 4k but i think 1080p is better than nothing and would fit for most people

    So here are some testing results:


    On my Laptop with Ubuntu 16.04 i compiled minicap as described here:
    https://github.com/openstf/minicap


    I need to set the resoulution by hand as autodetection didn't worked on my One M8 (change the arg line in run.sh)


    Now i'm able to get the binary output of the screen on terminal via
    nc localhost 1313 in the following format: (taken from Minicap Readme)


    It is assumed that you now have an open connection to the minicap socket. If not, follow the instructions above.


    The minicap protocol is a simple push-based binary protocol. When you first connect to the socket, you get a global header followed by the first frame. The global header will not appear again. More frames keep getting sent until you stop minicap.


    Global header binary format
    Appears once.


    Bytes Length Type Explanation
    0 1 unsigned char Version (currently 1)
    1 1 unsigned char Size of the header (from byte 0)
    2-5 4 uint32 (low endian) Pid of the process
    6-9 4 uint32 (low endian) Real display width in pixels
    10-13 4 uint32 (low endian) Real display height in pixels
    14-17 4 uint32 (low endian) Virtual display width in pixels
    18-21 4 uint32 (low endian) Virtual display height in pixels
    22 1 unsigned char Display orientation
    23 1 unsigned char Quirk bitflags (see below)
    Quirk bitflags
    Currently, the following quirks may be reported:


    Value Name Explanation
    1 QUIRK_DUMB Frames will get sent even if there are no changes from the previous frame. Informative, doesn't require any actions on your part. You can limit the capture rate by reading frame data slower in your own code if you wish.
    2 QUIRK_ALWAYS_UPRIGHT The frame will always be in upright orientation regardless of the device orientation. This needs to be taken into account when rendering the image.
    4 QUIRK_TEAR Frame tear might be visible. Informative, no action required. Neither of our current two methods exhibit this behavior.
    Frame binary format
    Appears a potentially unlimited number of times.


    Bytes Length Type Explanation
    0-3 4 uint32 (low endian) Frame size in bytes (=n)
    4-(n+4) n unsigned char[] Frame in JPG format




    Seems very fast and also works on Amazon video app and every app i tried


    So i think what we need is:


    A hyperion module which utilizes minicap for getting the Screen Data from an Android device an send the output to hyperion, as minicap is already Android 7.1 compatible this should give us a good way of capturing the screen on many devices.


    The great is that it works without root an that frames are only send if there are changes, no changes no new frames


    AFAIK this would be the only possible method for getting screen data from Android devices since local installed apps won't have access to the screen data (except you're rooted)


    Now the bad, i'm no developer so i'm unable to do by myself, but i'm allways willing to help, test or debug




    So, why minicap?
    The Android own screencap function for adb is way too slow, we would only get 1 frame every few seconds, not enough for hyperion. And why not use an existing method if available?


    My Shield pro arrives tomorrow and then i check if it also works