Для программы нужен декодер потокового видео. Можно платный. Главные требования: 1. Поддержка форматов mpeg2, mpeg4, h.264. 2. Простота, !!!ПРОСТОТА!! изучения и интеграции. 3. C++, >= WinXP. В данный момент использую декодер, идущий в SDK к камерам от UDP Technology (http://www.udptechnology.com/). Сорцы хоть и представляют собой гуан-код, но все же держат требуемые форматы, а минимальный декодинг видео (со всеми там инклудами, инитами, и прочими шаманствами) представляет собой буквально 10 строк кода, то есть по крайней мере они старались все сделать для людей. Однако, от их декодера все же придется отказаться, т.к. совершенно не устраивает перфоманс. UDP Technology жрет CPU в 10-20 раз больше, чем VLC при проигрывании одного и того же потока. Требуется декодер, который обладал бы хотя бы теми же свойствами что и UDP, но имел бы нормальный перфоманс. Я потратил достаточно времени на изучение следующих библиотек: 1. FFmpeg (http://ffmpeg.org/) 2. LEADTOOLS (http://www.leadtools.com/) 3. Elecard (http://www.elecard.com/) 4. VLC (http://www.videolan.org/vlc/) И могу заявить со всей ответственностью, что хоть данные либы и имеют хороший перфоманс, однако с точки зрения культуры программирования, user- и integration-firendly они написаны кончеными красноглазыми мyдаками, которым нужно вырывать с корнем культяпки сразу после рождения. Любой пример из любой из этих библиотек - это сотни и !тысячи! строк кода. Дикий замес MFC и функциональности либы. Или замес плоского C и "С++ в руках обезьяны". Все это приправлено довольно оригинальным взглядом на project configuration, дизайн архитектуры и build process приложения, что делает либы понятными исключительно тем людям, которые их делали. В итоге, чтобы решить задачу "на mpeg4, дай rgb", нужно перелопатить десятки файлов, тысячи строк кода, станцевать все известные танцы вокруг конфигурирования и настройки билда, и т.д., что в итоге выливается в дни, а то и недели, разгребания кургана навоза детским совочком. Я молчу про изящность и простоту буста, но епт, тот же UDP Technology - вызвали 5 функций, и вот нам уже распакованная rgb-картинка. В итоге я так и не смог написать приличный C++-адаптер ни для одной из этих убогих библиотек. Короче, крик души. Подскажите, у кого какие соображения на этот счет, что делать, что и КАК юзать. Если кто-то хочет сказать, мол ты дебил, на такой-то либе это делается в 10 строк, то будьте так любезны, процитируйте эти самые сокральные 10 строк. PS. Еще есть одна надежда - это ffdshow, но что-то мне подсказывает...
долго читал и вдумывался - чуть не обдумался. не понимаю чем не устраивает свой direct show фильтр? или, например, ISampleGrabber? вообще, закинь в свою прогу COM dll-ку, при запуске просматривай установленные фильтры. если нет mpeg-4 декодера - регистрируй свою либу. вот, в принципе, и всё шаманство.
cupuyc Сорцы не нужны. Нужна возможность в моей проге декодить видео. Как это будет сделано - пох. Главное - декодинг с поддержкой форматов и хорошим перфомансом.
ну вот... а чем direct show не устраивает? конечно, довольно корявая платформа, имхо. не будет никакой кросс-платформенности. если только под вынь, то вполне можно заюзать.
cupuyc Наверно имелось ввиду декодер, чтоб подключить к его ПО, а не требовать установки пакета кодеков. DShow сам не сдекодит без набора кодеков.
ты вот, _DEN_, прогер, а так собратьев поносишЪ код их пашет? пашет, + это, вроде, бесплатные вещи.. короче, сам понимаешь всю бесперспективность своих жалоб
UbIvItS В гробу я видел таких собратьев. 95% людей, которые говорят "я программист С++", реально - конвееры по производству г0внокода. Можете обижаться, ругаться, банить, или делать что-то еще, но я считаю, что действительно хороших специалистов очень мало. Безумно мало. И С++ тут ничем не выделяется. Сходите с одними и теми же симптомами к 10 бесплатным врачам, получите 10 разных диагнозов и способов лечения. То, что программа пашет, недостаточно для того, чтобы быть качественной, однако, к сожалению, достаточно, чтобы быть продаваемой. По этой причине энтропия г0внокода во вселенной неумолимо растет. Boost тоже бесплатный. cupuyc Пока что не знаю, может быть и устраивает. На сколько я знаю, ffdshow можно подключить как фильтр DirectShow, и юзать уже его. По перфомансу и списку возможностей ffdshow меня бы вполне устроил. Можешь дать линк на простой и внятный тутор по DirectShow? Я, конечно, погуглю, но качественный тутор бы сильно помог.
кстати, Ден, что за прога-то: а то может быть там возможно прокатить некую схему исп-ия коммерс кода?
ну, с этими речами, _DEN_, дойдём до вопроса о Вселенской несправедливости.. много людей просто зарабатывает на хлеб и понимают, что повышение качества кодинга не увеличит их ЗП + и другие причины есть, но мне флом о них строкать
Booster Если ты хотел подколоть, то тебе это не удалось. Даже наоборот - соглашаясь на многочасовое ковыряние кода, как естественную необходимость, ты показываешь себя в очень дурном тоне. После выхода Boost.Property Tree в Boost 1.41 мне потребовалось 5 минут, чтобы переписать конфигурирование программы с INI-like Boost.Program Options на XML Boost.Property Tree. Этот подход к юзабилити я считаю человеческим. А все остальное - это, простите, не для людей.
_DEN_ Какие тут подколки, парой строк там тоже не обойдёшся, если конечно не совсем примитивное делать. Видео всё-таки не совсем HelloWorld. Как-то же люди пользуются и не гундят.
Booster Да просто потому что не знают, что можно жить лучше. Я, когда г0внокодил на первом курсе, тоже не особо переживал. Ну подумаешь - сложное API. Посижу, поизучаю, времени-то навалом.