Using Tronsmart Pavo M9 for HDMI input streaming

Thanks to a tip of my reader, I found a relatively cheap (69Eur) Android box with HDMI input and record ability. I thought that it should be possible not only to record the HDMI input but also to stream it in realtime so I ordered one for experimenting.

Disassembly

The device came without any box, just in bubble foil but it doesn’t matter to me if it keeps the cost low. You can find functional review of the device on cnx-linux page.IMG_20151205_092111

IMG_20151205_092120

Bottom side of PCB:

IMG_20151205_103039

Upper side with heatsink:

IMG_20151205_103250

Upper side without heatsink:

IMG_20151205_104256

As you can see from the pictures, device uses MSO9180D1R SoC for which I couldn’t find any datasheet. The traces from HDMI input go directly to the SoC which is a good sign, that the signal is not converted to analog form (at least outside the SoC).

First steps

HDMI recording app is available directly from main menu and offers recording in MP4 or TS (mpegts) format, both with H264 video and AAC audio. MP4 format is not suitable for streaming (at least not until the recording is finished) because the metadata of file is written only after the recording is finished. On the other side, TS is ideal for streaming because data is segmented into properly formated 188bytes packets.

To gain shell access, I installed SSH Server from Google Play which worked without any problems. After connecting, I was easily able to gain root access to device because the devices comes pre-rooted from factory.

$ ssh danman@10.0.0.116 -p60722
The authenticity of host '[10.0.0.116]:60722 ([10.0.0.116]:60722)' can't be established.
DSA key fingerprint is 12:45:aa:63:e9:c2:20:f0:e2:f9:dc:0a:b4:25:95:b8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[10.0.0.116]:60722' (DSA) to the list of known hosts.
danman@10.0.0.116's password:
u0_a58@lemon:/ $ su
root@lemon:/ #

Ok, let’s see what do we have here:

root@lemon:/ # cat /proc/cpuinfo                                               
Processor    : ARMv7 Processor rev 1 (v7l)
processor    : 0
BogoMIPS    : 2189.31

processor    : 1
BogoMIPS    : 2189.31

processor    : 2
BogoMIPS    : 2189.31

processor    : 3
BogoMIPS    : 2189.31

Features    : swp half thumb fastmult vfp edsp neon vfpv3 tls
CPU implementer    : 0x41
CPU architecture: 7
CPU variant    : 0x4
CPU part    : 0xc09
CPU revision    : 1

Hardware    : napoli
Revision    : 0020
Serial        : 0000000000000000

First stream

Ok, my goal was to stream live from HDMI so I thought it might be possible to just pipe tail of recorded TS file to network (preferably multicast) and see if it works. So I installed BusyBox Free from Google Play (to get nc utility). It showed up, that nc from busybox supports only TCP connections (and of course the segmentation to TS packets won’t be good) so this will not be a way.

After a while, ffmpeg came to my mind: you can specify output packet sizes there and in general it’s designed exactly for streaming/encoding and I have seen it used on Android before. So I googled ffmpeg precompiled binary, downloaded it and put it on my USB key to run it from shell.

First, I started VLC on my computer like this:

vlc udp://@239.255.0.1:1234

Then I started recording in “HDMI IN” application (which created recording file in /sdcard/HdmiRecorder/video20151227161832.ts) and then run ffmpeg in device shell:

./ffmpeg -re -i HdmiRecorder/video* -vcodec copy -acodec copy -f mpegts udp://239.255.0.1:1234

The result is here:

first-ffmpeg

The stream played correctly. Great!

But when I stopped vlc, and tried to join the stream again, vlc was unable to start decoding video (audio was playing fine). I did a short analysis of the .ts file and found out, that it contains h264 metadata (SPS, PPS, more on this here) only in the beginning of the file and if these are not received by vlc, it doesn’t know how to decode the h264 bitstream.

Screenshot from 2015-12-13 17:02:30I tried to to experiment with option

-bsf:v h264_mp4toannexb

but it was throwing some strange errors. I also tried to compile latest ffmpeg on my own (from https://github.com/WritingMinds/ffmpeg-android-java ) but it didn’t help, so I took it from another end: I tried to decompile the application.

Analyzing recording application

In Android, all apps are stored as .apk files in system folder. HDMI IN recording app is not an exception (/system/app/ZidooRecord.apk), so I downloaded it to my computer and decompiled it using http://www.decompileandroid.com/ (great tool, thanks to the author).

After some reading of the code and googling, I found out, that zidoo (maker of the app) has user forum and even more, they provide sources of this app on github (https://github.com/zidootech/zidoorecorder) !

Side note: To avoid confusion here, Zidoo X9 is product from Zidoo company built on top of the same HW platform from company called Mstar who developed the SoC. So Tronsmart is the same HW platform with the same software just sold under other name/company.

Those github sources include binary library integrated with Android using NDK which allows recording from HDMI. The binary is very briefly documented and sources are available only to distributors with signed NDA so I have struggled with cutting the sources to minimum and compiling it myself. But finally I succeeded building my own recording app. https://github.com/danielkucera/ZidoStreamer

I was hoping that I’ll be able to change the recording format so it contains correct extradata before each keyframe but it wasn’t possible (more info here). After start, my app  successfully started recording to file and started ffmpeg which streamed it to network but this was little improvement compared to where I was with original app, I still had to catch the beginning of the stream otherwise the stream didn’t work. So I came back to experiment with ffmpeg.

Working ffmpeg command

After careful reading of ffmpeg documentation (https://www.ffmpeg.org/ffmpeg-bitstream-filters.html#dump_005fextra) and some experimentation I found a command which makes working stream:

tail -f -c 1000000000 HdmiRecorder/* | ./ffmpeg  -i - -vcodec copy -acodec copy -bsf:v dump_extra -f mpegts udp://239.255.0.1:1234

The point is: tail starts to read recorded file from beginning (-c 1000000000) and keeps reading on (-f) while piping to ffmpeg which reads from stdin (-i -), create correct extradata before each keyframe (-bsf:v dump_extra – this is the key!) and stream to network as mpegts stream (-f mpegts udp://239.255.0.1:1234)

What we have now and where we go

So for now, we have a working android app that starts recording from HDMI input using proprietary binary and working ffmpeg command to create playable stream.

My target is to create app which will be able to start recording without that binary (it should be possible according to some tests I did), set different bitrates/resolutions, omit the recording to file (use just fifo file to avoid flash memory speed bottleneck and limited size – done some successful tests, just need to fix bugs) and allow different output stream types, e.g. rtmp, udp mpegts unicast, tcp mpegts unicast, rtp etc. (this all can be handled by ffmpeg, just needs to be correctly setup). So for now, I have “proof-of-concept” and a plan.

If you are interested in this or want to help, feel free to comment, fork, push commits, whatever.

Bye for now, watch my blog/repo for progress report.

117 thoughts on “Using Tronsmart Pavo M9 for HDMI input streaming”

  1. Hi danman,
    great article.
    It is very helpful that you are describing the way, how did you come to the conclusion.
    I am very interested in the target app.
    When you put in on google app store, i would buy it. 🙂
    There are many users who want to have such an app.
    Because, timeshift is not possible with the zidoo app.
    And with a stream, i can stream to my htpc and use for example kodi and a timeshift plugin.
    Alternatively: it is possible to stream to 127.0.0.1 and then use timeshift with the installed version of Kodi and a timeshift plugin on the box or is the box too slow ? (So that the app works in background?)
    Nice greetings André Lehrmann

  2. Hi,
    this sounds very interesting.
    With your modified zidoostreamer, is HdmiRecorder/* the stream from when you start the streamer?
    So when you pipe that into ffmpeg, ffmpeg will start streaming it from the beginning of that ‘recording’, rather than ‘live’ what is coming in through the HDMI, or am I seeing that wrong?

    1. with tail, it quickly reads the whole file and dumps it to network through ffmpeg and then waits for new data and sends them as soon as they arrive, so the stream is shifted as little as possible

  3. Hi

    thanks for the post. I didn’t know the devices that could do recording from hdmi got this cheap.
    Just ordered one for myself.
    I’m not an expert at this but looking at your pastebin dump it looks likes the hdmi in registers as “Linux video capture interface: v2.00”.
    This should mean that you don’t need the recording app and can directly use ffmpeg “ffmpeg -i /dev/video0” to grab the video from the input.
    Most likely there won’t be any audio but this can be fixed with “ffmpeg -f alsa -i hw:0,0 -f v4l2 -i /dev/video0”

    Hope this helps

    1. @rbhawk @danman

      I have the X9S (zidoo), which doesn’t have the /dev/video0 device but it does have a /dev/video250. After more investigation in the filesystem (/sys/devices/virtual/video250 etc) it seems that that is the input device.

      However, using ffmpeg in Termux I can’t access the device as it seems that it’s a build without v4l2 support.

  4. Excellent thanks, just decided my next toy purchase.

    Next cool feature would be an Ambilight decoder for the HDMI input which plays nicely with software that does similar in Kodi?

  5. Images don’t show up because the default entry into the site redirects to https:// version but the image URLs are hard-coded to plain http, so won’t display. Once you’re in the site just remove the ‘s’ from the https and all is good, which confirms.

  6. Have you tried streaming the ts files with mplayer. I think you probably wouldn’t have to do the workaround using mplayer.

    Reason:
    While doing a project a couple years ago, I found ffmpeg terrible for streaming, but mplayer was fantastic for reading, recording, and playing ts streams.

  7. Is there anyway to make this output via a dlna server?

    Means I could watch live TV upstairs without needing extra cabling

  8. Do you know if there is any delay between the input and output streams? I would love to use this as an easy recorder for my computer but I do not want any additional delay between my desktop and monitor.

    So it would be sit between my desktop and monitor. And record/output to either network or a separate attached drive. What I am looking for is 0 lag. I know that might be a tall order.

  9. Could you use this to capture video from a dslr with hdmi out, process the video in an opencv application (preferably loaded on the set top box), and output the results streaming over a wifi network?

        1. Thank you for your post!
          A friend just linked me to the device on the ebay and then linked me to your post about it. I happened to catch your youtube live stream just now while it was online and it ran great at 1080p!
          Though I’m curious if you have any thoughts on streaming from a Windows machine through the Pavo M9 device to Twitch.tv?

        2. Looks good. Will grab one later on in the week.

          Is there any way that the box can add content to the stream, or is it directly encoding from the HDMI input with no opertunity to do overlay graphics and text or similar to the stream?

  10. cool! I have been reading the source code of the zidoo recorder… I want to add recurring scheduling to it and eventually adding streaming.. It’s cool to see you have made a lot of progress and you seem to have much more experience with streaming than me .. will follow the progress of the zidoo streamer and will try to contribute if I find something interesting

    I just need to wait for my pavo m9 to arrive.

    1. and yesterday I made it possible to record with native Android classes so you don’t need to init recording with jni library and you can set many more parameters in MediaRecorder class.

  11. hi, many thanks! for your post and basic insides of this little gadget. I have successfully used two of these boxes as a user-simple solution to stream live HD videos across the network. After some hacking and testing i have managed to stream in the real time without need of ffmpeg nor any other natives .. just regular MediaRecorder, MediaPlayer and java. In essence the transmitter (MediaRecorder) is providing the encoded TS data to the receiver (MediaPlayer) using extremely lightweight http-like server, where the receiver is “downloading” the A/V file of a infinite length.

  12. hi, in english for other public out there. The application is working prototype and “as is”. After launch, there are two options to choose: Transmit and Receive. Click Transmit from where you want to stream and click Receive where you want to view live stream. After that, applications will automatically negotiate and establish network connection and start playback when located in the same network. Sources here: http://uloz.to/xsivHBrj/videobox-2016-02-14-zip

    enjoy 😉

    1. Hi Tomas, Danman! Great work! Thanks to you both!!! Here is few questions:
      to Danman: will you rewrite code as Tomas offer? With using internal android class, without no need of ffmpeg? Is it possible? Also, could you add ONVIF support, so another devices could simple find our little broadcaster and gets picture from it?

      to Tomas: the app work like a charm, but is it possible to add buffer length changing control? Then i can’t install this apk to android 4.4 and 5.0 smartphones, but it installed correctly on android stick with 4.1.2, where could be a problem?
      Is this app support multiply receivers? Also, how could i get stream on another devices? For example, winPC or Mac? Is there VLC string to show it up?

      Thanks in advance for your great help!

      1. P.S.: Could you place VideoBox sources to github too?
        And how about h.265/hevc? As i see from specs, our box support decode of this codec only? Or encodig also supported?

      2. Hello, this app was not ment to be working end-user software solution. I have created this piece of software in order to explore capabilities of the Pavo M9, to live stream A/V media acquired from the HDMI input over the local network. The provided sources in the given form are highly deppendent on the Pavo M9 HW/SW platform .. at least for recording.

        The app may not be possible to install to another Android platforms due to missing built-in “android.uid.system” user account (defined in the app manifest), which is apparently required in order to reach the Pavo M9 HW.

        My requirements were to use as minimum buffering as possible (no delays), but yes, some extended buffering can be added. Same as the other app preferences, which are at this moment hardcoded. The A/V stream can be played using VLC or any other media player which supports network streaming at address: http://[pavo-m9-ip]:12345/

        At this time, only one host may connect to the streaming server. In theory, this may be possible to change, but this do require parsing of the A/V stream in order to properly initiate the streaming session when a host join in middle of the streaming (where the A/V stream no longer contains the metadata).

        Streaming is done using AAC/H264 codecs both packed in the MPEG-TS container, which is apparently the only easy format, that Android can record and play for network streaming see: http://developer.android.com/guide/appendix/media-formats.html

        You must understand, that the Android platform provide limited resources and possibilities to record and play the A/V content. Android by default does not provide any layer to transport the A/V content across the network. This is done using some “clever” exploitation of the http protocol. You can use some native helper applications (as the Danman did), but i wanted to avoid it.

        1. Hi Tomas,

          Thanks for the app and the work! just two comments on my side:
          first I do not why but the config does not open when I select it. Have you experienced the same?
          secondly, I can open the stream from VLC on my PC but I have another tv box from my internet provider and VLC does not have the option to define the stream to read. What other app could you advise me to read the stream from another tv box that is not the tronsmart?

          thanks for your help

          1. ok, for the stream player I answered myself: it works with MX player. I only have a small bug as a blinking strip appears under the image but it is still working well else

  13. Hello,

    Can somebody describe little bit more about how app can became working.
    Already I installed signed.apk to my Pavo m9. In application settings I found only option for (mp4 or ts) , address.
    I choose ts and udp://239.255.0.1:1234
    After that i try to connect with VLC but no success.

    Any siggestions ?

  14. Hello,

    There are no success with any multicast address. Until now I get some success only with ffmpeg, it’s play video and sound but there are frames stutter.

    My PC – VLC udp://@172.168.20.232:1239
    Pavo M9:
    HDMI IN start recording as TS
    ./ffmpeg -re -i HdmiRecorder/video* -vcodec copy -acodec copy -f mpegts udp://172.16.20.232:1239

    With ZidoStreamer I cannot get working with any address. Probably I missing something.

    This is what I’m doing

    Start VLC on my PC
    Start ZidoStreamer on Pavo M9 and click Menu Button on remote control , There I can see 2 settings: Video type and Streaming address. I chose TS for video and udp://239.255.0.1:1239 or udp://172.16.20.232:1239 . I tried with @ before the IP and there no difference.

    Any suggestions ?

  15. Hello Danman,

    Thank you very much for suggestion.
    I found the problem with logread, it was missing ffmpeg in /data/data/eu.danman.zidostreamer.zidostreamer/files/ffmpeg , after I copied ffmpeg binary , stream bacame working 🙂
    My question is can I modify quality to something low because it’s glitch when I’m using WiFI? Probably my WiFi is not good and streaming require more speed.
    When both devices are connected on LAN , picture is perfect.
    Another questing is can I use another protocols other than UDP:// and how I can do that. Currently I’m using udp://@172.16.20.232:1239

    1. Hi Dobril,

      glad to hear that. For now, the quality is hardcoded into app, but my plan is to make it adjustable in settings. You can theoretically use any type of output which is supported by ffmpeg. But for now also this cannot by set in settings, you would need to change it in code, but good point to change this also.

  16. I opened the project in Android Studio.

    in “StreamSercice” I found definitions:
    mMediaRecorder.setVideoSize (1920, 1080)
    ..Framebuffer
    …BitRate

    If I just modify these options , it will change resolution of captured video and I’ll need less bandwidth ?

  17. setVideoSize (1280, 720)
    Framebuffer (24)
    BitRate(2500 * 1024)

    Make double picture with some glitch :D.

    Can you suggest some values for low than full hd video.

  18. Hello Danman,

    Thank you for update.
    Is it possible in next update you to include option for screen resolution 🙂
    Another thing which I saw , after I exit from ZidoStreamer still I hear the sound from HDMI, it looks like the app not stops.

    Off topic: Does the WiFi working on your device, because after I made the upgrade to v1.0.3.07 it cannot start and show mac address 00:00:00:00:00:00 ?

  19. I have got this working, following these instructions.

    However my audio is distorted, in sync, but distored. Particularly worst on speech.

    Anyone else have this problem?

    1. Did you try lowering volume? Do you mean distorted or glitchy? What type of streaming are you using?

      1. Yes I tried to lower the volume, it seems to appear at all volumes.

        The FFMPEG command I am using is the one mentioned in your github:

        /mnt/sdcard/ffmpeg -i – -codec:v copy -codec:a copy -bsf:v dump_extra -f mpegts udp://[IP]:1234

        It is basically making a clicky noise, particularly on speech.

        I wonder if it is my FFMPEG precompiled binary.

        Is their any chance you could link the precompiled binary you used so I can rule that out?

        Thanks

          1. thanks danman! I will test tonight and see how it goes.

            If it does not work, ill record some of it to show you what I mean.

            And thanks so far for a great tutorial and all your time on this, its a really great tool for me to use.

    1. I didn’t notice it before, but so do I have the same distortion in recordings. And the original recording app also records with distortion. Maybe some system update can fix this. This seems to me like a HW/system bug.

  20. Hi Guys! Software by Danman and Thomas works well. In my opinion, you should merge their functionality in one app: give user too chose native or ext encoding type.
    There is a question: could it work in a background? Because when i click “home” button and run another app, it’s stops.
    Also, is h.265 capabilities in ffmpeg? Could it software encode hevc on our box smoothly?

  21. I have done a whole bunch of testing with this now. And it appears, that the audio distortion is baked into the device somehow.

    I upgraded my firmware to the latest version 1.4.

    I cannot live with slightly distorted audio, its just annoying!

    I noticed that even on some of the demo videos posted on the Zidoo website that the audio distortion is present.

    So I think I am going to return the device for a refund. Sadly.

  22. How can I get a piece of this device with HDMI IN streaming enabled. My demo requirement is that the device should be able to take HDMI IN from another STB or a camera and then stream out h.264 packets over RTMP OR RTSP OR HTTP to a WOWZA instance. I should then be able to view the video by accessing the WOWZA URL on any client machine.

    1. You can go buy one and install my app as described on github page. Wowza shoud work fine with rtmp output from this device. Let me know if it works for you. But notice, there are still some issues with sound distortion. I hope, the producer will fix this with firnware update.

      1. Will your APK and library work as it is on ZIDOO X9 based on A9 MSTAR MSO9180D1R UP, 1.5GHz as well. Tronsmart Pavo 9 does not seem to be in stock at the moment. Just called up their China office to find out.

  23. Hi Danman,

    Do you have the source to record the HDMI IN without NDK binary ?
    Please share it……
    Or else
    Can you explain the approach how to do it ?

    1. Hi,
      my app doesn’t use NDK anymore. You just need to open camera with id 5 (which is not listed when you request camera list) and have your apk signed with mstar key to be allowed to access that camera.

  24. Hi Danman,

    I tried your application on ZIDOO X9 A9 MSTAR MSO9180D1R box, sometimes the application unable to start the recording and shows the message “failed to start recording”. Is that anything wrong in the application? or do i need to setup any configuration for this?

  25. I’ve been looking for a slingbox alternative that would work well with a linux client. it seems like this could work, though it seems under construction. I have a really hard time searching for alternatives, I usually get like 90% chrome-cast style results. Do any of you know of any good alternatives? Do you think this will ever really be a replacement, it seems really cool, though, I wonder if it’s powerful enough, I always ran into not enough resource issues when trying to do …………..
    The Pavo M9 has an IR blaster for changing the tv/box channels, right? never know how accurate the product descriptions are.

  26. Hi Danman ,
    thanks for the app, really helpful .
    I have a question, i’m using the app not to stream but to preview the hdmi input from another android tv box . I could preview the hdmi input fullscreen , but as per our requirement the preview should be 75% of the screen , and the rest 25 % we have an image slide show . Could you please help me and tell how to change the preview size of the hdmi input .
    thanks in advance .

    1. Hi,

      i tried to scale the input on screen today but none of the methods I tried work. I guess we would need documentation for Mstar SDK to properly implement this. Otherwise it’s only guessing…

  27. Hi danman,
    I hopy you can help me.
    The important stuff:
    Have you an idea why the picture is shrinking?
    I have an Zidoo X9 with firmware 1.0.4.2. I deinstalled the Kodi 14 and installed Kodi 16 with play store. Then I started the zidoostreamer with the ffmep option 239.254.0.1:1234. Then i started kodi, goes to system -> addons -> enable the IPTV simple client (that comes with kodi). The IPTV Simple client reads a m3u file, which i created, with content udp://@239.254.0.1:1234. Under sytem -> livetv i activate the TV function of kodi.
    When i now go to TV and choose the zidoostreamer channel the picture appears, then black screen, then a smaller picture appears, then black screen, then smaller and so on. In the end i have a black screen.
    Normal IPTV runs, also with zidoostreamer in the background running.
    With my manual you can reproduce this situation.
    Also i make a video with my handy where you can see the shrinking picture and the normal livetv:
    Not so important stuff: https://vimeo.com/164077248
    When i use zidoostreamer (regardless wifi or ehternet) i become on networkclients (Windows 7 and Debian wheezy) many errors in the vlc log, The picture is not usable, stucks and so on. No Livestream possible.
    I know that the x9 has a network problem, so i read your post and the hint that the tronsmart has the same hardware. So i flashed the Pavo M9 firmware on my x9. But when i start the x9 there is a message (i think fom the menu ui) the authentification failed. So i cant test it with the Pavo M9 firmware. Then i flashed the normal X9 firmware back.
    Do you have network issues?
    When i copy a file with ssh scp i have only 2,5 mbyte, regardless wifi or ethernet. What is your network performance with copy a file with scp?
    When it is better, I think the problem is in the firmware.
    I used the precompiled ffmpeg from you http://blog.danman.eu/wp-content/uploads/ffmpeg-android.tgz which i downloaded months ago. Evtl. you have a new version?
    Nice greetings,
    AL

  28. Thanks greatly for all the effort, this is almost perfect!

    I have some success streaming with default settings on ethernet but if I change the bitrate at all the stream stops. Reboots etc do not help.

    Audio is mono.

    It seems quite unreliable and I have to close and open the app a few times.

    I had my Pavo delivered today and did OTA firmware, which happens to be only released today…might it be causing some issues?

    Do we know what the bitrate limit for encoding is? I was hoping for 15mbps+

  29. Hi,

    is it possible to stream unicast by a http-Server directly? udp an wifi do not really cope very good….

    Didn’t find any switch for that in ffmpeg – though you could pipe it somewhere to get it converted by a proxy to unicast – which is total overkill, I think.

    1. I doubt there is some standardized way how to stream TO http server (I mean create some HTTP POST with data in body or so…). But you can start pure TCP server (e.g. with nc in linux) and push the data to the server using ffmpeg tcp module https://ffmpeg.org/ffmpeg-protocols.html#tcp . This way, the data should be reliably delivered to the server.

  30. hello, I want to do a project. I want input as HDMI TV TDT signal, that signal processing to put on her images or videos, which is displayed by the HDMI output. Would it be possible? Where do we have to start?

  31. Hello Danman,

    I hope you are fine 🙂

    I get very good success when I’m streaming to Nginx rtmp . Stream work perfect 2-3hour then begin some glitches in picture.Looks like missing video frames, audio is OK. Sometimes after 2-3 mins became fine again.
    I check logcat in the moment of glitches and I saw follow:
    D/ffmpeg ( 2492): frame=40334 fps= 29 q=-1.0 size= 778399kB time=00:23:15.65 bitrate=4568.9kbits/s
    I/tvos ( 1014): [DIPC][ThreadHandleDataReady 7705][1]no free memory for send data
    I/tvos ( 1014): [DIPC][ThreadHandleDataReady 7705][1]no free memory for send data
    I/tvos ( 1014): [DIPC][ThreadHandleDataReady 7705][1]no free memory for send data
    I/tvos ( 1014): [DIPC][ThreadHandleDataReady 7705][1]no free memory for send data
    I/tvos ( 1014): [DIPC][ThreadHandleDataReady 7705][1]no free memory for send data
    D/ffmpeg ( 2492): frame=40342 fps= 29 q=-1.0 size= 778554kB time=00:23:16.19 bitrate=4568.1kbits/s
    I/tvos ( 1014): [DIPC][ThreadHandleDataReady 7705][1]no free memory for send data.

    There are same glitches and messages if I temporary stop video input and then started. First 1-2mins there are a lot of : no free memory for send data. in the logs..

    Do you have any idea how I can solve it 🙂

    and one more thing. Is it possible Zidostreamer app to Start/Stop from SSH, except with reboot 🙂

  32. Hello Danman,

    Than you for response. Already I tried with am or pm , but in both cases device rebooting doesn’t matte of parameter for am.
    You can start ZidoStreamer with am on your device ?

    1. This works for me:

      adb shell am start -n eu.danman.zidostreamer.zidostreamer/eu.danman.zidostreamer.zidostreamer.MainActivity

  33. 9Hi Danman!
    I have purchased this Android Box for 33€:

    Cpu quadcore A9r4
    gpu Mali 450MP8 @600MHz
    1GB ram
    hdmi V1.4 in + out
    Lots of videos decoder: full hd H.264, MPEG 1, 2 , 4 till 60fps
    ethernet function: videp streaming playback, NAS
    ebay link: http://www.ebay.de/itm/131860311639?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT

    I’m having some problems: HDMI-in is installed, the DSLR attached to it is showed on Monitor.
    But you app do not work, I click on it, it starts, blank screen comes and goes back to app menu..
    I would appreciate, if we could make it together one step-by-step install and configuration.
    ssh-server is running on Android-box. VLC udp, does nothing
    THX

      1. cat /proc/cpuinfo
        Processor : ARMv7 Processor rev 1 (v7l)
        processor : 0
        BogoMIPS : 1.87

        processor : 2
        BogoMIPS : 1.87

        Features : swp half thumb fastmult vfp edsp neon vfpv3 tls
        CPU implementer : 0x41
        CPU architecture: 7
        CPU variant : 0x4
        CPU part : 0xc09
        CPU revision : 1

        Hardware : Amlogic Meson8
        Revision : 000c
        Serial : 1900000000000000

        1. This is completely different hardware, not from Mstar, so my application will not work for you. Does it have any recording/streaming application?

          1. it has Kodi, hdmi-in, Fernsehfee (TV-Fairy), Live-TV web blocker, screensharing,
            google play store

    1. Yes, i can check it out. But there are too few apps in that folder. Try some file manager and go to /system/app . Or is that recording app there?

      1. I will try it.
        I have ssh access, maybe you can tell me witch command I have to put on terminal to get this app?
        I installed also rom manager, but it doesn’t seems to work properly on this box? should i try to flash a specific custom rom?

  34. ls /system/app/
    AppInstaller.apk
    AppInstaller.odex
    BasicDreams.apk
    Bluetooth.apk
    Browser.apk
    Calculator.apk
    Calendar.apk
    Camera2.apk
    CertInstaller.apk
    DeskClock.apk
    DocumentsUI.apk
    DocumentsUI.odex
    DownloadProviderUi.apk
    Email.apk
    Exchange2.apk
    FaceLock.apk
    Galaxy4.apk
    HTMLViewer.apk
    HoloSpiralWallpaper.apk
    KeyChain.apk
    LatinIME.apk
    LiveWallpapers.apk
    LiveWallpapersPicker.apk
    MagicSmokeWallpapers.apk
    MboxSetting.apk
    MediaBoxLauncher.apk
    Miracast.apk
    Music.apk
    NoiseField.apk
    PacProcessor.apk
    PacProcessor.odex
    PackageInstaller.apk
    PhaseBeam.apk
    PhotoTable.apk
    PicoTts.apk
    PicoTts.odex
    PreloadInstall.apk
    PrintSpooler.apk
    PrintSpooler.odex
    PromptUser.apk
    Provision.apk
    QuickSearchBox.apk
    RC_Server.apk
    RemoteIME.apk
    SoundRecorder.apk
    SubTitle.apk
    TelephonyProvider.apk
    Update.apk
    UserDictionaryProvider.apk
    VideoPlayer.apk
    VisualizationWallpapers.apk
    WAPPushManager.apk
    WAPPushManager.odex
    com.auto.testing.apk
    com.rhmsoft.fm.apk
    fishnoodle.spacescapewallpaper_free.apk

  35. Hi, did you know if it’s possible to get hdmi input source and send it to a textureview? because we’ve tryed for many hour but it seems to work only on a surfaceview 🙁 . Can i contact you with a private message or mail? i need some help on this and i don’t know how to solve it!
    Thanks!

  36. Hi!

    Thanks a lot for the blog post and the sources.

    I have tried various resolutions, removing audio, decreasing the video encoding bitrate… but i still have a delay around 2.5 seconds.
    I suspect it is related on the read/write buffers, not on the encoding operation itself.
    Do you have any idea on how I could work around this?

    Thank you!

    Mihai

  37. Hi Danmen,
    When i try to stream the video i got the following warning message continuously from ffmpeg….
    “Non-monotonous DTS in output stream 1:1; previous: 2234108, current: 2230257; changing to 2234109. This may result in incorrect timestamps in the output file”.
    Is there any way to resolve it…..

    1. I have the same problem, timestamp is altered. When watching the stream on my computer after an hour I have a delay of 5 sec at least and 10 sec after 2 hours. It became realy hard to switch tv chanel since so much delay, I simply restart the stream in kodi. My zidoo is plug with ethernet to my computer ( 2 ethernet cable) with default setting from windows 10 for network.

  38. I get the same warning as Pranesh Kumar: “Non-monotonous DTS in output stream 1:1; previous: 2234108, current: 2230257; changing to 2234109. This may result in incorrect timestamps in the output file”. Not with the same numbers, but the warning is the same. Please help.

Leave a Reply

Your email address will not be published. Required fields are marked *