Problema: FFMPEG GPU / Aceleração de hardware não está ativada no RPI. O FFPlay é agitado, irregular e leva quase 100% da CPU.
Descrição: O streaming de vídeo dos arquivos MPEG4 é muito lento (o streaming de vídeo está sendo reproduzido como uma apresentação de slides), além de consumir entre 95% e 97%. O consumo da CPU aumenta com o aumento do tamanho da tela. Outras ferramentas no RPI, como o Webbrowser integrado, mostram os mesmos arquivos MPEG4 lisos, de fato o Webbrowser mostra bem o vídeo de qualidade HD (720p) e com cerca de 30-35% de CPU.
Ambiente: RPI3, FFMPEG. O FFMEG é compilado com o decodificador MMAL habilitado e confirmado. Passos do link "do Johnanath são usados.
Justificativa: O motivo para acelerar o decodificador FFMEG MMAL no RPI 3 é que estamos usando a chamada de vídeo PJSIP. O PJSIP usa o FFMPEG e também é slow s (acreditamos que pelo mesmo motivo o FFMEG é lento) para uma chamada de vídeo. Configuração e testes: Como comentários de johnathan, habilitei h264_mmal e h264_omx para decodificação e codificação de vídeo, respectivamente, durante a configuração do ffmpeg. Aqui abaixo estão os procedimentos seguidos no rpi3:Executou os seguintes comandos:
1) ffmpeg -f -i test.mp4 -s 320*240 -c:v h264_omx test_h264_mmal.mp4
2) ffplay -vcodec h264_mmal test.mp4
3) ffplay -vcodec h264_mmal test_h264_mmal.mp4
(com resolução diferente, como 320 * 240, 640 * 480)
4) Defina o valor de gpu_mem para 128 e 256
Abaixo está a configuração no ffmpeg:
$ ffmpeg -decoders | grep h264
ffmpeg version git-2017-05-05-3c085c1 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 4.9.2 (Raspbian 4.9.2-10)
configuration: --prefix=/usr --enable-mmal --enable-omx --enable-omx-rpi --enable-decoder=h264_mmal --enable-decoder=mpeg2_mmal --enable-encoder=h264_omx --enable-encoder=h264_omx --enable-libx264 --enable-nonfree --enable-gpl --enable-avresample --enable-shared --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libzvbi
libavutil 55. 61.100 / 55. 61.100
libavcodec 57. 94.101 / 57. 94.101
libavformat 57. 72.101 / 57. 72.101
libavdevice 57. 7.100 / 57. 7.100
libavfilter 6. 88.100 / 6. 88.100
libavresample 3. 6. 0 / 3. 6. 0
libswscale 4. 7.101 / 4. 7.101
libswresample 2. 8.100 / 2. 8.100
libpostproc 54. 6.100 / 54. 6.100
VFS..D h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
V..... h264_mmal h264 (mmal) (codec h264)
V....D h264_vdpau H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (VDPAU acceleration) (codec h264)
Resultados do Teste: Quando o ffplay é usado, vemos a imagem do Vídeo Jittery deslizar uma apresentação de slides com quase 100% da CPU.
Nota: Quando o streaming de vídeo HD no RPI3 usa o navegador padrão e o chrome funciona bem com 30-35% de CPU.
Há mais alguma coisa precisa ser cuidada, ou qualquer ajuda é muito apreciada, pois estou preso a essa questão por mais de uma semana.
Tags ffmpeg raspberry-pi