Escrevendo .TS arquivo 'on demand' (inotify? ...)
Pergunta
Eu tenho um mediaplayer que só pode ler arquivos de samba compartilhada. Eu gostaria de jogar http fluxo (do meu dreambox por exemplo).
A minha ideia é compartilhar uma pasta no meu linux. Nesta ação, vou colocar uma (falsa?) Arquivo para cada canal de TV que eu quero ser capaz de assistir ( ex: channel1.ts, channel2.ts ... ).
O mediaplayer só pode ler estes arquivos como deveria com arquivos regulares. Minha necessidade: fazer algo que "ouvir" para o acesso nesses arquivos de modo que quando o meu mediaplayer acessá-lo, ele dispara um mencoder -oac copiar cópia -ovc -o channel1.ts http:. //path.to.the.broadcast.ts
Eu tentei usar inotify em um arquivo vazio. Ele aciona o mencoder bem, mas o mediaplayer pára antes de codificar começa (porque o arquivo está vazio assim que chega ao fim antes de começar). Talvez, tem que preencher 5s de vídeo, a fim de amortecer a leitura?
Pode ser bom para usar um "fifo" => Eu tentei, as esperas mediaplayer, quando eu faço o mencoder, o fifo começa a crescer, o mediaplayer joga-lo! Yeahh !!! ... MAS inotify parece não reagir em um fifo ... então eu não pode disparar mencoder automaticamente.
A cada sugestões bem-vindos.
Pontos básicos:
- O media player pode só lê arquivos regulares
- O arquivo deve estar em um samba compartilhada pasta ??li>
- Gravar deve ser "demitido" on demand (quando mediaplater tentar acessá-lo)
- Pode ser bom para assistir "inatividade", a fim de parar a gravação / esvaziamento arquivo de buffer
Não é fácil para formalizar esta pergunta. Estou um pouco desapontado e eu even't não sei que tipo de pesquisa que eu poderia googelise para isso.
Hope alguns gurus aqui vai encontrar algo para fazer o truque
Felicidades.
Solução
Você pode querer olhar para as técnicas Hierarchical Storage Management e on-access Scanners de Vírus usam, como eles precisam fazer interrupção semelhante antes do acesso normal.
por exemplo. Use Talpa para interceptar operações de abertura no diretório selecionado e substituir o arquivo nesse ponto.