Конференция "Media" » Открыть видео файл, поток [D7, WinXP]
 
  • zSvetik © (23.01.10 19:10) [0]
    Как открыть видео файл, что бы он стал видео потоком.

    Объясню более подробно:
    У меня есть процедура (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). Как можно это сделать?
 
Конференция "Media" » Открыть видео файл, поток [D7, WinXP]
Есть новые Нет новых   [120124   +101][b:0][p:0.001]