hardware:tronsmart_pavo_m9

Tronsmart Pavo M9

Also known as “Android Box” or “the tronsmart”.

This seems to be out of production, but some vendors might still sell them. See Android HDMI Grabber / Scaler for similar devices.

The left HDMI port is an input and the right one an output.

  • SoC – Mstar MSO9180D1R quad core Cortex A9 processor up to 1.5GHz with a Mali-450MP2 GPU
  • System Memory – 1GB DDR3
  • Storage – 8GB eMMC flash + micro SD slot
  • Video Output / Input – HDMI output up to 4K, HDMI input with PVR and Time Shifting support (up to 1080p), and AV port (Composite + stereo audio)
  • Audio I/O – HDMI Out and In, AV, and optical S/PDIF
  • (Main) Video Codecs – H265, VC-1, WMV-HD, MPEG1/2/4 up to 4Kx2K, etc..
  • Audio Codec – MP3, AAC, AC3, DTS-HD Master, TrueHD 7.1 pass-through, etc…
  • Connectivity – 10/100M Ethernet, 802.11 b/g/n Wi-Fi (Realtek 8188)
  • USB – 1x USB 3.0, 2x USB 2.0 host ports.
  • Misc – ON/OFF switch, IR receiver
  • Power Supply – 12V/2A
  • Dimensions – 15.24 x 15.24 x 4.06 cm
  • Weight – ~260 grams
  • Android 4.1*, root available without modification

This product seems to be out of production but is sometimes still available from chinese online stores. Its most important feature is the HDMI input which can be used to capture / stream / scale an HDMI signal

In 2016/2017 we changed the default event cases setup, we using the Pavo M5 to convert the projector signal to 1080p24, which we can feed into a BMD DeckLink capture cards Mini Recoder HDMI PCI capture card. In contrast to a H264 stream over ethernet, the latency is much lower. To have this reboot save, one have to install an autostart app to run the “Recorder” app after boot. The autostart app is available in the aptoide store – which comes with the default firmware.

The ZidoStreamer app allows to stream the HDMI input via Ethernet / wifi to a stream sink

To be able to use ZidoStreamer, an ffmpeg binary compiled for the ARM CPU needs to be placed at /mnt/sdcard. Such a binary can be found e.g. here

Scripts

Here are some example command lines for ffmpeg that we use:

on android box

stream to ngnix on encoder box

/mnt/sdcard/ffmpeg -i - -c copy -absf aac_adtstoasc -f flv rtmp://100.122.3.243:1935/source/tronsmart

ZidoStreamer is set to a video bitrate of 20 Mbit/s and 26 fps. With 25 fps, there is flicker in voctomix. Audio is set so 320 kbit/s, but isn't used.

on encoder cube
 cd /opt/voctomix
 wget https://raw.githubusercontent.com/voc/voctomix/master/example-scripts/default-config.sh  
ffmpeg variant

RTMP stream to voctomix – e.g. as script in /opt/voctomix/scripts/forward-stream.sh

#!/bin/sh
confdir="`dirname "$0"`/../"
. $confdir/default-config.sh
if [ -f $confdir/config.sh ]; then
        . $confdir/config.sh
fi
 
ffmpeg -y -nostdin -xerror \
        -f flv -i "rtmp://127.0.0.1/source/tronsmart" \
        -filter_complex "
                [0:v] scale=$WIDTH:$HEIGHT,fps=$FRAMERATE [v];
                [0:a] aresample=$AUDIORATE [a]
        " \
        -map "[v]" \
        -c:v rawvideo \
        -pix_fmt yuv420p \
        -map "[a]" -ac 2 \
        -c:a pcm_s16le \
        -f matroska \
        tcp://localhost:10002

This script has the advantage of making audio from the HDMI stream available to voctomix, so that audio and video are in sync. This is particularly useful when the lecturer plays a video with a lot of spoken text. This audio source can then be selected in voctomix.

gstreamer variant

Alternative version using gstreamer:

#!/bin/sh
confdir="`dirname "$0"`/../"
. $confdir/default-config.sh
if [ -f $confdir/config.sh ]; then
        . $confdir/config.sh
fi
 
gst-launch-1.0 -vvv\
        rtmpsrc location=rtmp://127.0.0.1/source/tronsmart ! queue ! flvdemux name=demux ! queue !\
                h264parse ! avdec_h264 !\
                videoscale ! \
                videoconvert ! \
                videorate ! \
                video/x-raw,format=I420,width=$WIDTH,height=$HEIGHT,framerate=$FRAMERATE/1,pixel-aspect-ratio=1/1 ! \
                mux. \
        \
        audiotestsrc freq=550 !\
                audio/x-raw,format=S16LE,channels=2,layout=interleaved,rate=$AUDIORATE !\
                mux. \
        \
        matroskamux name=mux !\
                tcpclientsink host=localhost port=10002

Wir haben öfters das Problem beobachtet, dass die Bildausgabe des Tronsmart am HDMI-In einer Decklink MiniRecorder komplett Dunkelrot, Dunkelgrün oder komplett Schwarz ist, obwohl der Tronsmart nachweißlich auf die korrekte Auflösung eingestellt ist und am Beamer oder Fernseher korrekt funktioniert. Das Problem kann durch zwischenschalten des HDMI-to-SDI-Wandlers und grabben der Slides vom SDI-In der MiniRecorder behoben werden.

Tests zeigten, dass manchmal das Tauschen des HDMI-Kabels hilft, manchmal aber auch nicht. Auch das Tauschen des Tronsmarts hilft nicht immer. Diese Beobachtungen legen nahe, dass das Problem nicht alleine am Kabel noch am Tronsmart und vmtl. auch nicht an der Karte liegt. Warscheinlicher ist eine Kombination der Faktoren mit Umgebungs-RF, Temperatur, Shielding oä.

–Mazdermind, Dez 2017

  • hardware/tronsmart_pavo_m9.txt
  • Last modified: 2017/12/04 22:57
  • by andi