Sem categoria

Instalando Open Broadcast Software no Debian Jessie

Fiz alguns testes e instalei o OBS em minha máquina. Abaixo as instruções para instalação. Vale lembrar que é necessário ter uma placa de vídeo com GPU.

É necessário ter o repositório non-free habilitado no sources.list

Instalando as dependências

sudo apt-get install libx11-dev libgl1-mesa-dev libpulse-dev libxcomposite-dev \
libxinerama-dev libv4l-dev libudev-dev libfreetype6-dev \
libfontconfig1-dev qtbase5-dev libqt5x11extras5-dev libx264-dev \
libxcb-xinerama0-dev libxcb-shm0-dev libjack-jackd2-dev libcurl4-openssl-dev \
build-essential pkg-config cmake git checkinstall libfdk-aac-dev yasm

 

Compilando FFmpeg

git clone --depth 1 git://source.ffmpeg.org/ffmpeg.git
cd ffmpeg
./configure --enable-shared --prefix=/usr
make -j4
sudo checkinstall --pkgname=FFmpeg --fstrans=no --backup=no --pkgversion="$(date +%Y%m%d)-git" --deldoc=yes
sudo dpkg -i ffmpeg*.deb

 

Compilando OBS

git clone https://github.com/jp9000/obs-studio.git
cd obs-studio
mkdir build && cd build
cmake -DUNIX_STRUCTURE=1 -DCMAKE_INSTALL_PREFIX=/usr ..
make -j4
sudo checkinstall --pkgname=obs-studio --fstrans=no --backup=no --pkgversion="$(date +%Y%m%d)-git" --deldoc=yes
sudo dpkg -i obs-studio_*.deb

Referências

Padrão
Sem categoria

Usando software livre para transmissão ao vivo em vídeo

Normalmente as soluções free e open source tem como base o GStreamer e FFmpeg. Há muita documentação de utilização de ambos diretamente, via linha de comando, para transmissão. Eu já usei em várias ocasiões o Gstreamer em suas várias pipelines 🙂

Mas as interfaces gráficas estão aí para facilitar a vida. Por muito tempo usei o Theorur, que é uma versão gráfica em GTK combinado os programas dvgrab, ffmpeg2theora e oggfwd. Sua versão mais recente é de 2006 e rolava transmitir em ogv e webm para o Icecast.

Outra solução que era muito recomendada foi o Flumotion, mas parou com suas atualizações e o último release é de 2012. Mas creio que segue o seu desenvolvimento mais para o lado comercial e de código restrito, pois o site Fluendo mostra que o desenvolvedores ainda utilizam como solução comercial e com várias funcionalidades modernas.

O pessoal do FISL segue usando o Landell, desenvolvimento um pessoal de Minas Gerais sob encomenda da ASL /Pontão de Cultura. Mas desde o seu lançamento oficial teve poucas implementações de melhorias e seu último release é de 2011.

Há outras soluções como o FreeJ e WebcamStudio, que já fiz algumas pessoas experimentando, mas não chegou a serem de grande utilização.

O que tem de mais moderno hoje é o Open Broadcaster Software. Muito utilizados por gamers no mundo inteiro, tem atualizações semanais em seu código. Além de suporte padrão há vários serviços comerciais de broadcast como Twitch, Youtube, hitbox, beam, DailyMotion, Livecoding. Diferente das outras soluções citadas ele é multi-plataforma e com possibilidade de criação de plugins. Irei estudar melhor ele e documentar aqui em novos posts.

Padrão
Sem categoria

Player de vídeo web Free e Open Source

Nessa parte da pesquisa selecionei somente os tocadores de vídeos para web que tenham alguma licença livre (GPL, AGPL, MIT, BSD, etc) .

Padrão
Sem categoria

Globo.com + software livre + streaming Fifa 2014

Para a copa de 2014 a Globo.com refez sua infraestrutura de streaming e dessa fez foi 100% usando software livre 🙂 o time foi: python / rails + nginx(lua) + redis + cassandra

Bacana o vídeo de dois desenvolvedores da Globo.com apresentando a solução durante o encontro da Nginx.

A apresentação dessa palestra

Saiu uma matéria no planeta Cassandra, e tem posts bacana do dois desenvolvedores no blog pessoal do Leandro Moreira e do medium do Juarez Bochi (ambos que aparecem na palestra do vídeo acima).

Essa experiência acabou resultando um artigo acadêmico em trabalho conjunto de pesquisadores de Universidades públicas de Minas Gerais e chama Caracterização da Transmissão de um Grande Evento Esportivo.

O mais bacana ainda é que uma equipe da Globo.com desenvolveu um player e liberou como software livre 🙂 O Clappr.

Mais um motivo para estudar o Streaming with nginx-rtmp-module.

Padrão
Sem categoria

Servidor de streaming de vídeo em software livre

Quando comecei a fazer streaming o que usávamos era Icecast, havia pouca vida além dele, pelo menos em nosso universo de radicais free software 🙂

Ele segue a linha de HTTP progressivo e tinha só suporte a OGV, para vídeo. Hoje tem implementado o suporte a WEBM e fiz algumas transmissões e rolou bem bacana.

Na minha pesquisa anterior de solução alternativa ao Icecast achei interessante o stream-m, a partir de uma documentação de implementação na TV Unesp. Mas não avancei muito.

Hoje tenho interessado bastante pelo Nginx + o módulo RTMP, e não é pouca as documentações pela internet de implementação e de uso. Irei estudar ele a fundo nesse momento.

Outro que tenho grande interesse em testar é o flussonic (erlyvideo), nem parece muito promissor e avançado.

Existem várias outras soluções em software livre / open source para montar um servidor, alguns que identifiquei:

Padrão
Sem categoria

Formatos abertos e livres para streaming de vídeo

Não sou do tipo que fica lendo a especificação do container ou das vantagens de compreensão do vídeo e áudio, etc tal. Mas curto muito acompanhar o processo de evolução de formatos livres e aplicações software livre para streaming.

Quando comecei usamos indiscutivelmente o formato ogg (ou ogv), pois era o único livre. Usando Theora para a parte de vídeo e Vorbis para áudio era o que tínhamos e aqui e ali ouvi as reclamações da qualidade diante do MP4 ou mesmo a necessidade de bastante hardware para obter um transcodificação legal.

Passou o tempo e logo ficamos conhecendo o Webm, usando como conteiner o Matroska, com o vídeo e áudio usando codecs webm, o Google comprou por 133 milhões doláres a empresa que detinha os direitos sobre o formato e continuo por mantê-la livre sob a licença BSD. Fosse pela guerra de qual seria o formato padrão em HTML5 ou do impacto que poderia ter o relicenciamento do formato MP4 pelo Cisco, o Google não esperou e já começo a implementar em seus serviços o formato webm como padrão, deixando o FLV (que até então usada o h261 para vídeo e mp3 para áudio).

Passou o tempo e a Cisco vai lá e libera o MP4 como opensource e na sequencia a Mozilla coloca codec por padrão do Firefox.

Para o streaming a escolha do formato é importante também, tanto para escolher o equipamento como software de transmissão enquanto cliente e/ou servidor, compatibilidade de browsers e dispositivos móveis.

Hoje o webm está na versão VP9, com várias reestruturações. Já a implementação H26x para MP4 está não versão 5, H265. O OGV não teve avanços e vale lembrar que ele surgiu a partir de uma implementação do VP3.

Tem outros formatos como o DIRAC, desenvolvido pela BBC, que tem chamado atenção também, na busca de melhores compressão em vídeo e economizar um pouco mais no tráfego pela internet onde o vídeo lidera no consumo.

Padrão
Sem categoria

AMD Radeon Crimson em Debian Jessie

Tenho uma placa AMD Radeon HD 8690M e nunca usei, pois queria usar na edição de vídeo, mas o Kdenlive não tem suporte a GPU na renderização.

Estou recomeçando meus estudos em streaming e hoje a bola da vez é o Open Broadcaster Software e em suas versões recentes está sendo obrigatório o uso da GPU.

Eu já havia havia instalado o drive próprio da placa quando usava Fedora 20, mas não fiz uso valendo. O desafio agora era deixar rodando legal em Debian Jessie.

Nos repositórios do Debian com non-free tem suporte ao driver fglrx, mas não rodou legal, o cursor do mouse simplesmente não aparece. Resolvi então instalar a versão mais recente e conhecer melhor a solução AMD Radeon Crimson

Depois de baixar o driver e rodar o executável aparece num dialogo a mensagem “Your Graphics adapter is not supported by this driver. Installation will not proceed” e pesquisando vi que é necessário acrescentar radeon.runpm=0 no grub, isso logo na inicialização, pressionando e (para editar) e depois acrescendo na linha que inicia com linux. E aí deu certo.

Para instalação usei como referência um post no fórum do Ubuntu:

sudo apt-get remove --purge xorg-driver-fglrx fglrx*
 sudo apt-get remove --purge fglrx*
 sudo apt-get install build-essential cdbs fakeroot dh-make debhelper debconf libstdc++6 dkms libqtgui4 wget execstack libelfg0 dh-modaliases
 sudo apt-get install --reinstall xserver-xorg-core libgl1-mesa-glx libgl1-mesa-dri
 sudo dpkg-reconfigure xserver-xorg
 cd ~/Downloads
 wget --referer='http://support.amd.com/en-us/download/desktop?os=Linux+x86_64' http://www2.ati.com/drivers/linux/radeon-crimson-15.12-15.302-151217a-297685e.zip
 wget --referer=http://support.amd.com radeon-crimson-15.12-15.302-151217a-297685e.zip
 unzip radeon-crimson-15.12-15.302-151217a-297685e.zip
 cd fglrx-15.302
 sudo chmod +x amd-driver-installer-15.302-x86.x86_64.run
 sudo sh amd-driver-installer-15.302-x86.x86_64.run
 sudo amdconfig --initial
 sudo reboot

Num primeiro momento rodou tudo certo, mas depois de abrir o amdcclce e configurar para usar a placa intel as coisas não funcionaram bem e aí num outra pesquisa vi que é necessário reinstalar o pacote libgl1-mesa-glx

sudo apt-get install --reinstall libgl1-mesa-glx:i386

 

Padrão
Sem categoria

Instalando ElementaryOS via Pendrive sem Nvidia

Ainda esses dias peguei um computador para atualizar o Linux que estava instalado, era um Ubuntu 10.04 rodando firme e forte 😉

Escolhi instalar um ElementaryOS, por ser bem leve e precisava ser para a máquina de 1G de ram

Para instalar mais rápido eu prefiro fazer a instalação via USB e utilizo o UNetbootin (ele é multiplataforma e tem versão para Windows e MACOS, além de Linux)

No Ubuntu é só rodar

sudo apt-get install unetbootin* extlinux

Coloquei o pendrive na máquina, mas não subiu a interface gráfico e aí fui vê que o problema era com a placa de vídeo, uma offboard nvidia. Uma busca rápida e descobri o esquema de incluir nomodeset no grub resolveria. No caso eu preciso precisar tab para editar o menu inicial do UNetbootin e incluir o nomodeset. Rodou a interface gráfica, mas zuada. Então rodei o Xorg -configure e troquei o drive nouveau para vesa e reiniciei o lightdm e funfou 🙂

Fiz a instalação e aí precisei editar o grub para iniciar corretamente, depois peguei uma dica para remover o driver:

sudo apt-get remove nvidia* && sudo apt-get autoremove
cat >/etc/modprobe.d/blacklist-nouveau.conf << EOF
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
EOF
echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
update-initramfs -u

E aí só reiniciar a máquina

Depois achei um post com o nome HowTo: Install latest NVIDIA Driver on Linux without getting black screen, mas nem utilizei, mas fica aqui documentado.

Padrão
Sem categoria

Bloqueando lista de sub-diretórios e arquivos

Aqui no laboratório sempre estou com demandas diferentes, tem que se aperfeiçoar constantamente, vida de SysAdmin.

Estou estudando bastante segurança de WordPress e uma ferramenta que ajuda bastante é o wpscan e observando um site de um parceiro apareceu que um diretório sensível estava público.  No caso o diretório uploads fica aberto acessando por http://localhost/wordpress/wp-content/uploads e usando programas como httrack ou wget é possível baixar todos arquivos recursivamente e montando a mesma estrutura no ambiente local.

ruby ./wpscan.rb --url http://localhost/wordpress
httrack http://localhost/wordpress/wp-content/uploads/iphorm/ -b1 +*

Então fiz um estudo rápido de como proteger essa falha aberta e achei duas soluções, uma consistia em criar um arquivo index.html em todos os diretórios e sub-diretórios recursivos, para tal a melhor solução que achei foi com uma junção do comando find com touch e ficou assim:

find . -type d -exec touch {}/index.html \;

Outra solução é criar um arquivo .htaccess com o conteúdo
Options -Indexes

Acrescentando assim uma nova instrução ao apache, sem necessidade de ter autorização do administrador do servidor.

De cara não funcionou aqui no meu ambiente de desenvolvimento, que roda um openSUSE e tive que fazer alguns ajustes no apache, acrescentando no arquivo /etc/apache2/httpd.conf

<Directory “/srv/www/htdocs”>
AllowOverride All
</Directory>

Aí sim funcionou!

Os comandos utilizados foram para conhecer melhor as vulnerabilidades foram

Padrão
Sem categoria

Mensagem de erro no AutoMySQLBackup em MySQL 5.6

Configurando o AutoMySQLBackup em MySQL 5.6 voltou a mensagem de erro warning using a password on the command line interface can be insecure, para resolve apliquei o ajuste depois da linha 115

# Remove annoying warning message since MySQL 5.6
 if -s "$log_errfile" ; then
 sedtmpfile="/tmp/$(basename $0).$$.tmp"
 grep -v "Warning: Using a password on the command line interface can be insecure." "$log_errfile" > $sedtmpfile
 mv $sedtmpfile $log_errfile
 fi

dica retirada do site redeo.nl

Padrão