**This is an old revision of the document!**
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
Aktuell nur noch selten verfügbar, früher unter andrem hier:
- uvm.
Software
Auf der Box läuft ein Android 4.irgendwas.
Einsatz als 'Scaler' bzw. HDMI Framerate converter
Im Event-Case Setup nutzen wir den Pavo M5 als HDMI Konverter to 24p, um es dann per HDMI in die (zweite) Decklink Mini Recorder PCI Karte direkt als Folien/Projektor Quelle einzuspeisen. Dazu muss die HDMI App gestartet werden. Autostart einrichten: Im aptoide App Store nach autostart suchen, vermutlich die hier https://apps.store.aptoide.com/app/market/com.autostart/222/6899286/AutoStart+-+No+root
ZidoStreamer
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