1 Scrcpy
1.1 ¿Qué es scrcpy?
scrcpy (screen copy) es una aplicación de código abierto que permite:
- Duplicar (mirror) la pantalla de dispositivos Android en tu computadora
- Controlar el dispositivo desde el teclado y mouse de la computadora
- Grabar video y audio del dispositivo
- Transmitir audio desde el dispositivo
Pronunciación: “screen copy”
1.2 Filosofía de Diseño
scrcpy se enfoca en:
- Ligereza: Aplicación nativa, solo muestra la pantalla del dispositivo
- Rendimiento: 30-120 fps dependiendo del dispositivo
- Calidad: Hasta 1920×1080 o superior
- Baja latencia: 35-70ms
- Inicio rápido: ~1 segundo para mostrar la primera imagen
- No intrusivo: No instala nada en el dispositivo Android
- Sin publicidad: Software libre y de código abierto
1.3 Ventajas sobre Otras Soluciones
| Característica | scrcpy | Vysor | AirDroid | TeamViewer |
|---|---|---|---|---|
| Gratuito | Sí | Limitado | Limitado | No |
| Código abierto | Sí | No | No | No |
| Baja latencia | Sí | No | No | No |
| Sin anuncios | Sí | No | No | Sí |
| Sin cuenta | Sí | No | No | No |
| Funciona sin internet | Sí | Sí | No | No |
| Grabación nativa | Sí | Premium | Premium | No |
2 Características Principales
2.1 Funcionalidades Disponibles
- Duplicación de pantalla (mirroring) en tiempo real
- Reenvío de audio (Android 11+)
- Grabación de video y audio
- Pantalla virtual (virtual display)
- Duplicación con pantalla apagada del dispositivo
- Copiar-pegar bidireccional (texto e imágenes)
- Calidad configurable de video
- Duplicación de cámara (Android 12+)
- Webcam virtual (V4L2 en Linux)
- Simulación de teclado y mouse físicos (HID)
- Soporte de gamepad
- Modo OTG (control sin depuración USB)
2.2 Casos de Uso Ideales
Para ti como economista e informático:
Presentaciones Académicas
- Mostrar aplicaciones de econometría móviles
- Demostrar visualizaciones de datos
- Presentar simulaciones interactivas
Tutoriales y Documentación
- Grabar tutoriales de aplicaciones
- Crear material educativo
- Documentar procesos de análisis
Desarrollo y Testing
- Probar aplicaciones econométricas
- Verificar visualizaciones en móvil
- Debug de aplicaciones web responsive
Colaboración Remota
- Compartir pantalla en reuniones
- Asistencia técnica remota
- Demostraciones en vivo
3 Requisitos Previos
3.1 En el Dispositivo Android
Requisitos mínimos:
- Android 5.0 (API 21) o superior
- Para audio: Android 11 (API 30) o superior
Configuración necesaria:
Habilitar Depuración USB
Ir a:
Ajustes→Acerca del teléfono→ Tocar 7 veces enNúmero de compilaciónLuego:
Ajustes→Opciones de desarrollador→ ActivarDepuración USBDispositivos Xiaomi (adicional)
Algunos dispositivos Xiaomi requieren:
Depuración USB (Configuración de seguridad)activado- Reiniciar el dispositivo después de activarlo
Verificar que funciona:
3.2 En Arch Linux
Paquetes necesarios:
Si falta algo:
4 Instalación en Arch Linux
4.1 Método 1: Instalación desde Repositorios Oficiales (Recomendado)
Verificar instalación:
4.2 Método 2: Instalación desde AUR (Versión de Desarrollo)
4.3 Método 3: Compilación desde Código Fuente
Solo si necesitas modificar el código o tienes requisitos específicos.
# 1. Instalar dependencias de compilación
sudo pacman -S base-devel meson ninja pkg-config \
ffmpeg libusb sdl2 \
jdk17-openjdk
# 2. Clonar repositorio
git clone https://github.com/Genymobile/scrcpy.git
cd scrcpy
# 3. Compilar
meson setup x --buildtype=release --strip -Db_lto=true
ninja -Cx
# 4. Instalar
sudo ninja -Cx install
# 5. Verificar
scrcpy --version5 Configuración Inicial
5.1 1. Configurar ADB
ADB (Android Debug Bridge) es necesario para scrcpy.
5.2 2. Configurar Permisos de Usuario
En Arch Linux, tu usuario debe estar en el grupo adbusers:
5.3 3. Configurar Reglas udev
Para que adb detecte dispositivos sin sudo:
Agregar (ejemplo para varios fabricantes):
# Google
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="adbusers"
# Samsung
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666", GROUP="adbusers"
# Xiaomi
SUBSYSTEM=="usb", ATTR{idVendor}=="2717", MODE="0666", GROUP="adbusers"
# Huawei
SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666", GROUP="adbusers"
# OnePlus
SUBSYSTEM=="usb", ATTR{idVendor}=="2a70", MODE="0666", GROUP="adbusers"
Recargar reglas:
5.4 4. Primera Conexión
Debe aparecer la pantalla del dispositivo en una ventana.
6 Uso Básico
6.1 Comando Básico
Eso es todo. scrcpy automáticamente:
- Detecta el dispositivo conectado
- Instala el servidor temporal en el dispositivo
- Inicia la duplicación de pantalla
- Habilita el control con teclado y mouse
6.2 Opciones Más Comunes
# Limitar resolución (mejor rendimiento)
scrcpy -m1920 # máximo 1920px de ancho
scrcpy -m1024 # máximo 1024px (más fluido)
# Solo video, sin audio
scrcpy --no-audio
# Solo audio, sin video
scrcpy --no-video --no-control
# Ventana siempre visible
scrcpy --always-on-top
# Pantalla completa
scrcpy -f
# Mantener dispositivo despierto (conectado a corriente)
scrcpy -w
# Apagar pantalla del dispositivo (ahorra batería)
scrcpy -S6.3 Ejemplos de Uso Rápido
# Presentación fluida (baja resolución, alta velocidad)
scrcpy -m1024 --max-fps=60 --no-audio
# Grabación de alta calidad
scrcpy --video-codec=h265 -m1920 --max-fps=60 -r tutorial.mp4
# Solo audio (como dictáfono)
scrcpy --audio-source=mic --no-video --no-control -r grabacion.opus
# Control sin duplicación (ahorra recursos)
scrcpy --no-video --no-audio7 Conexión del Dispositivo
7.1 Selección de Dispositivo
Si solo hay un dispositivo conectado:
Si hay múltiples dispositivos:
# Listar dispositivos
adb devices
# Conectar por serial
scrcpy --serial=0123456789ABCDEF
scrcpy -s 0123456789ABCDEF # versión corta
# Conectar al único dispositivo USB
scrcpy --select-usb
scrcpy -d # versión corta
# Conectar al único dispositivo TCP/IP
scrcpy --select-tcpip
scrcpy -e # versión corta7.2 Conexión TCP/IP (Inalámbrica)
7.2.1 Método 1: Automático
Desde USB a WiFi automáticamente:
Si ya sabes la IP del dispositivo:
7.2.2 Método 2: Manual
# 1. Conectar dispositivo por USB
# 2. Habilitar TCP/IP en el dispositivo
adb tcpip 5555
# 3. Obtener IP del dispositivo
adb shell ip route | awk '{print $9}'
# O desde el dispositivo: Ajustes → Acerca del teléfono → Estado
# 4. Desconectar USB
# 5. Conectar por WiFi
adb connect 192.168.1.100:5555
# 6. Usar scrcpy normalmente
scrcpy
# 7. Desconectar cuando termines
adb disconnectNota: Desde Android 11 hay una opción de depuración inalámbrica en Opciones de Desarrollador.
7.3 Variable de Entorno
8 Control de Video
8.1 Resolución y Calidad
8.1.1 Limitar Resolución
Regla: La otra dimensión se calcula automáticamente manteniendo la relación de aspecto.
8.1.2 Tasa de Bits
8.1.3 Tasa de Fotogramas
8.2 Códec de Video
Recomendaciones:
- H.264: Mejor latencia, compatible con todos los dispositivos
- H.265: Mejor calidad, mayor compresión
- AV1: Mejor compresión, pero pocos dispositivos lo soportan
8.3 Orientación de Pantalla
# Orientación de captura (en el dispositivo)
scrcpy --capture-orientation=0 # Sin rotación
scrcpy --capture-orientation=90 # 90° horario
scrcpy --capture-orientation=180 # 180°
scrcpy --capture-orientation=270 # 270° horario
# Bloquear orientación (no rota aunque gires el dispositivo)
scrcpy --capture-orientation=@90 # Bloqueada a 90°
# Orientación de visualización (en la computadora)
scrcpy --orientation=90 # Rotar visualización 90°
# Rotar contenido por ángulo personalizado
scrcpy --angle=23 # Rotar 23° horario8.4 Recorte de Pantalla
8.5 Bufferización
8.6 Sin Reproducción de Video
8.7 Pantalla Virtual
# Crear nueva pantalla virtual (no duplica la principal)
scrcpy --new-display=1920x1080
# Con DPI personalizado
scrcpy --new-display=1920x1080/420
# Iniciar app en pantalla virtual
scrcpy --new-display=1920x1080 --start-app=org.videolan.vlc
# Sin decoraciones del sistema
scrcpy --new-display --no-vd-system-decorations --start-app=org.mozilla.firefox9 Control de Audio
9.1 Habilitar/Deshabilitar Audio
9.2 Fuente de Audio
# Salida de audio del dispositivo (por defecto)
scrcpy --audio-source=output
# Micrófono del dispositivo
scrcpy --audio-source=mic
# Otras fuentes:
scrcpy --audio-source=playback # Reproducción (apps pueden optar por no capturar)
scrcpy --audio-source=mic-unprocessed # Micrófono sin procesar
scrcpy --audio-source=mic-camcorder # Optimizado para video
scrcpy --audio-source=mic-voice-recognition
scrcpy --audio-source=mic-voice-communication
scrcpy --audio-source=voice-call
scrcpy --audio-source=voice-call-uplink
scrcpy --audio-source=voice-call-downlinkEjemplo: Dictáfono (grabar micrófono directamente):
9.3 Duplicación de Audio (Android 13+)
9.4 Códec de Audio
# Seleccionar códec
scrcpy --audio-codec=opus # Por defecto
scrcpy --audio-codec=aac
scrcpy --audio-codec=flac
scrcpy --audio-codec=raw # PCM 16-bit sin comprimir
# Ejemplo: grabar audio en FLAC de alta calidad
scrcpy --no-video --audio-codec=flac --record=audio.flac
# Opciones adicionales de códec
scrcpy --audio-codec=flac --audio-codec-options=flac-compression-level=89.5 Bitrate de Audio
9.6 Bufferización de Audio
# Ajustar buffer de audio (por defecto 50ms)
scrcpy --audio-buffer=40 # Menor latencia
scrcpy --audio-buffer=100 # Más estable
scrcpy --audio-buffer=200 # Muy estable, más latencia
# Buffer de salida de audio (por defecto 5ms)
# Solo cambiar si hay audio robótico/entrecortado
scrcpy --audio-output-buffer=1010 Grabación de Pantalla
10.1 Grabación Básica
# Grabar video y audio
scrcpy --record=archivo.mp4
scrcpy -r archivo.mkv # versión corta
# Solo video
scrcpy --no-audio --record=video.mp4
# Solo audio
scrcpy --no-video --record=audio.opus
scrcpy --no-video --audio-codec=aac --record=audio.aac
scrcpy --no-video --audio-codec=flac --record=audio.flac
scrcpy --no-video --audio-codec=raw --record=audio.wav10.2 Formatos Disponibles
| Formato | Extensiones | Uso |
|---|---|---|
| MP4 | .mp4, .m4a, .aac |
Video y audio, compatible universalmente |
| Matroska | .mkv, .mka |
Video y audio, mejor para edición |
| OPUS | .opus |
Solo audio, excelente compresión |
| FLAC | .flac |
Solo audio, sin pérdida |
| WAV | .wav |
Solo audio, sin comprimir |
Especificar formato explícitamente:
10.3 Grabación Sin Reproducción
10.4 Límite de Tiempo
10.5 Ejemplos de Grabación Profesional
10.5.1 Tutorial de App Móvil (Alta Calidad)
10.5.2 Presentación Académica (Balance)
10.5.3 Grabación de Podcast (Solo Audio)
10.5.4 Demo de Análisis Econométrico (Pantalla + Audio)
11 Atajos de Teclado
MOD es el modificador de atajos. Por defecto: Alt (izquierda) o Super (Windows/Cmd).
Cambiar MOD:
11.1 Tabla de Atajos
| Acción | Atajo |
|---|---|
| Ventana | |
| Pantalla completa | MOD+f |
| Redimensionar 1:1 (pixel-perfect) | MOD+g |
| Quitar bordes negros | MOD+w o doble-clic |
| Siempre visible | Usar --always-on-top |
| Rotación/Transformación | |
| Rotar a la izquierda | MOD+← |
| Rotar a la derecha | MOD+→ |
| Voltear horizontalmente | MOD+Shift+← o MOD+Shift+→ |
| Voltear verticalmente | MOD+Shift+↑ o MOD+Shift+↓ |
| Rotar dispositivo | MOD+r |
| Pantalla del Dispositivo | |
| Apagar pantalla | MOD+o |
| Encender pantalla | MOD+Shift+o |
| Botones Android | |
| HOME | MOD+h o clic-medio |
| BACK | MOD+b o MOD+Backspace o clic-derecho |
| APP_SWITCH (recientes) | MOD+s o 4to botón mouse |
| MENU | MOD+m |
| Volumen | |
| Subir volumen | MOD+↑ |
| Bajar volumen | MOD+↓ |
| Encender/apagar | MOD+p |
| Paneles | |
| Notificaciones | MOD+n o 5to botón mouse |
| Configuración | MOD+n+n (doble) |
| Colapsar paneles | MOD+Shift+n |
| Copiar/Pegar | |
| Copiar | MOD+c |
| Cortar | MOD+x |
| Pegar | MOD+v |
| Pegar como eventos | MOD+Shift+v |
| Control | |
| Configuración teclado (HID) | MOD+k |
| Mostrar/ocultar FPS | MOD+i |
| Pausar duplicación | MOD+z |
| Reanudar | MOD+Shift+z |
| Gestos | |
| Pinch-to-zoom | Ctrl+clic+mover |
| Inclinación vertical | Shift+clic+mover |
| Inclinación horizontal | Ctrl+Shift+clic+mover |
| Archivos | |
| Instalar APK | Arrastrar archivo .apk |
| Enviar archivo | Arrastrar archivo (no-APK) |
12 Casos de Uso Profesionales
12.1 Caso 1: Presentación Académica con Diapositivas Móviles
Escenario: Presentar análisis econométrico desde app móvil en clase.
Explicación:
-m1920: Resolución óptima para proyector--max-fps=60: Fluidez en animaciones--no-audio: Sin distracciones--always-on-top: Siempre visible--stay-awake: Dispositivo no se apaga-f: Pantalla completa
12.2 Caso 2: Grabar Tutorial de App Econométrica
Escenario: Grabar tutorial de uso de app de estadística.
Explicación:
--video-codec=h265: Mejor calidad/compresión--audio-source=mic: Narración con tu voz--show-touches: Muestra dónde tocas--stay-awake: No se apaga durante grabación
12.3 Caso 3: Demostración en Vivo con Webcam
Escenario: Usar cámara del dispositivo como webcam para videollamada.
Luego usar /dev/video2 en Zoom, Google Meet, etc.
12.4 Caso 4: Control Remoto para Demostraciones
Escenario: Controlar dispositivo de forma remota vía WiFi.
12.5 Caso 5: Documentación de Aplicación con Capturas
Escenario: Documentar flujo de trabajo de app.
12.6 Caso 6: Podcast/Entrevista con Audio Móvil
Escenario: Grabar entrevista usando el teléfono como grabadora.
13 Troubleshooting
13.1 Problema 1: “No se detecta el dispositivo”
Síntomas:
adb devices
# List of devices attached
# (vacío)
Soluciones:
# 1. Verificar cable USB (usar cable de datos, no solo carga)
# 2. Verificar depuración USB en dispositivo
# Ajustes → Opciones de desarrollador → Depuración USB
# 3. Autorizar computadora en dispositivo (popup)
# 4. Reiniciar servidor adb
adb kill-server
adb start-server
adb devices
# 5. Verificar permisos
groups | grep adbusers
# Si no estás: sudo usermod -aG adbusers $USER
# 6. Verificar reglas udev
ls /etc/udev/rules.d/51-android.rules
# Si no existe, crearla (ver sección Configuración Inicial)
# 7. Probar con sudo (temporal, para descartar permisos)
sudo adb devices13.2 Problema 2: “Error: could not install server”
Causa: No hay espacio en /data/local/tmp o permisos incorrectos.
Soluciones:
13.3 Problema 3: “Pantalla negra pero audio funciona”
Causas posibles:
- Códec de video no soportado
- Resolución muy alta
- Problema de decodificación
Soluciones:
# 1. Reducir resolución
scrcpy -m1024
# 2. Cambiar códec
scrcpy --video-codec=h264 # Más compatible
# 3. Listar codificadores disponibles
scrcpy --list-encoders
# 4. Probar con otro codificador
scrcpy --video-codec=h264 --video-encoder=OMX.qcom.video.encoder.avc
# 5. Verificar FFmpeg
ffmpeg -version13.4 Problema 4: “Audio entrecortado o robótico”
Soluciones:
13.5 Problema 5: “Latencia alta en WiFi”
Soluciones:
# 1. Usar cable USB
# WiFi siempre tendrá más latencia que USB
# 2. Reducir calidad
scrcpy -m1024 --max-fps=30 --video-bit-rate=2M
# 3. Agregar buffer
scrcpy --video-buffer=100 --audio-buffer=200
# 4. Verificar red WiFi (2.4 GHz vs 5 GHz)
# 5 GHz tiene menor latencia pero menor alcance
# 5. Reducir interferencias (cerrar otras apps de red)13.6 Problema 6: “No se puede copiar/pegar”
Requisito: Android 7 o superior.
Soluciones:
13.7 Problema 7: “Dispositivo Xiaomi no responde”
Solución específica Xiaomi:
13.8 Problema 8: “OTG no funciona en Windows”
Causa: Windows no permite abrir dispositivo USB si ya está abierto por otro proceso (adb).
Solución:
14 Comandos de Referencia Rápida
14.1 Uso General
# Básico
scrcpy # Duplicar pantalla
scrcpy -m1024 # Limitar a 1024px
scrcpy -f # Pantalla completa
scrcpy -w # Mantener despierto
scrcpy -S # Apagar pantalla
# Selección de dispositivo
scrcpy -s 0123456789ABCDEF # Por serial
scrcpy -d # USB (único)
scrcpy -e # TCP/IP (único)
scrcpy --tcpip=192.168.1.100 # TCP/IP directo
# Calidad
scrcpy -m1920 --max-fps=60 -b 8M
scrcpy --video-codec=h265
scrcpy --audio-codec=aac14.2 Grabación
14.3 Audio
14.4 Control
14.5 Teclado/Mouse
14.6 Pantalla Virtual
14.7 Cámara
14.8 Combinaciones Útiles
# Presentación fluida
scrcpy -m1024 --max-fps=60 --no-audio -f -w
# Grabación profesional
scrcpy --video-codec=h265 -m1920 --max-fps=60 \
--audio-codec=aac -r tutorial.mp4
# Control inalámbrico ligero
scrcpy --tcpip -m1024 --max-fps=30
# Demo con toques visibles
scrcpy -m1920 --show-touches --stay-awake
# Solo grabar micrófono
scrcpy --audio-source=mic --no-video \
--no-playback -r grabacion.opus15 Configuración Permanente
15.1 Alias en Fish
Agregar a ~/.config/fish/config.fish:
# =============================================================================
# ALIAS DE SCRCPY
# =============================================================================
# Uso básico
alias scr="scrcpy"
alias scrf="scrcpy -f"
alias scrw="scrcpy -w"
# Presentaciones
alias scr-present="scrcpy -m1920 --max-fps=60 --no-audio -f -w"
alias scr-demo="scrcpy -m1920 --show-touches --stay-awake -f"
# Grabación
alias scr-rec="scrcpy --video-codec=h265 -m1920 --max-fps=60 --record"
alias scr-rec-audio="scrcpy --audio-source=mic --no-video --no-playback --record"
# WiFi
alias scr-wifi="scrcpy --tcpip"
# Control
alias scr-control="scrcpy --no-video --no-audio -KM"Recargar:
15.2 Script de Conexión Automática
Crear ~/bin/scrcpy-auto:
#!/bin/bash
# Script para conectar scrcpy automáticamente
# Verificar dispositivos
DEVICES=$(adb devices | grep -w device | wc -l)
if [ "$DEVICES" -eq 0 ]; then
echo "No hay dispositivos conectados."
echo "Conecta un dispositivo por USB o configura WiFi."
exit 1
elif [ "$DEVICES" -eq 1 ]; then
echo "Conectando al único dispositivo..."
scrcpy -m1920 --max-fps=60 "$@"
else
echo "Múltiples dispositivos detectados:"
adb devices
echo ""
echo "Usa: scrcpy -s SERIAL"
fiHacer ejecutable:
Usar:
16 Recursos Adicionales
16.1 Documentación Oficial
- GitHub: https://github.com/Genymobile/scrcpy
- Documentación: https://github.com/Genymobile/scrcpy/tree/master/doc
- FAQ: https://github.com/Genymobile/scrcpy/blob/master/FAQ.md
16.2 Comunidad
- Reddit: r/scrcpy
- Issues: https://github.com/Genymobile/scrcpy/issues
16.3 Herramientas Complementarias
Para editar grabaciones:
Para capturas de pantalla adicionales:
Para streaming:
17 Resumen de Mejores Prácticas
17.1 Para Presentaciones
17.2 Para Grabaciones
17.3 Para Control Remoto
17.4 Para Documentación
18 Publicaciones Similares
Si te interesó este artículo, te recomendamos que explores otros blogs y recursos relacionados que pueden ampliar tus conocimientos. Aquí te dejo algunas sugerencias:
- Comandos De Informacion Windows
- Adb
- Limpieza Y Optimizacion De Pc
- Scrcpy
- Gestionar Versiones De Jdk En Kubuntu
- Instalar Tor Browser
- Crear Enlaces Duros O Hard Link En Linux
- Comandos Vim
- Guia De Git Y Github
- 00 Primeros Pasos En Linux
- 01 Introduccion Linux
- 02 Distribuciones Linux
- 03 Instalacion Linux
- 04 Administracion Particiones Volumenes
- Atajos De Teclado Y Comandos Para Usar Vim
- Instalando Specitify
- Gestiona Tus Dotfiles Con Gnu Stow
- Guia De Ranger
- Guia De Kitty Terminal
- Guia De Positron Ide
- Guia De Rsync
Esperamos que encuentres estas publicaciones igualmente interesantes y útiles. ¡Disfruta de la lectura!