Este programa permite "gravar" sua área de trabalho ou até mesmo transmiti-la!
Inclui alguns auxiliares para "gravar sua captura de tela/transmiti-la" e utilitários de configuração. Também inclui um auxiliar (capturador de áudio virtual) para gravar "o que você ouve/vê em sua área de trabalho" para o sistema Vista+.
Para usá-los, você deseja/precisa primeiro do Java JRE instalado em seu sistema. Instale em java.com se ainda não o tiver instalado.
Ele também inclui um filtro de captura de fonte de desktop/tela directshow gratuito, de uso geral e de código aberto.
Você pode usar isso com qualquer programa (compatível com DirectShow) para capturar ou transmitir, como VLC, etc.
Consulte também o arquivo ChangeLog.txt para obter uma lista de alterações nas versões mais recentes.
Baixe o instalador e execute, em
https://github.com/rdp/screen-capture-recorder-to-video-windows-free/releases
Ele também inclui um dispositivo de filtro de captura de fonte DirectShow para gravar "o que você ouve" no Windows 7/Vista - qualquer placa de som! consulte https://github.com/rdp/virtual-audio-capture-grabber-device para obter informações/solução de problemas desse dispositivo de captura de áudio.
Use alguns programas auxiliares fornecidos no menu Iniciar → Programas → Gravador de captura de tela → gravar desktop[/broadcast/XXX
Ou use qualquer programa de terceiros que possa ler um dispositivo de captura Directshow (ex: VLC/FFmpeg).
Exemplo de VLC: http://betterlogic.com/roger/2010/07/how-to-use-vlc-as-a-free-open-source-alternative-to-playon-tv
Exemplo de ffmpeg:
$ ffplay -f dshow -i video="gravador de captura de tela"
ou
$ ffmpeg -f dshow -i video="screen-capture-recorder" -r 20 -t 10 screen-capture.mp4 # -t 10 para gravação de 10 segundos
ou combine-o com a gravação de áudio "o que você ouve" [vista/windows 7] (usando ffmpeg neste exemplo):
$ ffmpeg -f dshow -i audio="virtual-audio-capturer":video="gravador de captura de tela" yo.mp4
Observe também que o ffmpeg possui uma opção de entrada "gdigrab" integrada que você também pode usar em vez do gravador de captura de tela.
O nome do dispositivo de áudio também pode ser qualquer outro dispositivo de áudio dshow.
Avisynth também trabalha com isso. Adicione-o a um gráfico de filtro usando o graphedit e, em seguida, use DirectShowSource como sua fonte de entrada com o nome de arquivo do graphedit especificado.
gstreamer também funciona, ex:
$ gst-launch.exe dshowvideosrc nome do dispositivo = gravador de captura de tela! ffmpegcolorspace ! coletor direto
Eu até usei o Skype acidentalmente, pensando que era minha webcam. Deixe-me saber se você quiser uma maneira mais fácil de fazer isso para qualquer coisa.
Por padrão, ele captura a "tela inteira" do monitor principal da área de trabalho (todas as janelas, sobrepostas, a partir daí, com aero se for vista +, sem janelas transparentes se não for aero).
Para configurá-lo de forma diferente, execute os "utilitários/atalhos de configuração" fornecidos ou ajuste as configurações do registro antes de iniciar uma execução (somente usuários avançados):
HKEY_CURRENT_USERSoftwaregravador de captura de tela
com chaves DWORD respeitadas de start_XXX etc… (consulte o arquivo incluído {installdir}configuration_setup_utilitysetup_screen_tracker_params.rb para obter a lista completa de valores de chave de registro disponíveis ou consulte https://github.com/rdp/screen-capture-recorder-to-video-windows-free/blob/master/configuration_setup_utility/setup_screen_tracker_params.rb#L9)
ex: veja o arquivo configuration_setup_utilityincoming.reg (embora lembre-se de que esses valores estão em hexadecimal, então editar esse arquivo é um pouco tedioso - eu sempre uso apenas o regedit ou os utilitários de script que o acompanham e não o edito manualmente).
Para "redefinir" um valor, exclua sua chave.
OU
crie um arquivo chamado este: %APPDATA%ScreenCaptureRecorder.ini
com conteúdos como este, todos vão para a seção "all_settings"
sua_primeira_configuração=1 sua_segunda_configuração=100…
Por padrão ele lê primeiro o registro, se não encontrar algo definido lá, ele irá procurar no arquivo .ini.
Execute o utilitário "comparar sua velocidade de captura" para ver quão lento seu sistema pode capturar.
Se você estiver no Vista +, desative o gerenciador de exibição aero (especialmente se você tiver monitores duplos, isso pode ajudar). http://www.howtogeek.com/howto/windows-vista/disable-aero-on-windows-vista
Ele captura muito mais rapidamente se o aero estiver desligado (como no aero, capturar uma janela de 650x976 leva 50ms, sem aero, 3ms.
O restante de uma única captura de tela leva cerca de 7ms (soma 10ms sem aero), então você pode ver o custo relativo que ela adiciona [!].
Há também uma configuração de registro para desligá-lo “automaticamente”.
Só consegui obter no máximo 15 fps ao capturar aero [envie-me um email se quiser que eu tente melhorar um pouco isso, tenho algumas ideias…].
Desativar ou ativar a "aceleração de hardware" para a área de trabalho também pode ajudar, ou configurá-la para um ponto acima de nenhum
Tente mudar de entrada de 32 para 24 bits ou 16 bits (a partir desta) e/ou mudar a profundidade da sua área de trabalho – ou ambos! o mais rápido é a tela de 16 bits com captura no modo de 16 bits – 400 fps, uau!).
Certifique-se de ter RAM suficiente disponível (sabe-se que o VirtualBox consome um pouco sem avisar). Desative também o aero, se possível.
Observe que se sua saída for, digamos, 10 fps "realmente usados" no final, ex: $ ffmpeg -f dshow -i video=video-capture-recorder -r 10 yo.mp4 -r 10 # arquivo de saída é apenas 10 fps
Então, para economizar CPU, um aplicativo "bom" também instruirá o "fps de origem" para ser 10 fps $ ffmpeg -framerate 10 -f dshow -i video=video-capture-recorder -r 10 yo.mp4 # entrada e saída são definido como 10
para uma explicação de por que "framerate" e não "-r" aqui, consulte https://trac.ffmpeg.org/wiki/DirectShow#Specifyinginputframerate
que eles passem para esse filtro, e todos estejam em 10 fps e esperançosamente felizes, e a CPU esteja salva. ex: vlc.exe dshow://… :dshow-fps=10 vlc então passa isso para SetFormat após a negociação, e o dispositivo aceita e alimenta você a 10 fps.
Alguns aplicativos directshow "ruins" não passam esse parâmetro. A maioria pode. Portanto, pode haver um caso em que ele esteja desperdiçando CPU de alguma forma, capturando muitos ou algo parecido. Portanto, para esses programas, você desejará definir o parâmetro max fps, o que limitará sua frequência de captura.
Definir o fps máximo para mais de 30 também permite obter fps maiores que 30 (o máximo padrão). Ele os "habilita", dando-lhes um padrão máximo mais alto. Eu não achei que as pessoas normalmente se importariam / as desejariam, então aí está.
NB: para usá-lo como uma câmera de entrada do Skype, você precisa especificar que é uma captura razoavelmente pequena, consulte http://betterlogic.com/roger/2012/04/skype-directshow-device-just-shows-circles- para a captura de visualização/
Limitação conhecida, tente este tópico: https://groups.google.com/forum/#!topic/roger-projects/uxmGV_vW4iY [ou pague-me um pouco de dinheiro e criarei um front-end para o excelente projeto OBS para fornecer esta funcionalidade]
Outros comentários/problemas/perguntas enviem-me um ping para [email protected] ou naveguem na lista de discussão: http://groups.google.com/group/roger-projects Ou enviem para nosso uservoice: http://rdp.uservoice. com
Você pode redistribuir isso. Consulte o arquivo LICENSE.TXT. Se fizer isso, talvez você só precise distribuir, por exemplo, o arquivo PushDesktop.dll. Se fizer isso, você terá que registrar este dispositivo, registrando sua dll (como $ regsvr32 PushDesktop.dll - pode exigir direitos de administrador) como parte de seu instalar. Observe também que os usuários finais também precisam do MSVC 2010 redistribuível previamente instalado (ou você deve disponibilizá-lo no mesmo diretório do seu exe) para que a dll funcione/instale, caso os usuários finais não a tenham instalada). Se você alterá-lo e redistribuí-lo, você pode querer alterar os GUIDs, para que não entre em conflito se alguém também instalar este software. Veja também #17
O código é suavemente baseado/retirado ("inspirado por") do SDK do Windows 7.1 ….Microsoft SDKsWindowsv7.1Samplesmultimediadirectshowfilterspushsource bem como algumas outras demos do dshow em torno da rede (captura virtual tmhare). então você provavelmente desejará instalar o SDK do Windows antes de mexer no código-fonte. Para hackear o código, crie as classes base directshow do SDK do Windows e abra source_code/*.vcxproj no visual studio 2010 express. O objetivo disso é fornecer um "filtro directshow" que você pode usar em seu gráfico, não uma demonstração de como fazer gráficos. Ele gera um arquivo .dll que você "registra" por meio (no console do administrador) $ regsvr32 XXX.dll (e cancela o registro quando terminar com regsvr32 /u XXX.dll). Existem também alguns scripts para definir os valores do registro (escritos em ruby/jruby atualmente para a GUI), mas você não precisa ajustá-los para mexer no filtro em si.
Posso adicionar recursos mediante demanda razoável.
Basicamente, você quer um recurso, envie-me um ping, você conseguiu.
Para construí-lo localmente, instale o VS Express 2010, instale o Microsoft SDK, abra seu equivalente a Program FilesMicrosoft SDKsWindowsv7.1Samplesmultimediadirectshowbaseclassesbaseclasses.sln construa-o (depure) agora adicione para sua construção local (propriedades do projeto, de source_codepushdesktop.sln) ajuste os diretórios VC++ (Include/Library) para apontar para seu vários diretórios de classe base.
O utilitário de teste de velocidade incluído era originalmente de http://stereopsis.com/blttest (o bitblt depende bastante do hardware, pelo que me disseram, é bom poder testar sua velocidade).
Binários FFmpeg também estão incluídos, consulte o site para obter detalhes/fonte de licenciamento: http://ffmpeg.org
http://obsproject.com é de código aberto, não usa FFmpeg, mas pode funcionar para você. Pode até capturar DirectX woot. http://www.ffsplit.com não é de código aberto, mas captura/transmite desktop usando FFmpeg. http://camstudio.org é de código aberto e gratuito, mas requer que você use apenas os codecs locais instalados em seu sistema Windows e tem alguns problemas de usabilidade, e é por isso que comecei este projeto :)