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

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

  1. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
    не пинайте. пример тестовый и ни на что не претендует. единственное - будет примерно понятно как работать с фильтрами.
     
  2. _DEN_

    _DEN_ DEN

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

    Высплюсь и буду вкуривать. Спасибо.
     
  3. letopisec

    letopisec New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2004
    Сообщения:
    228
    _DEN_
    Простейший плеер на ffmpeg, 177 строк кода (нуда !полторы, почти две сотни!) )

    http://www.dranger.com/ffmpeg/tutorial02.c

    UbIvItS
    чукчи ходят грязными и понимают что это никак не отразится на их здоровье...
     
  4. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Если кое-кто хочет много денежек в короткие сроки, то лучше сменить сферу деятельности и не поливать грязью OpenSource.
     
  5. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.242
    Booster
    у меня лично рука не поднимается кидать камень в опенсорсеров: если есть реальные идеи, желание, умение -- никто не мешает помочь какому-нть проекту иль стартовать свой:) а рассказы о месте роста рук оставить надо достойным пиплам, кои всё могут, знают, и вообще, крутые ребята:lol:
     
  6. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.242
    поживи сначала в Тундре, а потом рассказывай как там чукчам жить:lol: + учёными доказано: излишняя чистоплотность убивает иммунитет:derisive:
     
  7. _DEN_

    _DEN_ DEN

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

    Извините, спор с вами бесполезен, т.к. мы говорим на разных языках.
     
  8. semen

    semen New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2004
    Сообщения:
    334
    Адрес:
    Russia
    _DEN_
    Насколько я помню, в ffmpeg и его производных есть неисправленная ошибка в h264, позже залью тест стрим с этой ошибкой на проверку. Поскольку видео по сети возникает вопрос: нужен ли h264-svc?
    Какая сумма приемлима, если кодек платный?
     
  9. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    _DEN_
    >Извините, спор с вами бесполезен, т.к. мы говорим на разных языках.
    Да, спор бесполезен, не мы эти библиотеки делали.
     
  10. W4FhLF

    W4FhLF New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2006
    Сообщения:
    1.050
    _DEN_, в Qt есть Phonon::VideoWidget. Щас попробовал, открывает все форматы нормально, звук проигрывается + разные настройки.

    Загрузка нескольки файлов в очередь и их последовательное проигрывание выглядит так:

    Код (Text):
    1.  void MediaPlayer::openFile()
    2.  {
    3.      QStringList fileNames = QFileDialog::getOpenFileNames(this, QString(),
    4.                                                            QDesktopServices::storageLocation(QDesktopServices::MusicLocation));
    5.      m_MediaObject.clearQueue();
    6.      if (fileNames.size() > 0) {
    7.          for (int i=1; i<fileNames.size(); i++)
    8.              m_MediaObject.enqueue(Phonon::MediaSource(fileNames[i]));
    9.      }
    10.  }
     
  11. W4FhLF

    W4FhLF New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2006
    Сообщения:
    1.050
    Проигрывание с удалённого источника:

    Код (Text):
    1.  void MediaPlayer::openUrl()
    2.  {
    3.      QSettings settings;
    4.      settings.beginGroup(QLatin1String("BrowserMainWindow"));
    5.      QString sourceURL = settings.value("location").toString();
    6.      bool ok = false;
    7.      sourceURL = QInputDialog::getText(this, tr("Open Location"), tr("Please enter a valid address here:"), QLineEdit::Normal, sourceURL, &ok);
    8.      if (ok && !sourceURL.isEmpty()) {
    9.          setWindowTitle(sourceURL.right(sourceURL.length() - sourceURL.lastIndexOf('/') - 1));
    10.          m_MediaObject.setCurrentSource(Phonon::MediaSource(QUrl::fromEncoded(sourceURL.toUtf8())));
    11.          m_MediaObject.play();
    12.          settings.setValue("location", sourceURL);
    13.      }
    14.  }
     
  12. _DEN_

    _DEN_ DEN

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

    Хыхы, как всегда, все что угодно, кроме того, что нужно. Мне нужно декодить "память -> память", а не "файл -> экран", или "url -> экран".
     
  13. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    OpenCV пробовал? там чото типа
    Код (Text):
    1. cvCreateFileCapture(...)
    2. while...
    3. {
    4. frame=cvQueryFrame(...)
    5. }
    ну и естественно обработка, сохранение..
     
  14. TermoSINteZ

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

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.561
    Адрес:
    Russia
    Freeman
    Все верно, тока добавлю еще
    Код (Text):
    1. frame = cvQueryFrame( capture );
    2. if( !frame )
    3.      break;
    4. if (img)
    5.      cvReleaseImage(&img);
    6. img = cvCreateImage(cvGetSize(frame), 8, 3);
    7. cvCopy(frame, img);
     
  15. _DEN_

    _DEN_ DEN

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

    cvCreateFileCapture - вижу. cvCreateCameraCapture - вижу. А как декодить из памяти - не вижу. А мне нужно именно из памяти. Пока что не нашел, умеет ли он это в принципе...
     
  16. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    оно опенсорц и юзает ффмпег. сталобыть есле в cvCreateFileCapture корректно заменить чтение из файла (av_open_input_file) на чтение их памяти (init_put_byte, av_open_input_stream) и перекомпилеть, то получицо то, что надо
     
  17. W4FhLF

    W4FhLF New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2006
    Сообщения:
    1.050
    Да, кстати, совсем забыл про OpenCV. Эта часть либы по-сути и есть надстройка над DShow. Советую посмотреть недавно вышедшую версию 2.0, там есть С++ интерфейс.
     
  18. _DEN_

    _DEN_ DEN

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

    Разработчиков нужно срочно накормить битыми стеклами.


    W4FhLF

    Посмотрел. Резюме: гавно.
     
  19. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Короче все больше склоняюсь к мысли, что задачу придется скинуть на фрилансера)
     
  20. W4FhLF

    W4FhLF New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2006
    Сообщения:
    1.050
    Не, OpenCV очень хорошая либа, столько алгоритмов ни одна либа в себе не объединила. Просто люди, которые её создают (студенты и выспусники НГУ, кстати) преследуют больше академический подход, т.е. это наукоёмкая библиотека, для коммерческого использования которой придётся навесить ещё один уровень абстракции.