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¶
Font inicial: https://wiki.ubuntu.com/Touch/ScreenRecording
demostració: https://www.youtube.com/watch?v=HYm4RUwwo5Q