Copyright (c) 2001-2004 Universidade do Sul da Califórnia
Copyright (c) 2003-2004 Universidade de Glasgow
Copyright (c) 2013-2014 Fundação i2CAT, Internet e Inovação Digital na Catalunha
Copyright (c) 2005-2023 CESNET zspo
Todos os direitos reservados.
Este software é distribuído sob licença, consulte o arquivo COPYRIGHT para obter os termos e condições completos.
Sobre UltraGrid
Requisitos de hardware e software
Preliminares de Software Necessário
Usando o sistema UltraGrid
Documentação
UltraGrid trazido pelo Laboratório de Tecnologias Avançadas de Rede da CESNET (Sitola) é uma implementação de software de transmissões de vídeo e áudio de alta qualidade e baixa latência usando hardware comum. As resoluções suportadas variam de HD (1920x1080) até 8K (7680x2160) com até 60 quadros por segundo. Outros recursos estão listados aqui.
A alta qualidade é alcançada usando fluxos não compactados ou fluxos com taxa de compactação muito baixa. A latência de transmissão ponta a ponta (ou seja, desde a câmera até a tela) é de cerca de 100 ms, mas varia de acordo com a câmera e as placas de captura usadas. UltraGrid foi originalmente um projeto de pesquisa usado para demonstrar as possibilidades de redes de 10 Gbps e para estudar a distribuição de dados multiponto em tais ambientes. Avanços recentes no campo de codecs de baixa latência acelerados por GPU estendem sua usabilidade também para redes Gigabit. As compressões de alta taxa de compactação permitem o uso adicional de qualquer conexão de rede comum, incluindo uma conexão de Internet compartilhada.
UltraGrid é compatível com estações com sistema operacional Linux, Windows ou macOS. O software é de código aberto distribuído sob licença BSD, ou seja, estamos interessados em aplicações de pesquisa/acadêmicas e comerciais. Hoje em dia, as principais áreas de aplicação são ambientes colaborativos, aplicações médicas, cinematográficas e de radiodifusão, bem como diversas atividades educacionais.
É um fork do UltraGrid original desenvolvido por Colin Perkins, Ladan Gharai, et al..
Nosso trabalho é apoiado pelas intenções de pesquisa da CESNET "Rede Óptica de Pesquisa Nacional e Suas Novas Aplicações" (MŠM 6383917201), CESNET Grande Infraestrutura (LM2010005), CESNET E-Infraestrutura (LM2015042) e parcialmente também pela intenção de pesquisa da Universidade Masaryk "Paralela e Distribuída Sistemas" (MŠM 0021622419).
O conteúdo deste diretório é o seguinte:
bin/ Compiled binaries data/ Various assets used by UG that is not source code doc/ Documentation ext-deps/ External dependencies that are required by UG gui/ Sources for UltraGrid GUI hd-rum-multi/ Simple standalone packet reflector src/ Source code for the UltraGrid system package_specs/ Specifications for OBS test/ Source code and binaries for test routines tools/ Small standalone helper tools autogen.sh Build script configure.ac " " Makefile.in " " CONTRIBUTING.md Various information for contributors COPYRIGHT Full license terms and conditions Doxyfile Doxygen configuration INSTALL Installation instructions NEWS Change log and modification history README.md This file
Existem também subdiretórios cuda_dxt
, dxt_compress
e ldgm
que contêm bibliotecas que fazem parte do UltraGrid, mas são relativamente independentes e independentes.
Configuração de hardware recomendada:
CPU de 64 bits com pelo menos 2 núcleos
Placa gráfica compatível com OpenGL recomendada
A compactação DXT na GPU é testada com OpenGL 3.3
A compactação GPUJPEG requer uma placa NVidia
várias compressões aceleradas por HW suportadas com GPUs recentes ( NVENC / NVDEC , QuickSync , VA-API , VideoToolbox , VDPAU )
Para fluxos não compactados de 1,5 Gbps (envio ou recebimento), é necessária uma placa de interface de rede de 10 GbE
Testamos com PCIe Myrinet 10GbE
Para recursos de envio/recebimento SDI , é necessário cartão AJA , Bluefish444 , Blackmagic , DELTACAST ou Magewell
A placa de captura de vídeo deve estar localizada em um barramento PCI separado da placa de rede, se possível.
Você precisará deste software (entre colchetes estão os recursos opcionais para os quais você precisará dele):
Drivers proprietários AMD/NVidia para desempenho ideal
Drivers AJA/Blackmagic/DELTACAST
Para compilar o UltraGrid você precisará preparar o ambiente de construção e instalar dependências para vários módulos. Para obter informações atualizadas, consulte nosso wiki.
O INSTALL fornece instruções para a construção do sistema UltraGrid. Assim que o sistema for construído, o binário uv
estará presente. Isso pode ser invocado da seguinte forma:
uv -t-c hostname (on the sender) uv -d hostname (on the receiver)
O -d help
.
O -t help
. O nome do dispositivo de captura geralmente segue a configuração do modo de vídeo, entrada de vídeo, etc. Todas as opções podem ser exibidas interativamente usando a ajuda integrada, por exemplo. -t decklink:help
.
O -c help
. Se a compactação não for especificada, o vídeo será transmitido descompactado (nesse caso, considere definir MTU com -m
).
Outras opções seguem a ajuda da linha de comando do UltraGrid (-h) ou visite esta página wiki para obter mais informações.
Por exemplo, se um usuário no host "normal" deseja enviar áudio e vídeo capturados usando uma placa BMD DeckLink para outro usuário no host "curtis" com um display usando o driver OpenGL e reprodução de áudio Portaudio, então o usuário no host "normal" " seria executado:
uv -t decklink -c libavcodec:codec=H.264 -s embedded --audio-codec OPUS curtis
enquanto o usuário em "curtis" executaria:
uv -d gl -r portaudio ormal
O sistema requer acesso às portas UDP 5004 e 5006: você deve abrir essas portas em qualquer firewall no caminho da rede. Os formatos de vídeo de alta definição não compactados requerem aproximadamente 1 Gigabit por segundo de capacidade de rede. Usando diferentes esquemas de compactação suportados, a capacidade de rede necessária pode ser tão baixa quanto 10 Megabits por segundo para um vídeo de alta definição.
A documentação pode ser encontrada off-line (além deste documento) e on-line . A documentação online é mais abrangente e atualizada, a offline é bastante complementar.
A documentação online está disponível em nosso wiki do GitHub.
A documentação integrada do UltraGrid pode ser encontrada no subdiretório doc, estes documentos estão disponíveis:
Adicionando módulos ( somente desenvolvedores ) - informações sobre como adicionar novos módulos UltraGrid
Ajuste de desempenho – vários ajustes para melhorar o desempenho do UltraGrid
Relatando bugs – etapas recomendadas para relatar bugs