Emulador PS2 / PSP + streaming de jogo (YouTube, Facebook, Twitch) = nova versão do Omega Red

Olá a todos os leitores!

Continuo o tema do emulador de software para o PlayStation 2 e o PlayStation Portable - Omega Red. Mais detalhes:


Eu escrevi esta publicação em conexão com a nova funcionalidade que eu adicionei ao projeto - transmissão de streaming de vídeo ao vivo e processo de jogos de áudio do emulador a serviços de Internet de streaming conhecidos.
Bem-vindo à Kat.


Para começar, observarei o seguinte - a idéia de integrar o suporte à transmissão pela Internet surgiu em meu outro projeto - CaptureManager SDK . Eu experimentei transmitir a partir de uma webcam e obtive um código viável. E a idéia "veio" - incorporar esse código no emulador de console de jogos!

A tarefa é interessante nos seguintes aspectos: captura de vídeo e áudio. Capturar da câmera é bastante simples, mas o que fazer com capturar vídeo do renderizador do emulador!?! Você pode encontrar o código para capturar toda a área de trabalho - mas é tão SIMPLES. E se você capturar gráficos diretamente do renderizador gráfico! Uma idéia semelhante com a captura de áudio - geralmente a captura de áudio é realizada no mixer do sistema como duplicação do fluxo de áudio para os alto-falantes. E se você capturar o áudio diretamente do renderizador de áudio ANTES do mixer do sistema!

Interessante! Original!

Como é implementado: o código de captura é adicionado ao renderizador DirectX 11 e ao renderizador DirectSound. O resultado da renderização de gráficos é transmitido diretamente ao codificador de vídeo H264 através da textura de vídeo DirectX 11 - isso permite que você use a codificação de vídeo acelerada por hardware em um acelerador de gráficos. O fluxo de áudio é roteado para o codificador de áudio AAC embutido no Windows.

O controle de captura consiste em duas partes:

  • configurar codificação e seleção do serviço de streaming da Internet para transmissão de vídeo ao vivo;
  • configuração do mixer - mistura de vídeo ao vivo com fontes adicionais (webcam, arquivos JPG / PNG / GIF (animados)).

Configuração de codificação:


A configuração de streaming começa com a escolha do modo de captura - "Streaming". Nesse modo, você pode ajustar a taxa de dados para fluxos de vídeo e áudio de acordo com a velocidade de conexão à Internet disponível. Separadamente, você pode escolher um serviço de streaming ou RECUPERAR MANUAL o endereço completo do servidor de streaming - por exemplo, servidor OWN baseado no MonaServer . É importante observar que não apenas uma conexão aberta é suportada, mas também uma conexão segura (SSL)! O serviço de streaming Facebook (sim, existe um) publicou o seguinte anúncio:

“A partir de 1º de novembro de 2019, deixaremos de oferecer suporte aos URLs do servidor RTMP. Depois disso, URLs desprotegidos não podem ser usados ​​para transmissões de vídeo. Atualize as configurações do dispositivo de codificação de vídeo e use os URLs seguros do RTMPS ”- decidi que o suporte ao RTMPS é promissor e gastei o tempo“ danificando ”o OpenSSL na biblioteca RTMP. E o código funciona !!! O Facebook faz stream através de uma conexão segura!

O fluxo inicia pressionando o botão de gravação / streaming:


As configurações do mixer ficam disponíveis após o início da gravação / streaming:



No painel “Mídia”, a guia “Fontes de mídia” fica disponível - essa guia inclui as fontes de fluxos de vídeo e áudio disponíveis para mixagem. Além de webcams e microfones, você pode adicionar arquivos JPG / PNG / GIF (animados).

Para microfones, você pode controlar a proporção de mixagem de fluxos de áudio. O microfone é selecionado clicando no botão de verificação, o controle de mixagem é realizado pelo controle deslizante.


Para uma fonte de vídeo, você pode controlar a mistura de fluxos de vídeo. A câmera é selecionada clicando no botão de verificação, o tamanho da imagem da câmera é selecionado através do menu suspenso.



A transparência (ou não transparência) da mistura pode ser controlada através de um controle deslizante separado.


A posição e o tamanho da mixagem de fluxos de vídeo podem ser alterados durante o streaming a qualquer momento:


Demonstração de streaming:





Atualmente, o programa está disponível em: Omega Red e é apresentado no GitHub: OmegaRed .

PS A qualidade do vídeo no fluxo é impressionante - eu tenho Internet ADSL - um fluxo constante no YouTube apenas a uma velocidade de fluxo de vídeo de até 256 Kbit - você não precisa cuspir na tela - isso não ajuda.

Source: https://habr.com/ru/post/pt456842/


All Articles