С нами с 09.03.06
Сообщения: 772
Рейтинг: 143
|
Добавлено: 06/05/06 в 21:00 |
Дано:
1. Сервер по управлением FreeBSD. Прав root нет.
2. Программа которая умеет грабить кадры из видео файлов, расположенных на данном сервере.
Требуется:
Грабить кадры из видео файлов, расположенных в интернете.
------------
Простой вариант решения задачи (загрузить видео файл целиком, потом грабить) не годится. Хочется качать не весь файл, а только куски файла, необходимые программе для получения кадров. Это можно реализовать так:
1. Создаём пустой файл размером как нужный нам видео файл (назовём его кэш-файлом).
2. Перехватываем вызовы seek, read и т.п. при обращении к кэш-файлу.
3. Обработка перехваченных вызовов: Если запрашиваемого куска файла нет в кэш-файле нет, то качаем его, записываем в кэш-файл, после этого исполняем переххваченный вызов. Если кусок уже подкачан в кэш-файл, то остаётся просто исполнить перехваченный вызов.
------------
Вопрос:
Как перехватить доступ к файлу? Или как перехватить системные вызовы в данном процессе?
|
|
|
|
БешаныйСуслег
С нами с 16.06.04
Сообщения: 1322
Рейтинг: 1338
|
Добавлено: 06/05/06 в 21:16 |
Вариант 1.
Подменить вызовы libc
Пример этого можно найти в transconnect (transconnect.sourceforge.net)
Вариант 2.
Пользоваться возможностями HTTP 1.1 для получения частей файла.
|
|
|
|
С нами с 09.03.06
Сообщения: 772
Рейтинг: 143
|
Добавлено: 07/05/06 в 10:11 |
Спасибо, исследую первый вариант. Вроде должно работать
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |