Hola a todos los lectores!
Continúo con el tema del emulador de software para PlayStation 2 y PlayStation Portable - Omega Red. Más detalles:
Escribí esta publicación en relación con la nueva funcionalidad que agregué al proyecto: transmisión en tiempo real del proceso de video juegos y audio en vivo desde el emulador a servicios de Internet de transmisión conocidos.
Bienvenido a Kat
Para comenzar, señalaré lo siguiente: la idea de integrar el soporte para la transmisión por Internet surgió de mi otro proyecto:
CaptureManager SDK . Experimenté con la transmisión desde una cámara web y obtuve un código viable. Y la idea "surgió": ¡incrustar este código en el emulador de la consola de juegos!
La tarea es interesante en los siguientes aspectos: captura de video y audio. Capturar desde la cámara es bastante simple, pero ¿qué hacer con la captura de video desde el renderizador del emulador? Puede encontrar código para capturar todo el escritorio, pero es tan SIMPLE. ¡Y qué pasa si captura gráficos directamente desde el procesador de gráficos! Una idea similar con la captura de audio: por lo general, la captura de audio se realiza desde el mezclador del sistema como duplicación de la transmisión de audio a los altavoces. ¡Y qué pasa si captura audio directamente desde el procesador de audio ANTES del mezclador del sistema!
Interesante! Original!
Cómo se implementa: el código de captura se agrega al procesador DirectX 11 y al procesador DirectSound. El resultado de la representación gráfica se transmite directamente al codificador de video H264 a través de la textura de video DirectX 11; esto le permite utilizar la codificación de video acelerada por hardware en un acelerador de gráficos. La transmisión de audio se enruta al codificador de audio AAC integrado en Windows.
El control de captura consta de dos partes:
- configuración de codificación y selección del servicio de transmisión de Internet para transmitir video en vivo;
- configuración del mezclador: mezcla de video en vivo con fuentes adicionales (cámara web, archivos JPG / PNG / GIF (animados)).
Configuración de codificación:
La configuración de transmisión comienza con la elección del modo de captura: "Transmisión". En este modo, puede ajustar la velocidad de datos para transmisiones de video y audio de acuerdo con la velocidad de conexión a Internet disponible. Por separado, puede elegir un servicio de transmisión o RECUPERAR LA MANUAL dirección completa de un servidor de transmisión, por ejemplo, SU PROPIO servidor basado en
MonaServer . ¡Es importante tener en cuenta que no solo se admite una conexión abierta, sino también una conexión segura (SSL)! El servicio de transmisión de Facebook (sí, hay uno) publicó el siguiente anuncio:
“A partir del 1 de noviembre de 2019, dejaremos de admitir las URL del servidor RTMP. Después de eso, las URL desprotegidas no se pueden usar para transmisiones de video. Actualice la configuración del dispositivo de codificación de video y use las URL RTMPS seguras ". Decidí que el soporte RTMPS era prometedor y pasé el tiempo" atornillando "OpenSSL a la biblioteca RTMP. ¡Y el código FUNCIONA! ¡Facebook toma corriente a través de una conexión segura!
La transmisión comienza presionando el botón de grabación / transmisión:
La configuración del mezclador estará disponible después de que comience la grabación / transmisión:

En el panel “Medios”, la pestaña “Fuentes de medios” estará disponible; esta pestaña incluye las fuentes de secuencias de video y audio disponibles para mezclar. Además de cámaras web y micrófonos, puede agregar archivos JPG / PNG / GIF (animados).
Para los micrófonos, puede controlar la proporción de mezclas de secuencias de audio. El micrófono se selecciona haciendo clic en el botón de verificación, el control deslizante realiza el control de mezcla.
Para una fuente de video, puede controlar la mezcla de transmisiones de video. La cámara se selecciona haciendo clic en el botón de verificación, el tamaño de la imagen de la cámara se selecciona a través del menú desplegable.
La transparencia (o no transparencia) de la mezcla se puede controlar a través de un control deslizante separado.
La posición y el tamaño de la mezcla de transmisiones de video se pueden cambiar durante la transmisión en cualquier momento:
Demostración de transmisión:
Actualmente, el programa está disponible en:
Omega Red y se presenta en GitHub:
OmegaRed .
PD: La calidad de video en la transmisión es de higo: tengo ADSL Internet; una transmisión constante en YouTube solo con una velocidad de transmisión de video de hasta 256 Kbit; no es necesario escupir en la pantalla; no ayudará.