quarta-feira, 16 de dezembro de 2015

OpenELEC/Kodi autoplay de vídeos e playlists

Com o OpenELEC obtém-se rapidamente um media center completamente funcional mas com alguns ajustes é possível transformá-lo num kiosk que apresenta automaticamente um conjunto de vídeos num loop infinito.

Isto permite que sempre que seja ligado, arranque e inicie a reprodução sem qualquer intervenção humana (não é necessário rato/teclado/comando).

Assim, um sistema com uma televissão e um raspberry pi fica completamente autónomo para reprodução de vídeos de demonstração, divulgação, etc.

Criar uma playlist

A maneira mais fácil consiste em reproduzir um vídeo e depois ir adicionando novos vídeos à playlist.
Quando se tiver a playlist concluída resta guardar com um nome sugestivo, por exemplo: videos_loop

Por defeito fica guardada em /storage/.kodi/userdata/playlists/video.

Reproduzir automaticamente e ficar em loop

Para iniciar a reprodução automática de vídeos/playlists, é possível criar um ficheiro autostart.sh em /storage/.config com:
(
sleep 20 ;
kodi-send --action="PlayerControl(RepeatAll)" ;
kodi-send --action="PlayMedia(\"/storage/.kodi/userdata/playlists/video/videos_loop.m3u\")" ;
)&


É fácil perceber que inicialmente se esperam 2 segundos, depois é enviado o comando para o kodi alterar a forma de reprodução para RepeatAll e de seguida é dada a ordem de reprodução da playlist guardada.

Existem inúmeros comandos disponíveis para o kodi [1], permitindo personalizar e automatizar diversas tarefas.

A partir daqui resta ligar o raspberry pi com o OpenELEC e depois de carregar o Kodi, a playlist é iniciada e fica em loop até ser desligado.


Referências

[1] - http://kodi.wiki/view/List_of_built-in_functions

3 comentários:

  1. Obrigado por clarear minha visão!
    Estou tentando agora incluir no loop, imagens. Ficaria alternando entre todos os videos da lista e entre todas as pastas do diretório de imagens (kodi-send --action="RecursiveSlideShow("/storage/Torrents/Image/")" ;).
    Pode me dar algumas dicas para criar esse código? Agradeço muito sua colaboração!

    Meu código inicial está assim:
    (
    sleep 20 ;
    kodi-send --action="RecursiveSlideShow("/storage/Torrents/Image/")" ;
    sleep 30 ;
    kodi-send --action="PlayMedia(\"/storage/Torrents/Watch/videos_loop.m3u\")" ;
    )&

    ResponderEliminar
    Respostas
    1. Esqueci de finalizar!
      O problema maior com o código acima é que ele não retorna para o início, então não fica em loop direto.
      Eu usava a linha do RepeatAll, mas não funciona comigo.

      Eliminar
    2. A minha proposta seria a seguinte e por esta ordem:
      (
      sleep 20 ;
      kodi-send --action="PlayerControl(RepeatAll)" ;
      kodi-send --action="RecursiveSlideShow("/storage/Torrents/Image/")" ;
      sleep 30 ;
      kodi-send --action="PlayMedia(\"/storage/Torrents/Watch/videos_loop.m3u\")" ;
      )&

      A ideia que tenho é que o PlayerControl(RepeatAll) só funciona quando é chamado antes do PlayMedia().

      No entanto, na documentação do kodi (Referência [1]) o método PlayerControl() começa por dizer explicitamente «Allows control of music and videos.»

      Por isso acho que não deve suportar slideshow de imagens... Mas é caso para se testar e confirmar se funciona ou não!

      Outra sugestão, caso não funcione, será a de criar um vídeo a partir das imagens, algo automático utilizando o ffmpeg ou avconv.

      Boa sorte.

      Eliminar