| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Запись видео |
| Автор: deniska 15.8.2013, 14:48 |
| Есть камера, с нее получаю кадры-массивы RGB. появилась задача сохранять видео в каком-либо удобоваримом для разных проигрывателей формате. порыскал в тырнете, реализовал сие с пом vfw. AVIFileOpen, AVIStreamWrite и тд. вопрос вот в чем: при достижении видеофайлом размера в 4,294,967,295 байт(ограничение uint), AVIStreamWrite втихую перестает что-либо записывать в этот файл. 1. Это ограничение как-то обходится? пока сделал после каждой записи кадра проверку на размер записанных данных и индексирование получаемых видеофайлов. тут проблема в том, что я не знаю сколько реально байт записалось на диск (изза сжатия реальный файл получается меньше, чем я расчитываю по формуле "размер кадра*число кадров") 2. может есть библиотеки которые существенно качественне с такой задачей справятся? (размер кадров 480*480, быстродействие, потеря качества минимальная, размер видеофайла минимален) все это под виндой. кадры летят до 50 ФПС, но помимо этого у программы еще много других параллельных задач, поэтому быстродействие важнО. спасибо! |
| Автор: Rickert 20.10.2013, 11:51 |
| 1) У вас файловая система FAT32? Там ограничение на размер файла - 4 гига. |
| Автор: deniska 20.10.2013, 17:13 |
| ntfs... |
| Автор: Pavia 4.11.2013, 09:05 |
| deniska, vfw устаревшая технология/библиотека она не поддерживается. Разумеется что она не держит AVI файлы с размером более 4ГБ так как устарела со времён 95 когда более чем об 1 ГБ не слышали а пользовались 40-5-- мб дисками. Используйте современные DirectX, FFMpeg и тп. |