Se você usa o Mozilla Firefox ou o Chromium, navegadores que vem no Linux Kamarada 15.2 RC, talvez já tenha se deparado com algum vídeo que eles não conseguem reproduzir. As mensagens de erro variam de site para site. Veja alguns exemplos:
Twitter: Não foi possível reproduzir a mídia.
Facebook: Ocorreu um erro. Estamos tendo problemas ao reproduzir este vídeo.
De forma resumida, isso acontece porque estão faltando codecs proprietários no seu computador. A dica a seguir pode te ajudar a resolver esse problema.
Caso você ainda não conheça, o Linux Kamarada é uma distribuição Linux baseada no openSUSE Leap, portanto a dica a seguir também serve para usuários do openSUSE. Outras distribuições podem enfrentar problema semelhante e ter também solução análoga.
Como resolver esse problema
A solução, no caso do Linux Kamarada e do openSUSE Leap, se resume a:
- Adicionar o repositório do projeto Packman, caso você ainda não tenha esse repositório adicionado no seu sistema;
- Obter a lista atualizada de pacotes disponíveis nos repositórios; e
- Atualizar os pacotes do sistema permitindo a mudança de fornecedor, o que deve fazer com que alguns pacotes fornecidos pelo openSUSE sejam substituídos por pacotes do Packman, que contém os codecs proprietários faltantes.
Há pelo menos duas formas de fazer isso: pela interface gráfica, que pode ser mais amigável especialmente para os iniciantes, ou pela interface de linha de comando.
Pela interface de linha de comando
A solução pela linha de comando usa o gerenciador de pacotes zypper. Como ela é mais resumida, vou começar mostrando ela.
Execute os 3 comandos a seguir, que correspondem aos 3 passos acima respectivamente, como usuário administrador (root):
1
2
3
# zypper ar -cfp 90 http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_15.2/ packman
# zypper ref
# zypper up --allow-vendor-change
Pela interface gráfica
Embora seja mais amigável, a solução pela interface gráfica requer alguns cliques e passa por mais telas. Mas a facilidade mais que compensa esse caminho mais longo.
Adicionando o repositório do projeto Packman
Abra o Centro de controle do YaST. Para isso, abra o menu Atividades, no canto superior esquerdo da tela, digite yast
e clique no ícone correspondente:
Dentro da categoria Software, a primeira, clique no item Repositórios de software:
Na tela Repositórios de software configurados, clique no botão Adicionar:
Na tela seguinte, selecione a opção Repositórios da comunidade e clique no botão Próximo:
Na Lista de repositórios online, ative o Packman Repository e clique em OK:
O próprio YaST se encarrega de obter a lista atualizada de pacotes disponíveis nos repositórios. Ele pergunta se pode confiar no novo repositório, clique em Confiar:
De volta à tela Repositórios de software configurados, clique em OK para sair dela.
Obtendo os pacotes do repositório do Packman
De volta à tela principal do YaST, clique no item Gerenciamento de software.
Na janela que se abre, abra o menu Ver e clique em Repositórios:
À esquerda, selecione o Packman Repository, e à direita, clique em Comutar pacotes do sistema:
Note que vários pacotes que já estavam instalados no sistema, mas eram fornecidos pelo openSUSE, foram marcados para serem atualizados, para versões fornecidas pelo Packman:
Clique no botão Aceitar.
O YaST alerta que vai instalar mais alguns pacotes, clique em Continuar:
O YaST baixa e instala os pacotes, o que pode demorar mais ou menos dependendo da sua conexão de Internet:
Ao final, o YaST avisa que a instalação dos pacotes foi concluída com sucesso:
Clique em Concluir para fechar essa janela e depois feche o YaST.
Prontinho!
Quando terminar os procedimentos acima, feche o navegador e abra-o de novo.
Feito isso, os vídeos que antes não eram reproduzidos passam a aparecer:
Caso você queira mais informações
O MP4 e o H.264 se tornaram formatos de vídeo comuns na Internet. A rigor, o MP4 é um formato de container, que pode armazenar em um único arquivo trilha de vídeo, trilhas de áudio, legendas embutidas e outras informações. Já o H.264 é um formato de vídeo de alta definição comprimido, ou seja, ele codifica apenas a informação visual (o vídeo em si) e vem dentro de um container (como o MP4). Geralmente, “arquivo de vídeo H.264” refere-se a um arquivo com extensão .mp4
que contém uma trilha de vídeo codificada com o H.264.
Ocorre que o codec do H.264 não é um software livre, mas um software proprietário da Moving Picture Experts Group Licensing Administration (MPEG LA) e, portanto, não pode ser fornecido em distribuições Linux como o Linux Kamarada e o openSUSE.
Se você abre uma página no navegador que tem um vídeo H.264, mas o codec do H.264 não está instalado no sistema — e ele não vem instalado por padrão nem no openSUSE, nem no Linux Kamarada — então o vídeo não é reproduzido, como mostrei no início do texto.
Felizmente, no caso dessas duas distribuições, existe o projeto Packman que fornece esse e outros codecs proprietários na forma de pacotes que podem ser instalados com facilidade.
Note que esse problema não ocorre no navegador Google Chrome. Provavelmente a Google fez um acordo comercial com a MPEG LA para distribuir o codec do H.264 embutido no Chrome.
Mas e o plugin OpenH264 do Firefox?
Se você usa o Firefox, talvez tenha reparado que ele tem um plugin chamado “Codec de vídeo OpenH264”, que é instalado automaticamente:
OpenH264 é o nome da implementação do codec do H.264 feita pela Cisco. Essa implementação tem seu código aberto, porém também não é um software livre, visto que seus binários são lançados sob uma licença da Cisco, que cobre os custos de licenciamento junto à MPEG LA para fornecer esse codec de graça. Por isso, ele deve ser baixado da Cisco.
A Mozilla fez uma parceria com a Cisco para que o Firefox possa usar o OpenH264. Quando você usa o Firefox pela primeira vez, ele baixa o plugin do OpenH264 do site da Cisco.
O OpenH264 implementa apenas a parte mais básica (baseline profile) do formato H.264, de modo que só é usado pelo Firefox para dar suporte a chamadas de vídeo, como as feitas usando a tecnologia WebRTC. Exemplos de serviços de chamadas de vídeo que usam essa tecnologia incluem o Google Meet, o Google Hangouts, o Facebook Messenger e o Discord.
Portanto, o plugin OpenH264 do Firefox nada tem a ver com os vídeos que não são reproduzidos. Falei dele aqui apenas para esclarecer isso.
Referências
- Twitter says “The media could not be played”. | Firefox Support Forum | Mozilla Support
- SDB:Firefox MP4/H.264 Video Support - openSUSE Wiki
- Information about the H.264 patent license - Free Software Foundation
- Por que existe um plugin OpenH264 no Firefox? | Ajuda do Firefox
- [opensuse-factory] Status of x264 libraries in the standard distribution
- OpenH264 - Fedora Project Wiki
- MP4 vs H.264, difference between MP4 and H.264 format - iOrgsoft
- 10 Massive Applications Using WebRTC - BlogGeek.me