Запись, хранение и обработка видео

kokoc88

Для проекта нужно написать программу, которая умеет работать с видеокамерами. Основные требования к тому, что она должна уметь:
1. Записывать видео на различном битрейте или на различном качестве сжатия.
2. Сжатие должно быть хорошим: до 30-60 мб данных в час при разрешении 320х240x16 и 5-10 fps.
3. Все используемые кодеки должны быть либо бесплатными, либо стандартными виндовыми, либо LGPL.
4. Необходимо уметь делать из кусочков нескольких файлов один файл. Например, сделать файл -20 секунд от конца одного и +20 секунд от начала второго видеофайла.
5. Сжатие при 5-10 fps должно пожирать не более 30% 2GHz процессора.
Почти всё это можно сделать на основе Windows Media Format SDK, записывая данные в asf файлы. Сжимает прекрасно, битрейт ставится вообще произвольный, жрёт 10-20% процессора. Но вот беда, выполнить пункт 4 совершенно нереально. Возникла было идея использовать в таком случае Xvid, да он оказался чисто GPL. (Не знаю, можно ли "обойти" GPL, например, опубликовав только часть кода, связанного с Xvid?..)

mira-bella

Возникла было идея использовать в таком случае Xvid, да он оказался чисто GPL. (Не знаю, можно ли "обойти" GPL, например, опубликовав только часть кода, связанного с Xvid?..)
Не вижу никаких проблем с тем, что Xvid публикуется под GPL.
если твой софт не содержит Xvid или его часть или производное от этого (т.е. модифицированную часть Xvid) в качестве своей составной части, то ты не обязан свой софт публиковать под GPL.
Таким образом софтина, использующая Xvid, но не содержащая его, может не быть GPL. А для этого достаточно: для исходников - не включать Xvid в package, для бинарников - не линковать с Xvid-ом статически (а линкануть динамически, например) и не включать части Xvid-а (например DLL-ку) в дистрибутив, а например сказать в документации, что проинсталенный Xvid кодек необходим для функционирования данной софтины.

Ivan8209

> Не знаю, можно ли "обойти" GPL, например,
> опубликовав только часть кода, связанного с Xvid?..)
А прочитать лицензию?
Там могут быть исключения и/или дополнительные условия.
Точно "чисто" GPL?
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."

kokoc88

But note that if you distribute XviD along with another software that links against XviD upon run-time, we consider this a derived work and the GPL then requires you to publish the software as a whole under the terms of the GPL. Besides other rules, this requires provision of the enire work's source code.
По идее мне не нужно вообще никакой линковки. Я просто использую его как DirectShow Filter. Ведь можно же видеофайлы с этим кодеком проигрывать в Windows Media Player. Но не скажут ли они, что распространение их кодека с коммерческой программой, которая использует его для сжатия, пусть даже через DirectShow, является нелегальным?
К сожалению, сказать в документации я ничего не могу. Программа должна ставиться полностью.

a10063

Но не скажут ли они, что распространение их кодека с коммерческой программой, которая использует его для сжатия, пусть даже через DirectShow, является нелегальным?
К сожалению, сказать в документации я ничего не могу. Программа должна ставиться полностью.
интересно, а с Windows Media Format SDK ты как хотел поступить? он разве с виндой идет?..

kokoc88

Windows Media Format SDK ты как хотел поступить? он разве с виндой идет?..
Есть его redist, так же, как DirectX.

kokoc88

С одной стороны, конечно, подойдёт. Но если прочитать "known issues", то нет. Программа комерческая, видео должна писать в течении 1-2 месяцев не падая.

mira-bella

But note that if you distribute XviD along with another software that links against XviD upon run-time, we consider this a derived work and the GPL then requires you to publish the software as a whole under the terms of the GPL. Besides other rules, this requires provision of the enire work's source code.
мне кажется, что это из разряда "мечтать не вредно"
Но подходя к вопросу максимально параноидально, можно действительно осуществлять доступ через какой-нибудь общий виндовый интерфейс (типа DirectShow или VfW). Тогда точно не подкопаешься. Заодно можно выбор кодека встроить в софтину.

kokoc88

Всё, проблему решил. Всё-таки с помощью средств от Майкрософт.

Dasar

> Всё, проблему решил. Всё-таки с помощью средств от Майкрософт.
решил - напиши как. всем же интересно..

kokoc88

Просто, у них есть ещё Windows Media Encoder 9 Series, и, соответственно, Windows Media Encoder 9 Series SDK. Позволяет работать с wmv файлами: выделять часть из одного файла, разбивать файл на потоки (видео-аудио из двух файлов делать один (правда, с перекодированием). И, как ни странно, этот же SDK умеет работать с Audio/Video Capture Devices.

vksmikl

Михаил, как я понимаю вам нужно 1 поток аудио и видео с камеры?
просто на 4 видео потока В9 загнется.
Оставить комментарий
Имя или ник:
Комментарий: