User Tools

Site Tools


tutoriais:adicionando_suporte_a_videos_h.264_nos_navegadores_no_linux

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
tutoriais:adicionando_suporte_a_videos_h.264_nos_navegadores_no_linux [2017-06-13 14:25] alopestutoriais:adicionando_suporte_a_videos_h.264_nos_navegadores_no_linux [2020-06-16 13:25] alopes
Line 1: Line 1:
-====== Adicionando suporte a vídeos H.264 nos navegadores no Linux ======+====== Adicionando suporte a vídeos H.264 e Widevine 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.+**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. Outro problema pode ser os vídeos com DRM, que precisam do Widevine.
  
 **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 <del>adulto</del> usuário mais experiente. **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 <del>adulto</del> usuário mais experiente.
  
-**Como saber se sou afetado?** entre no [[https://www.youtube.com/html5|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 [[https://www.quirksmode.org/html5/tests/video.html|Testes de vídeo HTML5]] para ver se seu navegador consegue rodar os 3 tipos diferentes de vídeo ou usar para teste depois.+**Como saber se sou afetado?** entre no [[https://www.youtube.com/html5|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 [[https://www.quirksmode.org/html5/tests/video.html|Testes de vídeo HTML5]] para ver se seu navegador consegue rodar os 3 tipos diferentes de vídeo ou usar para teste depois. Para testar se não tem suporte ao Widevine, teste por exemplo em [[https://bitmovin.com/demos/drm|Teste de suporte a DRM Widevine]]
  
 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. 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:   * 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** Tente instalar o pacote **xine-browser-plugin**
 <code>#no terminal do OpenSUSE digite <code>#no terminal do OpenSUSE digite
 sudo zypper install xine-browser-plugin sudo zypper install xine-browser-plugin
 </code> </code>
-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)+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 Firefox o Widevine já funciona, basta autorizar o conteúdo DRM quando solicitado.
 <code> <code>
-#No caso do OpenSUSE Leap 42.2+#No caso do OpenSUSE Leap 15.0
 #Adicione o repositório do Packman #Adicione o repositório do Packman
-sudo zypper addrepo -f http://packman.inode.at/suse/openSUSE_Leap_42.2/ Packman+sudo zypper addrepo -f http://packman.inode.at/suse/openSUSE_Leap_15.0/ Packman
 #Instale os pacotes abaixo #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 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 #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.2/+zypper dup --from http://packman.inode.at/suse/openSUSE_Leap_15.0/
 </code> </code>
 ou ou
-#No caso do OpenSUSE Leap Tumbleweed+<code>#No caso do OpenSUSE Leap Tumbleweed
 #Adicione o repositório do Packman #Adicione o repositório do Packman
 sudo zypper addrepo -f http://packman.inode.at/suse/openSUSE_Leap_Tumbleweed/ Packman sudo zypper addrepo -f http://packman.inode.at/suse/openSUSE_Leap_Tumbleweed/ Packman
Line 35: Line 38:
 Feito isso, reinicie seu computador e teste no Firefox. Feito isso, reinicie seu computador e teste no Firefox.
  
-  * Para Opera, Vivaldi e outros navegadores baseados no Chromium +  * 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.+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.
  
-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.+Já para os vídeos com DRM que precisam do Widevine, vamos precisar também do pacote chromium-plugin-widevinecdm 
 +vamos falar disso mais pra frente.
  
-**Para caso do Opera**fazemos assim (número de versão pode mudar qualquer momentovisite https://repo.herecura.eu/herecura/x86_64/ para verificar existência de um novo pacote)+===== Primeiro Método - symlink para ffmpeg do pacote chromium-ffmpeg-extra - pode parar de funcionar ===== 
 +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... 
 +<code>#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 
 +</code> 
 + 
 +OBS: Não é necessário instalar nem 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 ú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 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:
 <code> <code>
-#baixar o pacote opera-ffmpeg-codecs +#baixar o pacote mais novo pré-compilado de https://github.com/iteufel/nwjs-ffmpeg-prebuilt/releases para linux 64 
-wget -c https://repo.herecura.eu/herecura/x86_64/opera-ffmpeg-codecs-58.0.3029.110-1-x86_64.pkg.tar.xz+#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 #descompactar o pacote
-tar xvf opera-ffmpeg-codecs-58.0.3029.110-1-x86_64.pkg.tar.xz+unzip ffmpeg.zip 
 </code> </code>
  
-**Agora se está no OpenSUSE** (Tumbleweed ou Leap)mover para o local correto+** se estiver no openSUSE por exemplocopie para o local certo**
 <code> <code>
-#faz o backup da biblioteca original +#faça um backup do arquivo que estava lá na pasta do opera (como root) 
-sudo mv /usr/lib64/opera/libffmpeg.so{,.original-opera+mv /usr/lib64/opera/lib_extra/libffmpeg.so{,.backup} 
-#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 +#copie para o lugar correto (como root) 
-#faz uma cópia de backup dessa biblioteca modificada, só para +chown root: libffmpeg.so 
-#caso no futuro o opera atualizar e modificar essa biblioteca e os vídeos pararem de funcionar +cp libffmpeg.so /usr/lib64/opera/lib_extra/libffmpeg.so
-sudo cp /usr/lib64/opera/libffmpeg.so{,.modificado-backup}+
 </code> </code>
  
-**No caso do Vivaldi**+ 
 +**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: 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:
 <code> <code>
-#baixar o pacote vivaldi-ffmpeg-codecs +#baixar o pacote mais novo pré-compilado de https://github.com/iteufel/nwjs-ffmpeg-prebuilt/releases para linux 64 
-wget -c https://repo.herecura.eu/herecura/x86_64/vivaldi-ffmpeg-codecs-58.0.3029.82-1-x86_64.pkg.tar.xz+#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 #descompactar o pacote
-tar xvf vivaldi-ffmpeg-codecs-58.0.3029.82-1-x86_64.pkg.tar.xz+unzip ffmpeg.zip
 </code> </code>
 +
  
 **Agora se está no OpenSUSE** (Tumbleweed ou Leap), mover para o local correto **Agora se está no OpenSUSE** (Tumbleweed ou Leap), mover para o local correto
Line 73: Line 104:
 sudo mv /opt/vivaldi/lib/libffmpeg.so{,.original-vivaldi} sudo mv /opt/vivaldi/lib/libffmpeg.so{,.original-vivaldi}
 #copia a biblioteca que foi descompactada no lugar que tem que estar #copia a biblioteca que foi descompactada no lugar que tem que estar
-sudo cp opt/vivaldi/libffmpeg.so /opt/vivaldi/lib/libffmpeg.so +sudo cp 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}+
 </code> </code>
  
 +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** **No caso do Chromium**
Line 86: Line 115:
  
 Agora reinicie o navegador e teste nos links [[https://www.youtube.com/html5|Teste do Youtube]] e [[https://www.quirksmode.org/html5/tests/video.html|Testes de vídeo HTML5]] Agora reinicie o navegador e teste nos links [[https://www.youtube.com/html5|Teste do Youtube]] e [[https://www.quirksmode.org/html5/tests/video.html|Testes de vídeo HTML5]]
 +
 +
 +====Vídeos com DRM que precisam do Widevine====
 +No Chromium, Vivaldi e Opera, você pode precisar instalar um pacote para o Widevine. Pode ser necessário alguns ajustes dependendo da versão. Pegando por exemplo o navegador Opera para a distro OpenSUSE, é necessário os seguintes passos:
 +
 +Pré-requisitos: 
 +  * Navegador Opera
 +  * Repositório do Packman (já mencionado antes)
 +  * Codecs e tudo mais instalado do repositório do packman (por conta dos plugins priprietários)
 +
 +Passo a passo
 +
 +  * 1) Instala o pacote chromium-plugin-widevinecdm
 +
 +O pacote vai criar o suporte do widevine pro chromium. ele vai criar uma pasta /usr/lib64/chromium/WidevineCdm que tem o necessário pra rodar o widevine. Por padrão, o Opera aponta para outro lugar, portanto o segundo passo é fazer ele enxergar esse caminho.
 +
 +  * 2) faça uma cópia de segurança sudo cp /usr/lib64/opera/resources/widevine_config.json{,.original}
 +
 +  * 3) vamos editar o arquivo sudo nano /usr/lib64/opera/resources/widevine_config.json
 +
 +  * 4) precisa adicionar uma linha "/usr/lib64/chromium/WidevineCdm", , deixando o arquivo assim:
 +<code>
 +[
 +  "/usr/lib64/chromium/WidevineCdm",
 +  "/opt/google/chrome/WidevineCdm",
 +  "/opt/google/chrome-beta/WidevineCdm",
 +  "/opt/google/chrome-unstable/WidevineCdm"
 +]
 +</code>
 +
 +  * 5) salve e feche o arquivo (no nano é Ctrl+O pra salvar e depois Ctrl+X pra sair)
 +
 +  * 6) reiniciar o opera... teste o suporte a Widevine em algum site, por exemplo https://bitmovin.com/demos/drm

Except where otherwise noted, content on this wiki is licensed under the following license: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki