|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.04.2018, 16:15 | #1 |
Пользователь
Регистрация: 22.03.2013
Сообщений: 23
|
покадровый просмотр видео в TWindowsMediaPlayer
Здравствуйте.
Помогите разобраться. лет 7-8 назад у меня был написан код просмотра видео -avi в delphi 7 под windows XP. Там было реализовано покадровое перемещение при нажатии на кнопку Button: wmp.controls.currentPosition:=wmp.c ontrols.currentPosition-0.04; Все тогда работало. Но программой долго не пользовались и сейчас решили снова к ней вернуться. Но возникли проблемы. Видео замечательно воспроизводится при нажатии на встроенную в компонент кнопку <Play>, но при попытке перемещаться по видео покадрово (нажатием на кнопку Button) наблюдается такая картина: бегунок перемещается, но кадры не меняются. Подскажите, пожалуйста, в чем может быть причина. |
26.04.2018, 17:50 | #2 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Причина в виндоусе. У них вся мультимедиа сырая и глючная.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
03.05.2018, 09:31 | #3 |
Пользователь
Регистрация: 22.03.2013
Сообщений: 23
|
|
03.05.2018, 19:59 | #4 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Варианты?
По моему самый простой способ это изобрести портальную пушку как у Рикка с Морти. FFMeg либо DirectX Позиционирование там идёт по времени время округляется к ближайшему ключевому кадру. Но не факт. Ключевой кадр раз 5-15 секунд. Но не факт. После позиционирование обязательно необходимо сбросить внутренние буферы. Факт. Думаю что в VP9 вы внутренний буфер не сбросите никак так что от него стоит отказаться в сторону GDI. Но не факт. Проигрываете видео вперёд до корректной позиции. При проигрывание назад движок может пропускать кадры. Но не факт. При проигрывании в перёд кадры выводим не на экран а в буфер. При по кадровом перемещение дергаем нужные кадры из буфера. Есть другой вариант перебрать форматы файлов, перебрать разные кодеки, разные DirectX (включая отсутствия), наличие и отсутствие драйвера видеокарты. Разные варианты ОС - тут понятно что надо на WinXP откатиться. А так же наличие любого другого софта которое может повлиять на состав кодеков и фильтров DirectX. Найти рабочий вариант и больше не вносить изменений в эту систему не устанавливать туда лишний софт. Можно даже в виртуальной машине организовать.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
04.05.2018, 10:11 | #5 |
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,834
|
Концептуально верным мне кажется плюнуть на TMediaPlayer и взять компоненты FFVCL -- обертку ffmpeg для Delphi. Они платные, но по минимуму что-то и на бесплатной версии можно сделать, думаю. Пример плеера в исходниках у них есть, по крайней мере. Исходников самих компонентов в бесплатной версии нет, но не думаю, что вам это критично.
Если вдруг совсем припечет, интерфейсную часть модулей можно вытащить из DCU-файлов утилитой dcu32int.
В разработке: воспроизводственный контур ИТ
|
21.05.2018, 14:04 | #6 |
Пользователь
Регистрация: 22.03.2013
Сообщений: 23
|
Спасибо, буду пробовать предложенные варианты
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Просмотр видео с камер и звуковое оповещение с сотового телефона | Programmer0 | Микроконтроллеры, робототехника, схемотехника, 3D принтеры | 7 | 17.10.2016 10:06 |
Просмотр видео | zdus2757 | Работа с сетью в Delphi | 7 | 25.10.2013 04:50 |
Просмотр видео на vk.com | artemavd | Работа с сетью в Delphi | 11 | 13.12.2012 16:20 |
Видеоплеер с покадровый просмотром | iukash | C# (си шарп) | 0 | 28.06.2012 18:45 |