User Tools

Site Tools


tutoriais:adicionando_suporte_a_videos_h.264_nos_navegadores_no_linux

Adicionando suporte a vídeos H.264 nos navegadores no Linux

Qual o problema: Algumas páginas com vídeo HTML5 possuem um formato proprietário, o H.264, que por padrão não está suportado em navegadores baseados no Chromium (base aberta do Google Chrome) e também podem não funcionar com o H.264 aberto que vem com o Firefox. Como esse problema envolve por exeplo vídeos do Facebook, que horrorosamente usa esse formato fechado, alguns navegadores podem simplesmente não conseguir mostrar o vídeo por padrão.

Como corrigir? pode ser necessário instalar alguns pacotes de multimídia na sua distribuição ou modificar algumas bibliotecas dos navegadores, por isso, se você não possui a senha de administrador ou sua conta não possui permissão para modificar, peça a ajuda de um adulto usuário mais experiente.

Como saber se sou afetado? entre no Teste do Youtube para ver quais codecs seu navegador suporta. Se a opção H.264 estiver com uma exclamação, é justamente esse problema que vamos tentar solucionar abaixo. Você também pode entrar no link de Testes de vídeo HTML5 para ver se seu navegador consegue rodar os 3 tipos diferentes de vídeo ou usar para teste depois.

OBS: Este tutorial abaixo refere-se à distribuição OpenSUSE (Leap ou Tumbleweed), mas com alguma modificação (na localização das bibliotecas ou nomes dos pacotes ao instalar), pode resolver para outras distribuições. Conforme testarmos em outras instalações, iremos adicionar as mudanças específicas.

  • Para o Firefox:

Caso o codec aberto da Cisco que vem junto (OpenH264) não te satisfazer tente o seguinte: Tente instalar o pacote xine-browser-plugin

#no terminal do OpenSUSE digite
sudo zypper install xine-browser-plugin

Reinicie o navegador e teste. Se continuar sem funcionar, provavelmente você precisa instalar também codecs de vídeo para a sua máquina. No caso do OpenSUSE, é sugerido utilizar as versões mais atualizadas do repositório do Packman: (fonte dessa sugestão - http://opensuse-guide.org/codecs.php)

#No caso do OpenSUSE Leap 15.0
#Adicione o repositório do Packman
sudo zypper addrepo -f http://packman.inode.at/suse/openSUSE_Leap_15.0/ Packman
#Instale os pacotes abaixo
sudo zypper install k3b-codecs ffmpeg lame gstreamer-plugins-bad gstreamer-plugins-ugly gstreamer-plugins-ugly-orig-addon gstreamer-plugins-libav
#Garanta que as versões instaladas dos pacotes acima são as do Packman
zypper dup --from http://packman.inode.at/suse/openSUSE_Leap_15.0/

ou

#No caso do OpenSUSE Leap Tumbleweed
#Adicione o repositório do Packman
sudo zypper addrepo -f http://packman.inode.at/suse/openSUSE_Leap_Tumbleweed/ Packman
#Instale os pacotes abaixo
sudo zypper install k3b-codecs ffmpeg lame gstreamer-plugins-bad gstreamer-plugins-ugly gstreamer-plugins-ugly-orig-addon gstreamer-plugins-libav
#Garanta que as versões instaladas dos pacotes acima são as do Packman
zypper dup --from http://packman.inode.at/suse/openSUSE_Leap_Tumbleweed/

Feito isso, reinicie seu computador e teste no Firefox.

  • Para Opera, Vivaldi e outros navegadores baseados no Chromium (VERSÃO ATUALIZADA)

Esses navegadores precisam do plugin do ffmpeg (libffmpeg) modificado para habilitar o suporte. Por padrão, como o H.264 é proprietário, esses navegadores vem sem suporte por padrão. Mas a biblioteca do FFmpeg tem suporte a tocar esse tipo de vídeo, então utilizando a biblioteca modificada será possível ver os vídeos. O Google Chrome por exemplo já usa essa biblioteca modificada. O que vamos fazer é pegar a versão mais nova do libffmpeg.so e utilizá-la, sobrescrevendo a original do navegador.

Você pode utilizar o arquivo libffmpeg.so que vem no pacote chromium-ffmpeg-extra e fazer um symlink para o arquivo desse pacote, porém é possível que em algum momento o seu navegador atualize e esse pacote não, deixando os vídeos sem funcionar…

#Instale o pacote chromium-ffmpeg-extra
sudo zypper install chromium-ffmpeg-extra
#Faça um backup do libffmpeg.so original do navegador e depois um symlink para a biblioteca instalada acima
#para Opera:
sudo mv /usr/lib64/opera/lib_extra/libffmpeg.so{,.backup}
sudo ln -s /usr/lib64/chromium-ffmpeg-extra/libffmpeg.so /usr/lib64/opera/lib_extra/libffmpeg.so
#para Vivaldi:
sudo mv /opt/vivaldi/lib/libffmpeg.so{,.backup}
sudo ln -s /usr/lib64/chromium-ffmpeg-extra/libffmpeg.so /opt/vivaldi/lib/libffmpeg.so

OBS: Não é necessário instalar nem o Google Chrome e nem o Chromium! OBS2: Esse pacote é parte do repositório Packman que é mencionado no começo do tutorial. Recomenda-se que se for utilizar esse repositório, configure todos os seus pacotes de multimídia para utilizar a versão do Packman.

Segundo Método - manualmente baixando a última versão do libffmpeg.so

Caso precise fazer manualmente direto com o libffmpeg.so por algum motivo (exemplo: atualizou o navegador mas o pacote do chromium-ffmpeg-extra ainda não), você pode pegar o libffmpeg.so de algum outro pacote ou link e colocar manualmente na pasta dos navegadores, sem symlink. Para facilitar, pode maixar por exemplo deste repositório do github - https://github.com/iteufel/nwjs-ffmpeg-prebuilt/releases ou de um repositório de usuário da distribuição Arch Linux (https://repo.herecura.eu/herecura/x86_64/), que já tem dois pacotes dedicados a isso: opera-ffmpeg-codecs e vivaldi-ffmpeg-codecs. No link do github informado, você consegue baixar direto o libffmpeg.so pré-compilado, enquanto que o pacote do Arch basicamente baixa essa biblioteca e coloca no lugar correto no sistema. Para o caso do OpenSUSE, basta baixar o pacote, descompactar e colocar lo local específico.

Para o caso do Opera, fazemos assim: Baixe o pacote mais atualizado de um dos links acima (referente à sua arquitetura), abra o arquivo compactado e copie o arquivo ffmpeg.so para a pasta lib_extra, dentro de onde está o opera (padrão no openSUSE por exemplo é /usr/lib64/opera/lib_extra). O script abaixo tenta automatizar isso:

#baixar o pacote mais novo pré-compilado de https://github.com/iteufel/nwjs-ffmpeg-prebuilt/releases para linux 64
#nota que esse download abaixo pode quebrar com eventuais mudanças no site
wget $(curl https://github.com/iteufel/nwjs-ffmpeg-prebuilt/releases/ -s | grep linux-x64 | head -1 | sed  's/.*href\=\"/http:\/\/github.com/' |  cut -d \" -f1) -O ffmpeg.zip

#descompactar o pacote
unzip ffmpeg.zip

se estiver no openSUSE por exemplo, copie para o local certo

#faça um backup do arquivo que estava lá na pasta do opera (como root)
mv /usr/lib64/opera/lib_extra/libffmpeg.so{,.backup}

#copie para o lugar correto (como root)
chown root: libffmpeg.so
cp libffmpeg.so /usr/lib64/opera/lib_extra/libffmpeg.so

No caso do Vivaldi no openSUSE Você pode simplesmente usar o pacote vivaldi-ffmpeg-codecs disponível em https://software.opensuse.org/package/vivaldi-ffmpeg-codecs. Basta baixar o instalador do “One-Click Install”. Também pode fazer abaixo, parecido com o feito no Opera:

#baixar o pacote mais novo pré-compilado de https://github.com/iteufel/nwjs-ffmpeg-prebuilt/releases para linux 64
#nota que esse download abaixo pode quebrar com eventuais mudanças no site
wget $(curl https://github.com/iteufel/nwjs-ffmpeg-prebuilt/releases/ -s | grep linux-x64 | head -1 | sed  's/.*href\=\"/http:\/\/github.com/' |  cut -d \" -f1) -O ffmpeg.zip

#descompactar o pacote
unzip ffmpeg.zip

Agora se está no OpenSUSE (Tumbleweed ou Leap), mover para o local correto

#faz o backup da biblioteca original
sudo mv /opt/vivaldi/lib/libffmpeg.so{,.original-vivaldi}
#copia a biblioteca que foi descompactada no lugar que tem que estar
sudo cp libffmpeg.so /opt/vivaldi/lib/libffmpeg.so

OBS: Para o Opera e o Vivaldi, provavelmente a cada atualização dos navegadores será necessário atualizar o seu libffmpeg.so correspondente. Caso esteja funcionando, sugerimos utilizar o primeiro método do symlink.

No caso do Chromium

#Instale o pacote chromium-ffmpeg-extra
sudo zypper install chromium-ffmpeg-extra

Agora reinicie o navegador e teste nos links Teste do Youtube e Testes de vídeo HTML5

tutoriais/adicionando_suporte_a_videos_h.264_nos_navegadores_no_linux.txt · Last modified: 2018-07-11 09:14 by alopes