Scrcpy
¿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”
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
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 |
Características Principales
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)
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
Requisitos Previos
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:
En Arch Linux
Paquetes necesarios:
Si falta algo:
Instalación en Arch Linux
Método 1: Instalación desde Repositorios Oficiales (Recomendado)
Verificar instalación:
Método 2: Instalación desde AUR (Versión de Desarrollo)
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 --versionConfiguración Inicial
1. Configurar ADB
ADB (Android Debug Bridge) es necesario para scrcpy.
2. Configurar Permisos de Usuario
En Arch Linux, tu usuario debe estar en el grupo adbusers:
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:
4. Primera Conexión
Debe aparecer la pantalla del dispositivo en una ventana.
Uso Básico
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
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 -SEjemplos 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-audioConexión del Dispositivo
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 cortaConexión TCP/IP (Inalámbrica)
Método 1: Automático
Desde USB a WiFi automáticamente:
Si ya sabes la IP del dispositivo:
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.
Variable de Entorno
Control de Video
Resolución y Calidad
Limitar Resolución
Regla: La otra dimensión se calcula automáticamente manteniendo la relación de aspecto.
Tasa de Bits
Tasa de Fotogramas
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
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° horarioRecorte de Pantalla
Bufferización
Sin Reproducción de Video
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.firefoxControl de Audio
Habilitar/Deshabilitar Audio
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):
Duplicación de Audio (Android 13+)
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=8Bitrate de Audio
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=10Grabación de Pantalla
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.wavFormatos 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:
Grabación Sin Reproducción
Límite de Tiempo
Ejemplos de Grabación Profesional
Tutorial de App Móvil (Alta Calidad)
Presentación Académica (Balance)
Grabación de Podcast (Solo Audio)
Demo de Análisis Econométrico (Pantalla + Audio)
Atajos de Teclado
MOD es el modificador de atajos. Por defecto: Alt (izquierda) o Super (Windows/Cmd).
Cambiar MOD:
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) |
Casos de Uso Profesionales
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
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
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.
Caso 4: Control Remoto para Demostraciones
Escenario: Controlar dispositivo de forma remota vía WiFi.
Caso 5: Documentación de Aplicación con Capturas
Escenario: Documentar flujo de trabajo de app.
Caso 6: Podcast/Entrevista con Audio Móvil
Escenario: Grabar entrevista usando el teléfono como grabadora.
Troubleshooting
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 devicesProblema 2: “Error: could not install server”
Causa: No hay espacio en /data/local/tmp o permisos incorrectos.
Soluciones:
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 -versionProblema 4: “Audio entrecortado o robótico”
Soluciones:
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)Problema 6: “No se puede copiar/pegar”
Requisito: Android 7 o superior.
Soluciones:
Problema 7: “Dispositivo Xiaomi no responde”
Solución específica Xiaomi:
Problema 8: “OTG no funciona en Windows”
Causa: Windows no permite abrir dispositivo USB si ya está abierto por otro proceso (adb).
Solución:
Comandos de Referencia Rápida
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=aacGrabación
Audio
Control
Teclado/Mouse
Pantalla Virtual
Cámara
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.opusConfiguración Permanente
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:
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:
Recursos Adicionales
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
Comunidad
- Reddit: r/scrcpy
- Issues: https://github.com/Genymobile/scrcpy/issues
Herramientas Complementarias
Para editar grabaciones:
Para capturas de pantalla adicionales:
Para streaming:
Resumen de Mejores Prácticas
Para Presentaciones
Para Grabaciones
Para Control Remoto
Para Documentación
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
- Usando Apk En Windown 11
- 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
Esperamos que encuentres estas publicaciones igualmente interesantes y útiles. ¡Disfruta de la lectura!