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 42.3
#Adicione o repositório do Packman
sudo zypper addrepo -f http://packman.inode.at/suse/openSUSE_Leap_42.3/ 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_42.3/

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/ </code> 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, então basicamente o que vamos fazer é usar essa biblioteca já extraída do Google Chrome, 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…

#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/libffmpeg.so{,.backup}
sudo ln -s /usr/lib64/chromium-ffmpeg-extra/libffmpeg.so /usr/lib64/opera/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

Caso queira fazer manualmente por algum motivo, você pode pegar o libffmpeg.so de outro lugar e colocar manualmente na pasta dos navegadores, sem symlink. Para facilitar, estamos baixando essa biblioteca de um repositó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. 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 (o número de versão pode mudar a qualquer momento, visite https://repo.herecura.eu/herecura/x86_64/ para verificar a existência de um novo pacote)

#baixar o pacote opera-ffmpeg-codecs
wget -c https://repo.herecura.eu/herecura/x86_64/opera-ffmpeg-codecs-58.0.3029.110-1-x86_64.pkg.tar.xz
#descompactar o pacote
tar xvf opera-ffmpeg-codecs-58.0.3029.110-1-x86_64.pkg.tar.xz

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

#faz o backup da biblioteca original
sudo mv /usr/lib64/opera/libffmpeg.so{,.original-opera}
#copia a biblioteca que foi descompactada no lugar que tem que estar
sudo cp usr/lib/opera/lib_extra/libffmpeg.so /usr/lib64/opera/libffmpeg.so
#faz uma cópia de backup dessa biblioteca modificada, só para
#caso no futuro o opera atualizar e modificar essa biblioteca e os vídeos pararem de funcionar
sudo cp /usr/lib64/opera/libffmpeg.so{,.modificado-backup}

No caso do Vivaldi 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 vivaldi-ffmpeg-codecs
wget -c https://repo.herecura.eu/herecura/x86_64/vivaldi-ffmpeg-codecs-58.0.3029.82-1-x86_64.pkg.tar.xz
#descompactar o pacote
tar xvf vivaldi-ffmpeg-codecs-58.0.3029.82-1-x86_64.pkg.tar.xz

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 opt/vivaldi/libffmpeg.so /opt/vivaldi/lib/libffmpeg.so
#faz uma cópia de backup dessa biblioteca modificada, só para
#caso no futuro o Vivaldi atualizar e modificar essa biblioteca e os vídeos pararem de funcionar
sudo cp /opt/vivaldi/lib/libffmpeg.so{,.modificado-backup}

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: 2017-09-13 21:29 by alopes