Можно ли изменить FPS после создания AVI ?
От: Аноним  
Дата: 13.06.07 11:52
Оценка:
Исходные данные:
Имеется видеокамера 1920x1080 30FPS, снимаю с неё кадры и сохрняю их в AVI файл:
1) Создаем файл и стрим: AVIFileOpen, затем AVIFileCreateStream, AVIMakeCompressedStream, AVIStreamSetFormat,
2) затем с помощью AVIStreamWrite записываем кадры
3) Закрываем поток и файл AVIStreamRelease, AVIFileRelease.

Проблема в том, что при создании стрима, в структуре AVISTREAMINFO было задано FPS=30 (lInfo.dwScale = 100; lInfo.dwRate = 30*100, Однако из за тормозов при вызове AVIStreamWrite, реальное значение FPS — около 5-ти.

Вопрос: Можно ли посчитав реальный FPS, задать его после записи последнего кадра и перед закрытим потока и файла?
Re: Можно ли изменить FPS после создания AVI ?
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 13.06.07 12:36
Оценка:
А>Вопрос: Можно ли посчитав реальный FPS, задать его после записи последнего кадра и перед закрытим потока и файла?

Можно, только
1) вряд ли кадры пропущены с одинаковыми интервалами, видео будет дергаться.
2) не в курсе, как это сделать через функции AviFile,
3) у AviFile кажися были проблемы с записью файлов более 2 ГБ.

Как вариант, можно при записи орчередного кадра определять число пропущенных и писать столько пустых (нулевой длины) кадров. Тогда FPS менять не надо и играться будет нормально.
Re[2]: Можно ли изменить FPS после создания AVI ?
От: Kola Россия  
Дата: 13.06.07 12:53
Оценка:
DM>1) вряд ли кадры пропущены с одинаковыми интервалами, видео будет дергаться.
интервалы примерно одинаковые — это юзеру не принципиально...

DM>2) не в курсе, как это сделать через функции AviFile,

я как раз в эту сторону думаю, — как бы изменить структуру AVISTREAMINFO..
DM>3) у AviFile кажися были проблемы с записью файлов более 2 ГБ
да — есть такая проблема, но юзера это не напрягает

DM>Как вариант, можно при записи орчередного кадра определять число пропущенных и писать столько пустых (нулевой длины) кадров. Тогда FPS менять не надо и играться будет нормально.

спасибо — попробую
Re[2]: Можно ли изменить FPS после создания AVI ?
От: Kola Россия  
Дата: 15.06.07 11:03
Оценка:
проблема разрешилась следующим образом:
Записал и закрыл AVI, затем открыл файл, по FourCC нашол в файле место где лежит структура AVISTREAMINFO, и запатчил поле dwRate.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.