![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]()
Здравствуйте.
Основываясь на уже всем известной статье, написал свой видеоплеер. Интерфейс написал целеком на WinApi. Из статьи взял только создание Графа(Дракулы) и функцию RenderFile(), которая, как я понял, автоматически ищет и подключает нужные кодеки. Но воспроизведение иногда глючит, а некоторые файлы вообще не открываются. В связи с этим, возник логичный вопрос: Как построить граф вручную в зависимости от типа/формата исходного видео-файла? Как узнать, какие сплиттеры/кодеки нужны и как правильно подключить их к Графу(Дракуле)? И как получить список сплиттеров/декодеров, установленных в системе? Пробовал ковыряться во флагах(или как их там) CLSID_*, но не нашел, какие из них получают список видеодекодеров/сплиттеров. Дополнительный вопрос: как вытащить информацию о видео-файле? Такую, как: FourCC, битрейт аудио/видео, количество кадров в секунду (fps), и т.п. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]()
Допустим, создаю граф и добавляю в него файл-источник:
Код:
|
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 12.09.2012
Сообщений: 1,030
|
![]()
Я советую ваще использовать библеотеку Bass_DSHOW. Это библеотека написана на основе технологии DirectShow. Используется очень просто. Скачать тут:
http://surodev.com/downloads/BASS_DSHOW.zip -на 32 битку. http://surodev.com/downloads/BASS_DSHOW(x64).zip - на 64 бит.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби. ![]() |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]()
Я хочу научиться делать это без подключения каких-либо библиотек. У меня почти получается.
Вот код: Код:
А вот про Haali Splitter не уверен. Он добавляется в граф, но нет значка в трее. И flv файлы не открываются. Хотя, по-идее, если Haali и ffdshow подключены, то должны открываться. Я не прав? Может, я что-то не так подключаю? Если да, то что? Последний раз редактировалось BLACK_RAIN; 05.07.2013 в 14:25. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]()
Немного изменил код. Подключил FFDShow video decoder, FFDShow audio decoder, Haali media splitter, ac3filter.
Код:
Может кто-нибудь скажет, как правильно? |
![]() |
![]() |
![]() |
#6 | |
Участник клуба
Регистрация: 12.09.2012
Сообщений: 1,030
|
![]() Цитата:
P.S. Библеотека Bass_DSHOW.dll экономит в 4 раза больше времени, чем DirectShow.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби. ![]() |
|
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 12.09.2012
Сообщений: 1,030
|
![]()
Подкоментировал код:
Код:
Фильтр для чтения файла с диска. Фильтр для создания потока. Фильтр для разделения потока. Фильтр вывода звука. Фильтр вывода фреймов(кадров) видео.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби. ![]() |
![]() |
![]() |
![]() |
#8 | |||
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]()
Это было излишне
![]() Цитата:
Цитата:
Цитата:
Код:
P.S. Сделал вот так: Код:
![]() На данном этапе остался только один вопрос: Как вытащить FourCC аудио/видео? Последний раз редактировалось BLACK_RAIN; 06.07.2013 в 10:26. |
|||
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]()
Нихрена не понял!
если делать вот так Код:
а если так Код:
чё за троллинг? переделал. Вот так работает: Код:
И как узнать, какой аргумент передавать в RenderStream(..., ??? ,...,...,...)? Методом тыка? Последний раз редактировалось BLACK_RAIN; 06.07.2013 в 14:13. |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]()
Вот одно из решений:
Код:
Проверил на нескольких файлах. Видео и звук есть. Последний раз редактировалось BLACK_RAIN; 06.07.2013 в 16:48. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
построение графа !! | drylozav | Помощь студентам | 0 | 06.10.2010 01:23 |
Построение графа | nissa | Помощь студентам | 0 | 08.05.2010 00:57 |
Построение графа транзакций. | Alex_sim | Общие вопросы .NET | 7 | 29.04.2010 21:58 |
Построение и иследование графа | Сашf | Общие вопросы Delphi | 1 | 17.05.2009 17:35 |