Tronsmart Pavo M9

Auch einfacher bekannt als “Android Box”.http://www.tronsmart.com/products/tronsmart-pavo-m9

Overview

Diese kleine Box, erhältlich bei diversen Händlern aus Fernost ist eigentlich als Settopbox für den Nicht-Smart-TV gedacht. Zeichnet sich aber durch einen HDMI Eingang aus. Dadurch kann sie als günstige Alternative zu anderen Framegrabbern genutzt werden.

Beschaffung

~60$ http://www.geekbuying.com/item/Tronsmart-Pavo-M9-4K-TV-BOX-Android-4-4-2-Mstar-MSO9180D1R-1GB-8G-802-11-b-g-n-LAN-H-265-USB3-0-HDMI-347691.html

https://www.amazon.de/Tronsmart-Recorder-MSO9180D1R-802-11-Android/dp/B0182CJSVO

uvm.

Software

Auf der Box läuft ein Android 4.irgendwas.Mit der richtigen App kann man das Video, das aus dem Hardwareencoder fällt in ein ffmpeg auf der Box pipen lassen.
https://blog.danman.eu/using-tronsmart-pavo-m9-for-hdmi-input-streaming/

https://github.com/danielkucera/ZidoStreamer

Damit ZidoStreamer richtig funktioniert muss ein für android kimpiliertes ffmpeg-Binary an die richtige Stelle gelegt werden, z.B. von hier nach /mnt/sdcard

Skripte

Als ffmpeg Zeile für die App ZidoStreamer setze ich das folgende ein:

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

ZidoStreamer ist auf eine Videobitrate von 20Mbit/s und 26 fps eingestellt. Bei 25 fps flackert's in voctomix. Audio staht auf 320kbit/s, wird aber nicht ausgenutzt.

Folgende zwei Skripte kann man einsetzen um den RTMP Stream in voctocore zu schieben:

#!/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

Dieses Skript hat den Vorteil, dass Audio, was über die HDMI Verbindung geschickt wird im voctomix zur Verfügung steht und synchron mit dem Video ist. Bietet sich vor allem dann ann, wenn der Vortragende ein Video abspielt und viel im Video gesprochen wird, da man Voctomix dann auf diese Audioquelle umstellen kann.

Oder alternativ mit 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