1

Тема: Сохранение видео на "диск"

Пожалуйста, подскажите, как сохранять получаемый с камеры видеоряд в стандартный видеофайл (какой-нибудь AVI или что-то вроде). По идее, это умеет делать OpenCV, но, как сказано в учебнике по этой библиотеке, "под линуксом запись видео происходит только если ffmpeg-dev правильно установлена". Мне записывать видео средствами OpenCV так и не удалось...

Поделиться

2

Re: Сохранение видео на "диск"

Yana, если не заморачиватся, то самый простой способ - сохранять MJPEG - фактически набор стандартных jpeg'ов + специальный заголовок и разделители... потом это любой плеер или конвертер тебе откроет

Сайт nsl

Поделиться

3 (14.04.2011 19:17:43 отредактировано Yana)

Re: Сохранение видео на "диск"

Но ты представь, КАКОЙ размер будет у такого файла без ключевых кадров! Речь-то о видеорегистраторе - а это часы записи...

Поделиться

4

Re: Сохранение видео на "диск"

Не буду вмешиваться в разговор столь умных людей cool

???????????? - сотри монеткой, чтобы получить пароль от этого аккаунта

Поделиться

5

Re: Сохранение видео на "диск"

Yana... тогда тебе придется таки ffmpeg использовать...
но можно слегка извратится - ему можно скармливать просто серию изображений, надеясь, что он сам их склеит в видео и откомпрессирует... т.е. просто через pipe скармливать smile
ну или поступать "правильно" и честно самому создавать видеофайл... но разницы по эффективности особо не будет

Добавлено: 14.04.2011 19:09:13

Badn088, а ты подтягивайся, подтягивайся  big_smile


Добавлено: 14.04.2011 19:10:25

Yana, кстати размер не так и велик будет... карточки на 32 гига спасут мир... особенно если каждые несколько часов их менять smile зато нагрузка на проц будет не такая обширная smile

Сайт nsl

Поделиться

6

Re: Сохранение видео на "диск"

nsl да я бы с радостью, этого я и хочу, просто я в информатике в целом немного только знаю и разбираюсь, учусь то на бухгалтера и некому меня кое-чему научить (эхх), некому

???????????? - сотри монеткой, чтобы получить пароль от этого аккаунта

Поделиться

7

Re: Сохранение видео на "диск"

Badn088, оффтопим мы отчайно smile но скажу тебе по-секрету... этому нельзя научить, этому можно только научится... читаешь книги, пробуешь, экспрементируешь и все...

Сайт nsl

Поделиться

8

Re: Сохранение видео на "диск"

nsl пишет:

Yana, если не заморачиватся, то самый простой способ - сохранять MJPEG - фактически набор стандартных jpeg'ов + специальный заголовок и разделители... потом это любой плеер или конвертер тебе откроет

nsl, можешь поздравить smile Мое приложение пишет серию JPG'ов на карточку. Каждый - примерно по 5-6К, то есть час съемки займет 6 K * 15 * 60 * 60 = 324 Mb, а на 32-гиговую карточку поместится часов 100. Но час съемки - это 54 тысячи кадров - а такое количество файлов определенно не самый лучший вариант.

У тебя есть идеи, как писать все это в один большой файл? Можно, конечно, каждый кадр сохранять в файл, потом открывать его, брать нужную инфу, которую вместе с необходимыми хедерами-делимитерами дописывать в видеофайл, а файл кадра стирать - но это как-то криво...

Поделиться

9

Re: Сохранение видео на "диск"

Yana, поздравляю! smile
пиши в MJPEG формат (им многие ip-камеры пользуются) - фактически это заголовок, а потом поток совершенно обычных JPEG файлов, разделенных определенным в заголовке разделителем...

Сайт nsl

Поделиться

10

Re: Сохранение видео на "диск"

nsl пишет:

Yana, поздравляю! smile
пиши в MJPEG формат (им многие ip-камеры пользуются) - фактически это заголовок, а потом поток совершенно обычных JPEG файлов, разделенных определенным в заголовке разделителем...

Понять бы, как это сделать. Раз уж Qt умеет записывать в файл картинки в JPEG-формате, хотелось бы использовать JPEG-энкодер, уже входящий в Qt, вместо того, чтобы писать свой кодировщик или грузить стороннюю библиотеку.

Можно ли как-то задействовать функции Qt для сохранения картинок не в отдельные файлы, а в общий MJPG-файл?

Поделиться

11

Re: Сохранение видео на "диск"

Yana, в принципе можно не страдать фигней с созданием файла самой...
ты уже пишешь jpeg'и, это гут
открываешь ffmpeg своей прогой и гонишь ему на вход просто jpeg'и (т.е. сохраняешь их в stdout)
а сам ffmpeg запускаешь с чем-то типа
ffmpeg -y -f image2pipe -i pipe:.jpg [тут опеределяешь в каком формате-кодеке кодировать] out.avi
ну мож комманда не очень точна, но как-то похоже я когда-то уже делал smile

Сайт nsl

Поделиться

12

Re: Сохранение видео на "диск"

nsl, спасибо за идею! Буду копать в этом направлении...

Поделиться

13

Re: Сохранение видео на "диск"

Yana, не за что... потом расскажи что получилось smile
P.S.: можно, кстати, кормить ffmpeg'у не jpeg'и, а какой-нибудь формат без потерь... посмотри что ffmpeg умеет на n900 и что из этого QT поддерживает smile

Сайт nsl

Поделиться

14

Re: Сохранение видео на "диск"

nsl, пока разбираюсь, как запайпить вывод на ffmpeg...

Поделиться

15 (22.04.2011 19:26:15 отредактировано Yana)

Re: Сохранение видео на "диск"

Попробовала для начала вручную конвертировать jpeg-кадры:
ffmpeg -i %08d.jpg test.mpeg

test.mpeg создался - но видеооплеер телефона его не понимает. При попытках сделать test.avi, test.mov или test.mp4 - ffmpeg ругается на отсутствие кодека...

А вот mplayer сумел проиграть mpeg. К сожалению, мне не удалось задать fps - какое бы число я не вводила с ключом -r, ffmpeg ругался на неподдерживаемое значение частоты кадров.

Поделиться