Еще раз о видео-декодерах

Тема в разделе "WASM.HEAP", создана пользователем _DEN_, 3 дек 2009.

  1. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Для программы нужен декодер потокового видео. Можно платный.

    Главные требования:

    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, но что-то мне подсказывает...
     
  2. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
    долго читал и вдумывался - чуть не обдумался. не понимаю чем не устраивает свой direct show фильтр? или, например, ISampleGrabber? вообще, закинь в свою прогу COM dll-ку, при запуске просматривай установленные фильтры. если нет mpeg-4 декодера - регистрируй свою либу. вот, в принципе, и всё шаманство.
     
  3. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
    _DEN_ или тебе нужны именно сорцы декодера?
     
  4. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    cupuyc

    Сорцы не нужны. Нужна возможность в моей проге декодить видео. Как это будет сделано - пох. Главное - декодинг с поддержкой форматов и хорошим перфомансом.
     
  5. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
    ну вот... а чем direct show не устраивает? конечно, довольно корявая платформа, имхо. не будет никакой кросс-платформенности. если только под вынь, то вполне можно заюзать.
     
  6. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.561
    Адрес:
    Russia
    cupuyc
    Наверно имелось ввиду декодер, чтоб подключить к его ПО, а не требовать установки пакета кодеков. DShow сам не сдекодит без набора кодеков.
     
  7. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.242
    ты вот, _DEN_, прогер, а так собратьев поносишЪ:) код их пашет? пашет, + это, вроде, бесплатные вещи.. короче, сам понимаешь всю бесперспективность своих жалоб:lol:
     
  8. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Это по ходу был тонкий намёк юзать то что есть и не шуметь, или писать свой декодер :)
     
  9. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    UbIvItS

    В гробу я видел таких собратьев. 95% людей, которые говорят "я программист С++", реально - конвееры по производству г0внокода. Можете обижаться, ругаться, банить, или делать что-то еще, но я считаю, что действительно хороших специалистов очень мало. Безумно мало. И С++ тут ничем не выделяется. Сходите с одними и теми же симптомами к 10 бесплатным врачам, получите 10 разных диагнозов и способов лечения. То, что программа пашет, недостаточно для того, чтобы быть качественной, однако, к сожалению, достаточно, чтобы быть продаваемой. По этой причине энтропия г0внокода во вселенной неумолимо растет.

    Boost тоже бесплатный.


    cupuyc

    Пока что не знаю, может быть и устраивает. На сколько я знаю, ffdshow можно подключить как фильтр DirectShow, и юзать уже его. По перфомансу и списку возможностей ffdshow меня бы вполне устроил. Можешь дать линк на простой и внятный тутор по DirectShow? Я, конечно, погуглю, но качественный тутор бы сильно помог.
     
  10. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Почему ТС-а не устраивает DShow, я так и не понял. Тем более что ffdshow сделан как кодек к DShow.
     
  11. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.242
    кстати, Ден, что за прога-то: а то может быть там возможно прокатить некую схему исп-ия коммерс кода?
     
  12. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    UbIvItS

    Если не вдаваться в детали и use case-ы, то считай что это видео/аудио плеер RSTP-потока.
     
  13. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.242
    ну, с этими речами, _DEN_, дойдём до вопроса о Вселенской несправедливости..:) много людей просто зарабатывает на хлеб и понимают, что повышение качества кодинга не увеличит их ЗП:) + и другие причины есть, но мне флом о них строкать:lol:
     
  14. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.242
    _DEN_
    а какова цель написания софтины?
     
  15. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Документация DShow от производителя.
    DX9_Help
     
  16. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Наверно снова напишет, что много писать.
     
  17. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Booster

    Если ты хотел подколоть, то тебе это не удалось. Даже наоборот - соглашаясь на многочасовое ковыряние кода, как естественную необходимость, ты показываешь себя в очень дурном тоне. После выхода Boost.Property Tree в Boost 1.41 мне потребовалось 5 минут, чтобы переписать конфигурирование программы с INI-like Boost.Program Options на XML Boost.Property Tree. Этот подход к юзабилити я считаю человеческим. А все остальное - это, простите, не для людей.
     
  18. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    _DEN_
    Какие тут подколки, парой строк там тоже не обойдёшся, если конечно не совсем примитивное делать. Видео всё-таки не совсем HelloWorld. Как-то же люди пользуются и не гундят.
     
  19. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Booster

    Да просто потому что не знают, что можно жить лучше. Я, когда г0внокодил на первом курсе, тоже не особо переживал. Ну подумаешь - сложное API. Посижу, поизучаю, времени-то навалом.
     
  20. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.242
    _DEN_
    хммм... ты шутишь?:)