A versão em desenvolvimento do GStreamer implementa melhorias para o suporte a nvd3d11, nvcuda e nv para driver da Nvidia.
GStreamer
GStreamer é um framework para desenvolvimento de aplicações que lidam com streams multimedia, como áudio e vídeo. Foi escrito em linguagem C e é baseado em GObject. O GStreamer provê o serviço de multimedia dos aplicativos, como editores de vídeo, streaming de mídia e media players. Wikipédia
nvcodec: Adicionar nova implementação de codificador de modo Direct3D11/CUDA
Adicionando novos elementos de codificador nvd3d11{h264,h265}enc para Direct3D11, suporte de entrada e elementos nvcuda{h264,h265}enc reescritos.
Elementos recém-escritos têm algumas diferenças em comparação com os antigos
nv{h264,h265}enc incluindo alterações não compatíveis com versões anteriores.
- RGBA não é mais um formato de entrada suportado:
Novos elementos suportarão apenas formatos YUV para evitar conversão implícita
feito por hardware. Idealmente, isso deve ser feito pelo elemento upstream
para ter mais controle sobre ele. Além disso, o suporte RGBA pode causar
RGBA redundante -> conversão YUV se vários codificadores forem
usado para a mesma entrada RGBA
- O suporte ao formato plano subamostrado foi descartado:
Os formatos I420 e YV12 não são formatos suportados para Direct3D11.
Embora seja suportado no modo CUDA, não é compatível com hardware
layout de memória e desperdiçará a memória da GPU, pois os planos UV
terá grande preenchimento devido ao requisito de layout de memória do NVENC.
- O suporte GL foi descartado: Semelhante ao caso RGBA,
O suporte GL no codificador seria abaixo do ideal se a entrada GL fosse
usado por vários codificadores, porque cada codificador copiará a memória GL
na memória CUDA.
O elemento upstream cudaupload pode ser usado para GL <-> CUDA
interoperabilidade em vez disso.
- Não há mais pré-alocação de superfícies de entrada do codificador. Nova implementação
usará a memória CUDA de entrada sem cópia (cópia zero) ou
irá copiar para a estrutura de buffer de entrada de um NVENC em caso de
entrada de memória do sistema.
Instalação
Melhore o suporte ao GStreamer na sua distribuição executando o comando no terminal referente a ela.
Para Arch Linux e derivados.
sudo pacman -S ffmpeg gst-plugins-ugly gst-plugins-good gst-plugins-base gst-plugins-bad gst-libav gstreamer
Para Debian e derivados.
sudo apt install gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-plugins-bad ffmpeg
Para Fedora
Habilite o repositório rpmfusion.
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
Instale.
sudo dnf install gstreamer1-plugins-base gstreamer1-plugins-good gstreamer1-plugins-ugly gstreamer1-plugins-bad-free gstreamer1-plugins-bad-free gstreamer1-plugins-bad-freeworld gstreamer1-plugins-bad-free-extras ffmpeg
Para openSUSE
Habilite o repositório Packman
No openSUSE_Tumbleweed
zypper ar -cfp 90 http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/ packman
No openSUSE_Leap_15.2
zypper ar -cfp 90 http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_15.2/ packman
Confirme a alteração do repositório com o comando.
zypper dup --from packman --allow-vendor-change
Instale.
sudo zypper install ffmpeg gstreamer-plugins-libav gstreamer-plugins-bad gstreamer-plugins-ugly gstreamer-plugins-good gstreamer-fluendo-mp3
O open source beneficia o proprietário mas esse nem sempre
ResponderExcluir