Lo que aprendí al ejecutar una transmisión de Twitch de programación en vivo desde Linux

Recientemente completé mi primera sesión de transmisión de codificación. Algunas personas miraron durante unos minutos, así que lo consideré un éxito. Usé lo que ya tenía a mano, no gasté dinero y pude transmitir durante aproximadamente 3 horas desde código cero hasta un pequeño proyecto completado. Hay mucho margen de mejora, pero quiero compartir lo que solía comenzar.

Mi motivación para transmitir mis sesiones de codificación es mejorar mis habilidades de comunicación, así como educar y demostrar a los demás cómo ser productivo con los lenguajes de programación y la tecnología que me gusta usar.


Mi configuración de transmisión

Estoy ejecutando Linux en mi System76 Gazelle ordenador portátil. Mi distribución es Manjaro 20 (KDE Plasma).

Los siguientes son el hardware + software que ya tenía

  • Cámara web portátil
  • Micrófono de condensador (uso un Behringer C-1U)
  • Soporte de micrófono ajustable
  • Monitor externo
  • Teclado externo
  • Ratón externo
  • Software de transmisión (usé OBS. Más sobre eso más adelante)
  • Editor de texto (usé VSCode)
  • Terminal (usé Alacritty + el terminal incorporado en VSCode)
  • navegador web

Mi configuración de transmisión básica adicional.  No gaste mucho dinero antes de tener impulso.
Mi configuración de transmisión básica adicional. No gaste mucho dinero antes de tener impulso.


Establezca expectativas precisas para usted y los espectadores potenciales

Vi algunas secuencias de codificación de personas que veo en el espacio con regularidad antes de ejecutar la mía propia. No quería reinventar la rueda, así que tuve que experimentar lo que funciona para otros e identificar cualquier cosa que sea común. Bastante Ninguno está haciendo algo completamente único, así que decidí que aprendería copiando lo que funciona para otros streamers de codificación.


Crea una estructura suelta para guiarte


Escribe tu título con intención

A menos que tenga una comunidad existente, trate de evitar clickbait de bajo valor.

Como humilde desconocido, necesito traer un título de transmisión simple pero descriptivo.

Quiero que la gente sepa:

  • En qué idioma estoy escribiendo.
  • Qué tecnología elegante Planeo usar, si lo hay.
  • Objetivo sucinto (énfasis en singular!)

Algo para tener en cuenta: Los títulos se truncan en unos 40 caracteres. Después de eso, los espectadores tendrán que esforzarse para pasar el mouse sobre su título para leer más allá del corte.

¿El título que elegí?

[Rust] Línea de comandos remota de GRPC usando Tonic + CLAP – Escribir una publicación de blog


Agrega una descripción y ten un plan

La mayoría de los streamers tienen un tema limitado para su tiempo en línea con el fin de establecer expectativas para los espectadores.

Deje que sus espectadores sepan explícitamente lo que van a ver en su descripción para que puedan decidir si se quedarán. De lo contrario, te harán las mismas preguntas o la gente simplemente se saldrá con desinterés.

Específico de mi primera transmisión:

Quería dedicar tiempo a escribir el código de Rust de ejemplo para otra publicación de blog que tengo en progreso.

Con eso en mente:

Descripción

  • El objetivo principal es escribir un pequeño servidor / cliente gRPC controlado por CLI en Rust
  • El objetivo secundario es documentar mi proceso, incluida la búsqueda de documentación y pruebas.

Plan

  • En mis notas, dividí los dominios de la aplicación en objetivos ordenados que podía seguir.
  • Tomaría cada dominio de uno en uno con la intención de conectar cada uno de ellos a medida que cada sección se volviera lo suficientemente estable como para probar con la entrada del usuario.


Preparación técnica

Como no quería preocuparme por que todo fuera perfecto, me enfoqué en algunos detalles y preferencias personales sobre la transmisión.

  • No transmitir todo mi escritorio, sino ventanas individuales.
    • (Pensé que esto sería más fácil para los espectadores).
  • Incluyendo un fondo para el espacio negativo
  • Pequeño banner en pantalla que incluye enlaces a mis otras plataformas en línea
  • Solo micrófono, sin música externa
  • Colocación de la cámara web lo más cerca del nivel o apuntando hacia abajo en mi cara
    • Para que la gente no tuviera que mirarme por la nariz

No me preocupé por tener el chat visible, pero lo tenía abierto para interactuar con él por si acaso.


Configurar software de transmisión

Twitch tiene una lista de software recomendado para retransmisiones. Terminé usando Open Broadcaster Software, más conocido como OBS porque tiene soporte para Linux.

Open Broadcaster Software también conocido como OBS
Open Broadcaster Software también conocido como OBS

No voy a repasar los detalles profundos de OBS, pero animo a buscar tutoriales en Youtube. Incluso en 2020, los tutoriales de OBS para principiantes de hace unos años siguen siendo relevantes y utilizables. Ayudaron a que el uso de OBS sea mucho menos intimidante.

Habilite la vista previa y prepárese para pasar un poco de tiempo en OBS. Lo que ve en la vista previa es lo que se transmitirá. Empiece simple. One Scene, y comience con una fuente y agregue fuentes a medida que se familiarice.


Guía de inicio rápido de fuentes

Aquí hay una breve lista de fuentes que puede querer agregar desde un escritorio de Linux a OBS y lo que se traducen a utilizables en OBS.

Descripción de entradaFuente OBSNotas
Escritorio completoCaptura de pantalla (XSHM)Si tiene varios monitores, deberá seleccionar la pantalla que desea mostrar
Ventana específicaCaptura de ventana (XComposite)Deberá seleccionar la ventana que desea que se muestre. Una fuente por ventana
ImagenImagenProbado con JPEG, PNG
Cámara webDispositivo de captura de video (V4L2)Deberá seleccionar su cámara web en Dispositivos si tiene varias cámaras conectadas
Tarjeta de capturaDispositivo de captura de video (V4L2)Al igual que con la cámara web, deberá seleccionar su dispositivo de tarjeta de captura. Especialmente si también tiene una cámara web conectada a su computadora
Micrófono– Dispositivo de captura de audio (ALSA)
– Entrada de captura de audio (PulseAudio)Puede que sea más fácil configurar el audio a través de: Configuración> Audio> Dispositivos, especialmente si desea deshabilitar las fuentes.
Audio de escritorio– Dispositivo de captura de audio (ALSA)
– Entrada de captura de audio (PulseAudio)(Ver notas para micrófono)

Esto puede diferir ligeramente de lo que guía oficial de OBS Sources documentos, pero si elige usar Linux para transmitir, probablemente ya lo espera.

Como se ven las fuentes de OBS en Linux
Como se ven las fuentes de OBS en Linux

los Sources > Add El menú desplegable tiene íconos que dan buenas pistas sobre lo que hacen. Tus resultados pueden variar, así que prepárate para jugar con la configuración. (Pero ya lo sabe si insiste en usar Linux …)


Soluciones provisionales para pantallas oscurecidas con configuraciones de GPU híbridas para portátiles

Un problema con el que me encontré al escribir su guía fue no poder usar una sola ventana como fuente de transmisión. Agregar la fuente resultó en una ventana que se oscureció, pero el cursor de mi mouse todavía estaba visible cuando estaba sobre la ventana.

La ventana de VSCode está ennegrecida en OBS, pero mi cursor todavía está visible ...
La ventana de VSCode está ennegrecida en OBS, pero mi cursor todavía está visible …

Para solucionarlo, puede elegir una de las siguientes soluciones:

  • Obliga a que OBS y todas tus ventanas se ejecuten en la misma GPU. Algunos programas, como los navegadores web o los IDE, utilizan la aceleración por hardware de forma predeterminada. Puede habilitar / deshabilitar en consecuencia para que coincida con OBS.
  • O puede reiniciar su computadora portátil en modo integrado o GPU (es decir, no en modo híbrido)

La razón se debe a cómo funciona la GPU híbrida. OBS y la ventana que estaba tratando de mostrar se estaban ejecutando en diferentes gpus.

Para obtener más información, lea este hilo de los foros del proyecto OBS.


Configuración de claves API para transmisión

Configuración de la clave de transmisión de OBS
Configuración de la clave de transmisión de OBS

La ubicación donde agrega su clave de flujo de servicio es muy fácil de navegar a:

Settings > Stream

Seleccione el servicio al que desea transmitir e ingrese la Clave de transmisión.

Hay muchos servicios preconfigurados en OBS, por lo que probablemente solo necesitará proporcionar su clave de transmisión y no la URL del servicio.

Enlaces comunes a donde puede obtener su clave de transmisión:

(Yo uso un servicio llamado Restream que es compatible con OBS. Restream transmitirá a múltiples servicios al mismo tiempo. Lo uso para transmitir en YouTube y Twitch simultáneamente).


No pienses demasiado y comienza a transmitir

No se preocupe por la perfección.  Solo da el primer paso y comienza.
No se preocupe por la perfección. Solo da el primer paso y comienza.

Lo primero que noté después de transmitir en vivo fue que las plataformas a las que estaba transmitiendo tenían un retraso notable entre mis acciones y verlo en vivo en el navegador.

Cuando empiece por primera vez, probablemente no habrá mucha gente mirando. Esto será bueno porque notarás muchos detalles que querrás mejorar.

Me lo digo a mí mismo en beneficio de cualquier otra persona que haya llegado tan lejos:

Se necesitará tiempo, esfuerzo y consistencia de su parte antes de ver los resultados. Así que relájate, trata de divertirte y disfruta del proceso.


Si llegaste hasta aquí, ¡gracias!

Por favor échame un vistazo en mi canal de Twitch. Transmito sesiones de codificación semanales sobre el uso de temas de Rust y DevOps. ¡Espero que estés considerando seguirme!