Цитата:
Сообщение от SBorovkov
Попробовал только что с последовательной дозаписью mpg файла. Сделал так: camgrabber пишет mpg файл, я слежу за этим файлом и раз в секунду все, что в него добавилось добавляю к своему файлу. То есть если начало изменится, то я об этом не узнаю и в своем файле начало не изменю. Я слежу за размером файла и дописываю к себе только то, что добавил camgrabber.
Итог - mpg прекрасно играется!
Продолжил изделательства - в конец такого mpg файла дописал какой-то exe файл большого размера (порядка 100 мег) в качестве мусора. В результате плееры считают, что файл содержит не 6 минут видео, а 7 с лишним, но когда доходят до конца реальных видео данных и приступают к проигрыванию мусора, просто прекращают воспроизведение.
То есть идея про дозаписывание mpg на флешку имеет очень неплохие шансы на существование.
С avi сложнее - у них в начале файла содержится заголовок размером в 64к, без которого файл просто не играется, этот заголовок надо формировать, при создании файла он забит нулями...
|
Здесь ты полностью прав за исключением размера заголовка, его размер ожет варьроваться от кол-ва внутренних потоков и контейнеров и даже от выбора кодека. Блок RIFF + блок movi + блок indx. Вот и весь avi.
Эту проблему можно решить проще.
При запуске программы сохраняем кусок видео с каждого устройства. Дергаем оттуда заголовок (он от вреени не меняется и всегда постоянен).
Пишем его себе в начало файла этого большого. Потом по твоему методу мониторим файл (хотя не самый лучший метод, через банальную проверку потока проще) но это уже мне проще в коде. И все, в случае если комп сдох - есть заголовок + блок movi, а индексы перестроить даже BSPlayer ожет, не говоря уже о VirtualDUB.
В целом мысль твоя здравая, думаю замутим!!!!