Форум программистов, компьютерный форум, киберфорум
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.84/25: Рейтинг темы: голосов - 25, средняя оценка - 4.84
3 / 3 / 0
Регистрация: 24.07.2013
Сообщений: 77
1

Видео плеер

11.08.2013, 21:07. Показов 4784. Ответов 20
Метки нет (Все метки)

Пишу свой видео плеер (т.к. придумал фишку, которой не встречал в других плеерах). Нужна толковая библиотека для воспроизведения видео (форматы avi mkv flv mp4 ну и другие по возможности). Стандартный компонент медиаплеер зверски глючит на большей части файлов (о чём все и без меня знают).
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.08.2013, 21:07
Ответы с готовыми решениями:

Видео плеер
Сделал почти готовую прогу, теперь туда нужно добавить видео плеер какой нибудь, как в delphi 7...

Видео - флеш плеер
Доброго времени суток. Подскажите, пожалуйста, какими способами возможно воспроизвести видео с того...

Нужен простенький видео плеер для вопроизведения AVI
Всем привет кому не жалко киньте простенький видео плеер который читает формат AVI и исходники к...

Создание видео плеера с увеличением видео во время проигрывания
Доброго времени суток, Хочу написать программу не знаю за что браться с чего начать, Дельфи ...

20
157 / 300 / 47
Регистрация: 14.08.2012
Сообщений: 2,578
11.08.2013, 22:04 2
Знаешь, я подобное реализовал ещё в прошлом году. Использовал библеотеку Bass_DSHOW. Скачать можешь во вложение, справка имеется. А ваще до тебя это сделала Microsoft. Их творение: Windows Media Player. И KMP Player.
Вложения
Тип файла: rar BASS_DSHOW.rar (5.44 Мб, 214 просмотров)
0
10218 / 6598 / 495
Регистрация: 28.12.2010
Сообщений: 21,161
Записей в блоге: 1
11.08.2013, 22:53 3
http://directshow.wonderu.com/статьи
0
3 / 3 / 0
Регистрация: 24.07.2013
Сообщений: 77
21.08.2013, 19:38  [ТС] 4
саша40 , инструкция на русском есть ?
0
157 / 300 / 47
Регистрация: 14.08.2012
Сообщений: 2,578
24.08.2013, 12:27 5
Цитата Сообщение от DeN-6666 Посмотреть сообщение
саша40 , инструкция на русском есть ?
xVideo.chm- справка по библеотеке. Переводи переводчиком.
0
3 / 3 / 0
Регистрация: 24.07.2013
Сообщений: 77
26.08.2013, 07:41  [ТС] 6
И на том спасибо

Добавлено через 21 минуту
Цитата Сообщение от raxp Посмотреть сообщение
http://directshow.wonderu.com/статьи
Почему когда в uses пишешь directshow то дэлфи ругается ?
0
10218 / 6598 / 495
Регистрация: 28.12.2010
Сообщений: 21,161
Записей в блоге: 1
26.08.2013, 08:31 7
...мало написать, надо чтобы эти модули у вас присутствовали в каталоге проекта или были установлены с одним из пакетов, скажем DSPack, и к ним прописаны были пути.
0
3 / 3 / 0
Регистрация: 24.07.2013
Сообщений: 77
29.08.2013, 12:47  [ТС] 8
Есть картинка, но звук не идёт


Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, activex, directshow9, ExtCtrls, StdCtrls;
 
type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    OpenDialog1: TOpenDialog;
    gb1: TGroupBox;
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Panel1: TPanel;
    procedure FormCreate(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure Image1Click(Sender: TObject);
    procedure Image2Click(Sender: TObject);
    procedure Image3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
    hr: HRESULT;
  evCode: Integer;
 
pGraphBuilder : IGraphBuilder = nil;
pCaptureGraphBuilder2: ICaptureGraphBuilder2 = nil;
pSourceFile : IBaseFilter = nil;
pMediaControl : IMediaControl = nil;
pMediaEvent : IMediaEvent = nil;
pVideoWindow : IVideoWindow = nil;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
CoCreateInstance(CLSID_FilterGraph, nil, CLSCTX_INPROC, IID_IGraphBuilder,pGraphBuilder);
pGraphBuilder.QueryInterface(IID_IMediaControl, pMediaControl);
pGraphBuilder.QueryInterface(IID_IMediaEvent, pMediaEvent);
end;
 
procedure TForm1.N2Click(Sender: TObject);
begin
if opendialog1.execute then
begin
CoCreateInstance(CLSID_FilterGraph, nil, CLSCTX_INPROC, IID_IGraphBuilder,  pGraphBuilder);
CoCreateInstance(CLSID_CaptureGraphBuilder2, nil, CLSCTX_INPROC,  IID_ICaptureGraphBuilder2, pCaptureGraphBuilder2);
pCaptureGraphBuilder2.SetFiltergraph(pGraphBuilder);
pGraphBuilder.AddSourceFilter(StringToOleStr(OpenDialog1.FileName), '',  pSourceFile);
pGraphBuilder.QueryInterface(IID_IMediaControl, pMediaControl);
pGraphBuilder.QueryInterface(IID_IMediaEvent, pMediaEvent);
pCaptureGraphBuilder2.RenderStream(nil, nil, pSourceFile as IBaseFilter, nil, nil);
hr := pGraphBuilder.QueryInterface(IID_IVideoWindow, pVideoWindow);
 
pVideoWindow.put_Owner(Panel1.Handle);
pVideoWindow.put_WindowStyle(WS_CHILD);
pVideoWindow.put_Left(0);
pVideoWindow.put_Width(Panel1.Width);
pVideoWindow.put_Top(0);
pVideoWindow.put_Height(Panel1.Height);
 
 
pMediaEvent.WaitForCompletion(INFINITE, evCode);
 
 
pMediaControl.Run;
end;
end;
 
procedure TForm1.Image1Click(Sender: TObject);
begin
pMediaControl.Run;
end;
 
procedure TForm1.Image2Click(Sender: TObject);
begin
pMediaControl.pause;
end;
 
procedure TForm1.Image3Click(Sender: TObject);
begin
pMediaControl.stop;
end;
 
end.
0
10218 / 6598 / 495
Регистрация: 28.12.2010
Сообщений: 21,161
Записей в блоге: 1
29.08.2013, 14:34 9
...а кто будет подключать в граф интерфейс IID_IBasicAudio?
0
157 / 300 / 47
Регистрация: 14.08.2012
Сообщений: 2,578
29.08.2013, 17:57 10
Цитата Сообщение от raxp Посмотреть сообщение
...а кто будет подключать в граф интерфейс IID_IBasicAudio?
его ещё надо иницилизировать.
0
3 / 3 / 0
Регистрация: 24.07.2013
Сообщений: 77
01.09.2013, 19:27  [ТС] 11
Как конкретно это сделать ? (кусочек кода)

p.s. не злитесь я только начал изучать этот вопрос
0
10218 / 6598 / 495
Регистрация: 28.12.2010
Сообщений: 21,161
Записей в блоге: 1
01.09.2013, 21:59 12
Абсолютно также, как вы инициализируете все остальные интерфейсы при построении графа.

только начал изучать этот вопрос
DirectShow по-русски
0
3 / 3 / 0
Регистрация: 24.07.2013
Сообщений: 77
04.09.2013, 08:48  [ТС] 13
Короче говоря я забил на DirectShow и стал юзать bass_dshow.dll библиотеку.

1)Немогу разобраться с отображением позиции файла (какая часть файла проигрывается). Попробывал через trackbar и таймер 1 сек. В результате получается зависание звука и картинки через каждую секунду, хотя трэкбар смещается по позиции. Как я понял позиция в библиотеке отображается в типом real , а трэкбар работает
с типом integer.

2) как отобразить позицию файла в часах\минутах\секундах ?
0
10218 / 6598 / 495
Регистрация: 28.12.2010
Сообщений: 21,161
Записей в блоге: 1
04.09.2013, 08:57 14
Короче говоря я забил на DirectShow и стал юзать bass_dshow.dll библиотеку.
1- совершенно зря, ибо bass_dshow - обертка над все тем же DirectShow.
2- так или иначе, вам придется изучить HELP по использованию того или иного. Вы отказались изучить материал по ссылке выше, теперь вам придется прочитать справочную систему по использованию BASS, она есть на офсайте и прилагается к SDK, там же есть и готовые примеры использования, в том числе и ваш вопрос.
0
3 / 3 / 0
Регистрация: 24.07.2013
Сообщений: 77
04.09.2013, 11:41  [ТС] 15
Цитата Сообщение от raxp Посмотреть сообщение
обертка над все тем же DirectShow
я знаю
Цитата Сообщение от raxp Посмотреть сообщение
Вы отказались изучить материал по ссылке выше
Я изучил, но с библиотекой оказалось проще работать.


Разобрался где ошибка была. В событие TrackBar1Change я прописал изменение позиции файла. В результа работы таймера он меняет позицию файла ежесекундно из-за чего ЗВЕРСКИ виснет. В связи с этим след. вопрос:
На какое событие изменить TrackBar1Change ?
0
10218 / 6598 / 495
Регистрация: 28.12.2010
Сообщений: 21,161
Записей в блоге: 1
04.09.2013, 14:04 16
...а зачем вы по таймеру меняете позицию файла?
0
3 / 3 / 0
Регистрация: 24.07.2013
Сообщений: 77
05.09.2013, 08:12  [ТС] 17
выше неточно выразился. Я хочу чтобы трекбар отображал позицию файла, а не менял её. Менять её он должен при перемещинии его мышью.
0
10218 / 6598 / 495
Регистрация: 28.12.2010
Сообщений: 21,161
Записей в блоге: 1
05.09.2013, 10:02 18
Тогда вам следует отслеживать события мыши на трекбаре и изменение позиции трекбара при отсутствии перемещения его пользователем не должно влиять не позицию плея.
0
157 / 300 / 47
Регистрация: 14.08.2012
Сообщений: 2,578
06.09.2013, 12:17 19
для возможности перемотки советую использовать ScrollBar и его событие onScroll.
0
Заблокирован
19.09.2013, 16:10 20
А зачем вообще Bass
Если неохота связываться с набором Direct , существует KM Player.
У него есть свой SDK и для Delphi тоже. Расширяйте функции. Не задумывайтесь о кодеках. Меняйте скины. Есть поддержка аппаратного ускорения и особо тонкая обработка любых ньюансов картинки и звука с применеием CUDA или Stream. Возможность использования всех плагинов WinAmp
Что вам ещё надо?
А Direct Show и Direct Sound более целесообразен как элемент всяких движков. Игровых, браузерных и так далее. Ну и Bass тоже, хотя это лишняя прилипала для лентяев.
Так что есть два пути. Путь лентяя и путь профессионала.
Во втором случае надо читать и читать. Литературы сейчас - море. И на русском тоже.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.09.2013, 16:10

Плеер
Здравствуйте! у меня такая проблема! Вот такой код: L,R,L1,R1:Integer; level:Dword; begin ...

Плеер
почему черный экран?видео не воспроизводит

Плеер
Доброго времени суток! есть вопрос... для своей проги надо сделать что - то наподобие плеера......

Онлайн Плеер
Помогите пожалуйста сделать онлайн плеер чтобы можно было смотреть фильмы,клипы,видео онлайн


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.