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.