Faire une diffusion en temps réel de l’écran de votre appareil UT sur votre ordinateur¶
Ubuntu Touch possède un utilitaire en ligne de commande appelé mirscreencast
qui récupère les trames vidéo dans un fichier. L’idée est d’afficher dynamiquement l’écran de l’appareil sous Ubuntu Touch sur un ordinateur client à travers le réseau ou directement via adb. On peut alors le regarder en temps réel ou l’enregistrer dans un fichier.
En utilisant adb¶
Vous pouvez capturer directement la sortie de la commande adb exec-out
et la rediriger vers 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 -
NB : timeout
est ici utilisé pour tuer le processus correctement sur l’appareil (ici 120 secondes). Dans le cas contraire, le processus restera actif même si il est tué sur l’ordinateur. Vous pouvez réduire ou augmenter le nombre de trames par secondes avec``–cap-interval`` (1 = 60fps, 2=30fps, …) et la taille des trames 384 640
correspond à largeur=384 hauteur=640
À travers le réseau¶
Sur le récepteur¶
Pour l’affichage en temps réel :
Préparer votre ordinateur à écouter sur un port tcp (ici 1234) et rediriger le flux vidéo brut vers un programme de lecture vidéo (ici mplayer) avec une taille de trame de 384x640:
nc -l -p 1234 | gzip -dc | mplayer -demuxer rawvideo -rawvideo w=384:h=640:format=rgba -
Pour l’enregistrement du flux :
Préparer votre ordinateur à écouter sur un port tcp (ici 1234) et rediriger le flux vidéo brut vers un programme d’encodage vidéo (ici mpencoder):
nc -l -p 1234 | gzip -dc | mencoder -demuxer rawvideo -rawvideo fps=60:w=384:h=640:format=rgba -ovc x264 -o out.avi -
Sur l’appareil¶
Rediriger et compresser (gzip) le flux à 60 fps (–cap-interval 1) et une avec une taille de trame de 384x640 vers l’ordinateur 10.42.0.209 sur le port 1234:
mirscreencast -m /run/mir_socket --stdout --cap-interval 1 -s 384 640 | gzip -c | nc 10.42.0.209 1234
Exemple de script¶
Ce script vous permet de diffuser l’affichage de l’écran d’un appareil UT distant sur votre PC local (vous devez avoir un accès ssh sur votre appareil UT et mplayer installé sur le PC), lancez le sur votre PC:
#!/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
Vous pouvez le télécharger ici : :télécharger:`files/mircast.sh`
Références¶
source initiale : https://wiki.ubuntu.com/Touch/ScreenRecording
démonstration : https://www.youtube.com/watch?v=HYm4RUwwo5Q