Exportació de la pantalla del vostre dispositiu Ubuntu Touch a l’ordinador

L’Ubuntu Touch ve amb una utilitat de la línia d’ordres anomenada mirscreencast que bolca els fotogrames de la pantalla a un fitxer. La idea aquí és transmetre la pantalla UT a un ordinador receptor sobre la xarxa o directament mitjançant l’adb, de manera de mirar-ho en viu o desar-ho a un fitxer.

Ús d’adb

Podeu capturar la sortida directament de l’ordre adb exec-out i enviar-la al MPlayer:

adb exec-out timeout 120 mirscreencast -m /run/mir_socket --stdout --cap-interval 2 -s 384 640 | mplayer -demuxer rawvideo -rawvideo w=384:h=640:format=rgba -

Noteu: aquí s’usa timeout``per tancar adequadament el procés al dispositiu (aquí 120 segons). En cas contrari el procés continuarà encara tot i que s'hagi tancat a l'ordinador. Podeu reduir o incrementar els marcs per segon amb ``--cap-interval (1 = 60fps, 2=30fps, …) i la mida dels marcs 384 650 significa amplada=384 alçada=640

Via xarxa

Al receptor

Per emissió en temps real:

Prepareu el vostre ordinador per escoltar a un port TCP (aquí 1234) i reenviar l’emissió en brut a un reproductor de vídeo (aquí el MPlayer) amb una mida de marcs de 384x640:

nc -l -p 1234 | gzip -dc | mplayer -demuxer rawvideo -rawvideo w=384:h=640:format=rgba -

Per a la gravació de la transmissió:

Prepareu el vostre ordinador per escoltar al port TCP (aquí 1234), descomprimir i reenviar l’emissió en brut a un codificador de vídeo (el MEncoder en aquest cas):

nc -l -p 1234 | gzip -dc | mencoder -demuxer rawvideo -rawvideo fps=60:w=384:h=640:format=rgba -ovc x264 -o out.avi -

Instal·lació de l’Ubuntu Touch

Envieu i comprimiu amb gzip amb 60 FPS (–cap-interval 1) i mida de marc de 384x640 a l’ordinador 10.42.0.209 al port 1234:

mirscreencast -m /run/mir_socket --stdout --cap-interval 1 -s 384 640 | gzip -c | nc 10.42.0.209 1234

Script d’exemple

Executeu-ho en un ordinador (amb MPlayer instal·lat i accés SSH al dispositiu Ubuntu Touch) per projectar-hi un dispositiu Ubuntu Touch remot.:

#!/bin/bash
SCREEN_WIDTH=384
SCREEN_HEIGHT=640
PORT=1234
FORMAT=rgba


if [[ $# -eq 0 ]] ; then
    echo 'usage: ./mircast.sh UT_IP_ADDRESS , e.g: ./mircast.sh 192.168.1.68'
    exit 1
fi

IP=$1

LOCAL_COMMAND='nc -l -p $PORT | gzip -dc | mplayer -demuxer rawvideo -rawvideo w=$SCREEN_WIDTH:h=$SCREEN_HEIGHT:format=$FORMAT -'
REMOTE_COMMAND="mirscreencast -m /run/mir_socket --stdout --cap-interval 1 -s $SCREEN_WIDTH $SCREEN_HEIGHT | gzip -c | nc \$SSH_CLIENT $PORT"
ssh -f phablet@$IP "$REMOTE_COMMAND"
eval $LOCAL_COMMAND

El podeu descarregar aquí: files/mircast.sh

Referències