---
title: Transcodificador Intel VPL: hardware suportado
url: https://doc2.pstreamer.tv/pt/manual/extras/intel_hw.html
lang: pt-BR
product: Perfect Streamer
version: 2.0.2.362
---

# Transcodificador Intel VPL: hardware suportado

Qual hardware Intel é adequado para a transcodificação por hardware, quais codecs estão disponíveis nas diferentes gerações de gráficos e como verificar que o hardware foi reconhecido. A instalação dos pacotes do transcodificador está descrita na seção [Transcodificadores](../install/transcoder.md#install-transcoder); a configuração do próprio transcodificador — em [Transcodificadores](../streamer/transcoder.md#streamer-transcoder).

Em resumo: é necessária uma placa gráfica Intel integrada ou dedicada de nível Gen9 ou superior. O transcodificador detecta qual runtime Intel está presente na máquina e se conecta a ele; um mesmo arquivo executável `tcivpl` funciona tanto em hardware novo quanto em hardware antigo.

## Dois runtimes Intel

| Runtime | Hardware |
| --- | --- |
| **oneVPL (VPL v2)** | Gen12 e mais recentes: Tiger Lake, Rocket Lake, Alder Lake (incluindo Alder Lake-N: N100, N305), Raptor Lake, Arc |
| **Media SDK v1 (MSDK v1)** | Gen9–Gen11: Skylake, Kaby Lake, Coffee Lake, Comet Lake, Ice Lake |

A escolha do runtime é automática e não exige configuração à parte: o dispatcher VPL lista as implementações encontradas para o dispositivo `/dev/dri/renderD<N>` selecionado, e o transcodificador utiliza a primeira que seja adequada à operação por hardware. Não há no transcodificador uma regra própria de «preferir o VPL v2» — para Gen9–Gen11 o novo runtime simplesmente não existe, portanto ali sempre se encontra o Media SDK v1, ao passo que em Gen12 e mais recentes normalmente está instalado apenas o oneVPL.

Leve isso em conta ao escolher o hardware: os procedimentos de instalação do transcodificador ([Transcodificadores](../install/transcoder.md#install-transcoder)) instalam apenas o runtime VPL v2, ou seja, são destinados a Gen12 e mais recentes. Para Gen9–Gen11 o runtime Media SDK v1 é instalado separadamente e pode não estar presente nas distribuições recentes (veja abaixo).

## Codecs

| Runtime | Decodificação | Codificação |
| --- | --- | --- |
| **VPL v2** (Gen12+) | H.264, HEVC, MPEG-2 | H.264, HEVC, MPEG-2 |
| **MSDK v1** (Gen9–Gen11) | H.264, MPEG-2 | H.264, MPEG-2 |

O que não está disponível:

- **HEVC não é suportado no MSDK v1** — nem a decodificação, nem a codificação: no Media SDK v1 o HEVC é disponibilizado por meio de uma interface de plugin que o dispatcher oneVPL não oferece. Para HEVC é necessária uma máquina Gen12 ou mais recente. Ao tentar, o transcodificador registra um erro explícito — `HEVC decode is not supported on the Intel Media SDK v1 runtime` ou `HEVC encode is not supported on the Intel Media SDK v1 runtime`.
- AV1, VP9 e VC-1 não são suportados por nenhum dos runtimes — na radiodifusão eles não são necessários.

Os três codecs listados são o máximo com que o transcodificador consegue trabalhar. No VPL v2 ele não impõe restrições próprias, portanto o conjunto real de codecs de um adaptador específico é determinado pelo runtime; o que está disponível na máquina é mostrado por `tcivpl --hw-list` (veja abaixo). A matriz geral de codecs do transcodificador, independente do backend, é apresentada em [Backends e codecs](../streamer/transcoder.md#streamer-transcoder-backends).

## Hardware Atom reduzido: não suportado

**As plataformas baseadas em núcleos Atom anteriores ao Gen12 — Apollo Lake, Gemini Lake, Elkhart Lake, Jasper Lake (Celeron e Pentium das séries J e N: J4125, J6412, N5105 e semelhantes) — não são adequadas para transcodificação.**

O motor de mídia delas é reduzido: não há codificação por hardware completa e a codificação MPEG-2 não existe de forma alguma. A decodificação nesses chips pode funcionar, mas não há com o que transcodificar — utilize o transcodificador por software (o pacote **pstreamer-tcsw**) ou outro hardware. O transcodificador não descarta esse hardware antecipadamente: ele é iniciado e termina com erro na inicialização do codificador.

Uma exceção importante: **Alder Lake-N (N100, N305 e semelhantes) também são núcleos Atom, mas seus gráficos são um Gen12 completo e eles são suportados.**

À parte disso: os processadores Atom antigos não possuem AVX, enquanto parte dos pacotes prontos da Intel é compilada com AVX. Nesse caso o processo do transcodificador falha com `Illegal instruction` — as instruções são executadas pela biblioteca do driver ou do runtime Intel carregada no processo, e não pelo código do próprio transcodificador.

## O que deve estar instalado

| Componente | RHEL / AlmaLinux / Rocky | Debian / Ubuntu |
| --- | --- | --- |
| Driver VA-API **iHD** (obrigatório) | `intel-media-driver` | `intel-media-va-driver-non-free` |
| Runtime **VPL v2** (Gen12+) | `intel-vpl-gpu-rt` | `libmfxgen1` |
| Runtime **MSDK v1** (Gen9–Gen11) | `intel-mediasdk` | `libmfx1` |
| VA-API, DRM | `libva`, `libdrm` | `libva2`, `libva-drm2`, `libdrm2` |

É necessário exatamente um runtime — aquele que corresponde ao hardware. O driver iHD é obrigatório em qualquer caso: no antigo `i965` a inicialização do VA-API é concluída, mas o decodificador não sobe, e não há nenhuma mensagem específica sobre isso — o driver fica visível apenas no registro na partida do fluxo. No Debian e no Ubuntu escolha justamente a variante `intel-media-va-driver-non-free`: em `intel-media-va-driver` parte dos codecs foi removida.

Os nomes dos pacotes dependem de onde eles são instalados. Os nomes Debian indicados são os do repositório Intel Graphics, que é adicionado conforme o procedimento de instalação ([Ubuntu 22/24](../install/transcoder.md#install-transcoder-ubuntu)); no repositório próprio do Ubuntu o mesmo runtime VPL v2 se chama `libmfx-gen1.2` e as versões ali são bem mais antigas.

O dispatcher do Intel VPL (nas distribuições — `libvpl2`) é fornecido como parte do pacote do transcodificador: ele é instalado em `/opt/pss/lib/libvpl.so.2` e o caminho é registrado no diretório `/etc/ld.so.conf.d/`. Mas o dispatcher apenas seleciona o runtime — se não houver na máquina um runtime adequado, não há com o que transcodificar.

O runtime MSDK v1 foi retirado das distribuições recentes: `intel-mediasdk` está presente no EPEL 9, mas não no EPEL 10; `libmfx1` está presente no Debian 12 e no Ubuntu 24.04, mas já não está nas versões seguintes. Nesses sistemas, para o hardware Gen9–Gen11, o runtime terá de ser instalado separadamente.

O pacote do transcodificador não traz consigo nem o driver nem o runtime, portanto uma instalação bem-sucedida por si só não significa que a transcodificação por hardware vá funcionar — isso é verificado separadamente. Considere também que o usuário do serviço deve ter acesso aos dispositivos `/dev/dri` ([Ubuntu 22/24](../install/transcoder.md#install-transcoder-ubuntu)).

## Como verificar

```sh
/usr/local/bin/tcivpl --hw-list
```

O comando imprime um XML com a lista das implementações encontradas pelo dispatcher VPL — em uma única linha, sem quebras. Para cada uma são indicados o nome do runtime (`device-name`), a versão da API, as listas de codecs do decodificador e do codificador, o adaptador e o indicador de aptidão para a operação por hardware. Exemplo de saída em Gen9–Gen11 (mostrado com quebras de linha para facilitar a leitura):

```xml
<vpl mfx-version="2.15">
  <device id="0" device-name="mfxhw64" api-version="1.35" legacy="1"
          dec-codecs="h264,mpeg2" enc-codecs="h264,mpeg2"
          vendor-id="8086" device-id="4555" drm-render="128"
          supported="1"/>
</vpl>
```

Como ler a saída:

- `legacy="1"` — a implementação informa uma versão da API inferior a 2.0, ou seja, trata-se do antigo runtime Media SDK v1; sem esse indicador — oneVPL 2.x. É nesse indicador e em `api-version` que se deve basear em primeiro lugar: o valor de `device-name` vem do dispatcher tal como está (na prática — `mfxhw64` para o Media SDK v1 e `mfx-gen` para o oneVPL).
- `supported="1"` — a implementação é adequada à operação por hardware. Uma entrada sem esse indicador equivale à sua ausência.
- Para o Media SDK v1 a lista de codecs é sempre `h264,mpeg2` — este é o conjunto suportado pelo transcodificador nesse runtime, e não o resultado de uma consulta ao hardware. Para o oneVPL as listas são obtidas a partir do que o runtime informa.
- `mfx-version` — a versão da API dos cabeçalhos com os quais o transcodificador foi compilado, e não a versão do runtime instalado.

Uma lista vazia (o elemento `<vpl>` sem nenhum `<device>`) significa que não haverá transcodificação por hardware nesta máquina: o runtime ou o driver não está instalado, a GPU não é Intel ou não há acesso a `/dev/dri`. A mensagem `No vpl libraries found` é um caso à parte: não foi encontrada a própria biblioteca do dispatcher.

O comando apenas lista as implementações e não seleciona nada. Qual delas será utilizada é determinado na inicialização do fluxo — pelo dispositivo definido nas configurações do transcodificador. Na partida do fluxo o transcodificador escreve duas linhas no registro: o runtime selecionado com a versão da API e a versão do VA-API junto com o nome do driver. Pela segunda linha vê-se que está funcionando justamente o driver iHD, e não o `i965`.

Os backends de transcodificação detectados, suas versões e os dispositivos encontrados também são mostrados na tela «Sobre o sistema» ([Sobre o sistema](../webui/administration.md#webui-about)), e a carga da GPU — na tela «Monitor do Sistema» ([Monitor do Sistema](../webui/monitor.md#webui-system)).
