# Detectar automaticamente ou rejeitar uploads de vídeo VP9 incompatíveis com o iOS Safari

**URL:** https://meta.discourse.org/t/auto-detect-or-reject-vp9-video-uploads-incompatible-with-ios-safari/399955
**Category:** Feature
**Created:** [Abril 4, 2026, 7:20pm UTC](https://meta.discourse.org/t/auto-detect-or-reject-vp9-video-uploads-incompatible-with-ios-safari/399955 "2026-04-04T19:20:47Z")
**Posts on this page:** 1
**Showing post:** 1

<div class="post-metadata">

### Author: ![shortmort37](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/shortmort37/32/538876_2.png) [@shortmort37](https://meta.discourse.org/u/shortmort37)
#### Post date: [Abril 4, 2026, 7:20pm UTC](https://meta.discourse.org/t/auto-detect-or-reject-vp9-video-uploads-incompatible-with-ios-safari/399955/1 "2026-04-04T19:20:48Z")

</div>

Recentemente descobri que vários vídeos em meu fórum Discourse auto-hospedado estavam falhando silenciosamente ao serem reproduzidos no iPhone e iPad. Após investigação, a causa raiz foi que os vídeos haviam sido codificados com o codec VP9 dentro de um container MP4 — uma combinação que o iOS Safari não consegue reproduzir.

## Como isso acontece

O Facebook (e possivelmente outras plataformas) às vezes entrega vídeos codificados em VP9 quando os usuários baixam seu conteúdo. Quando esses arquivos são carregados no Discourse, são aceitos sem problemas — a extensão `.mp4` não indica qual codec está dentro. Em navegadores de desktop e no Android, os vídeos reproduzem normalmente, então o problema passa despercebido. No iOS Safari, o vídeo mostra uma miniatura e um botão de play, mas ao tocar nele, aparece apenas um indicador girando. Os usuários geralmente assumem que se trata de um problema de rede e seguem em frente sem relatar.

## Por que é difícil detectar

- A extensão do arquivo (`.mp4`) é idêntica à de um arquivo H.264 funcional
- Navegadores de desktop suportam VP9, então administradores que testam em desktop não veem nenhum problema
- Usuários de iOS muitas vezes não relatam falhas individuais de mídia, especialmente quando outros conteúdos no mesmo post estão visíveis e reproduzíveis
- Não há nenhum aviso ou erro visível para o administrador

## Solução sugerida

Ao fazer o upload de vídeo, o Discourse poderia inspecionar o codec do vídeo (o `ffprobe` já está disponível no container Docker) e:

1. **Rejeitar** o upload com uma mensagem clara explicando que o VP9 não é suportado no iOS, pedindo que o usuário re-codifique para H.264, ou
2. **Transcodificar automaticamente** o vídeo para H.264 no momento do upload (semelhante ao que algumas plataformas fazem para normalizar uploads)

A Opção 1 é menos complexa e já representaria uma melhoria significativa. A Opção 2 seria ideal para uma experiência de usuário totalmente fluida.

## Ambiente

- Discourse auto-hospedado em Docker, armazenamento local (sem S3)
- Versão do Discourse: 2026.4.0-latest
- Proxy reverso Apache na frente do nginx do Discourse

## Solução alternativa

Para administradores que encontrarem esse problema, a correção envolve:

1. Identificar arquivos VP9 com `ffprobe`
2. Re-codificar para H.264 com `ffmpeg -c:v libx264 -profile:v main -level 3.1 -r 30 -movflags +faststart`
3. Atualizar os campos `sha1`, `url` e `filesize` na tabela `uploads`
4. Atualizar os tokens de URL curta `upload://` no markdown bruto dos posts afetados
5. Reassinar (rebake) os posts afetados

Este é um processo manual não trivial que a maioria dos administradores de fórum não está equipada para realizar.

---

_[View the full topic](https://meta.discourse.org/t/auto-detect-or-reject-vp9-video-uploads-incompatible-with-ios-safari/399955)._
