Estou precisando converter uns arquivos de vídeo e resolvi pesquisar em como anda o suporte a encoding via hardware no Raspberry Pi 3. Após pesquisar um pouco verifiquei que o suporte existe mas não é lá essas coisas, mas resolvi testar mesmo assim.
Estou usando o Raspbian Stretch sem ambiente gráfico. Instalei o ffmpeg do repositório e ele oferece suporte ao encoding via hardware mas ao fazer uns testes de conversão dos meus vídeos, vi que a utilização do hardware estava bem alta, em torno de 200 a 300% (2 a 3 cores). Como também existe o suporte ao decoding h264 via hardware tentei fazer o uso do decoding/encoding via hardware e recebi uma mensagem de erro (“Did not get output frame from MMAL”).
Sendo assim resolvi compilar o ffmpeg a partir do código fonte para melhorar esse desempenho.
Um último detalhe antes de começar. Eu não liguei o suporte a um monte de coisas nessa versão compilada para meus testes. Não tem h265, ssl, etc. De repente eu volto aqui no futuro e atualizo esse tutorial para incluir pelo menos o mesmo suporte à versão encontrada no repositório oficial.
As fontes de consulta que eu utilizei foram as seguintes:
- Fonte 1, Reddit, gostei muito pois é bem explicativo mas alguns comandos não funcionam ou ficaram desatualizados.
- Fonte 2, utilizei a solução do ./configure apresentada
- Fonte 3, instalar a lib OMX que não foi citada nas fontes anteriores
E agora eu começo a brincadeira. Espero que ao você dar CTRL+C e CTRL+V na minha solução, ela funcione para você também