Написание файла .Ts «по требованию» (inotify? ...) - PullRequest
2 голосов
/ 07 февраля 2010

У меня есть медиаплеер, который может читать только общие файлы самбы. Я хотел бы воспроизвести http-поток (например, из моей Dreambox).

Моя идея - поделиться папкой в ​​моем linux. В этой папке я добавлю (поддельные?) Файл для каждого телеканала, который я хочу просматривать ( ex: channel1.ts, channel2.ts ... ).

Медиаплеер может читать эти файлы только так, как следует с обычными файлами. Моя потребность: сделать что-то, что «прослушивает» доступ к этим файлам, чтобы при доступе к нему моего медиаплеера запускалось mencoder -oac copy -ovc copy -o channel1.ts http://path.to.the.broadcast.ts.

Я пытался использовать inotify для пустого файла. Он хорошо запускает mencoder, НО медиаплеер останавливается до начала кодирования (потому что файл пуст, поэтому он достигает конца до начала). Возможно, нужно заполнить 5 секунд видео, чтобы буферизовать чтение?

Может быть неплохо использовать «fifo» => Я попробовал это, медиаплеер ждет, когда я делаю mencoder, fifo начинает расти, медиаплеер воспроизводит его! Даааа !!! ... НО inotify похоже не реагирует на пятерку ... поэтому я не могу запустить менкодер автоматически.

Любые предложения приветствуются.

Основные баллы:

  • Медиаплеер может ТОЛЬКО читать обычные файлы
  • Файл должен находиться в общей папке samba
  • Запись должна быть «запущена» по требованию (когда медиаплаттер пытается получить к ней доступ)
  • Может быть неплохо наблюдать за "бездействием", чтобы остановить запись / очистку буферного файла

Нелегко формализовать этот вопрос. Я немного разочарован и даже не знаю, какие поиски я мог бы найти для этого.

Надеюсь, что некоторые гуру найдут что-нибудь для себя

Приветствие.

1 Ответ

0 голосов
/ 03 апреля 2010

Возможно, вы захотите взглянуть на методы, которые используют Hierarchical Storage Management и вирусные сканеры при доступе, так как они должны делать подобное прерывание перед обычным доступом.

например. Используйте Talpa для перехвата открытых операций в выбранном каталоге и замените файл в этой точке.

...