Как открыть видео файл, что бы он стал видео потоком.
Объясню более подробно:У меня есть процедура (DirectShow):
VideoDevice: TSysDevEnum;
procedure TForm1.FormCreate(Sender: TObject);
var
i: integer;
begin
VideoDevice:= TSysDevEnum.Create(CLSID_VideoInputDeviceCategory);
if VideoDevice.CountFilters > 0 then
for i := 0 to VideoDevice.CountFilters - 1 do
ComboBox1.Items.Add(VideoDevice.Filters[i].FriendlyName);
end;
В ней мы формируем список девайсов в ComboBox. А потом с помощью процедуры:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
FilterGraph.ClearGraph;
FilterGraph.Active := false;
Filter1.BaseFilter.Moniker := VideoDevice.GetMoniker(ComboBox1.ItemIndex);
FilterGraph.Active := true;
with FilterGraph as ICaptureGraphBuilder2 do
RenderStream(@PIN_CATEGORY_PREVIEW, nil, Filter1 as IBaseFilter, SampleGrabber1 as IBaseFilter, VideoWindow1 as IbaseFilter);
FilterGraph.Play;
end;
Мы обращаемся к выбраному нами устройству видеозахвата.
А мне нужно, что бы мы транслировали через поток видео не с устройства видеозахвата, а с файла (*.avi). Как можно это сделать?