Форум: "Media";
Текущий архив: 2003.02.10;
Скачать: [xml.tar.bz2];
ВнизУзнать информацию о видео-файле Найти похожие ветки
← →
NailMan (2002-09-26 05:06) [0]Трабла.
Использую для воспроизведения DirectShow.
Интерфейс IBasicVideo возвращает например битрэйт видео в непонятных единицах(хотя написано бит/сек). Если разделить енто число на 1000 что-то около 7 Мбит/сек получается, а битрэйт по всем показателем не превышает 960 кбит.
Что тогда выводит этот интерфейс вместо битрэйта?
И еще момоент.
Пытаюсь определить инфу о файле через интерфейс IMediaDet, он вообще нифига о потоках не выводит кроме типа потока.
Как мне узнать хотябы битрэйт и на худой конец какой фильтр используется в медиапотоке(видео, аудио)?
Осталась последняя черта в моем медиаплеере и вот, блин, камешки под ноги ползут...
И еще вопросец: А каким макором можно вызвать настройки фильтра, как например в Mplayer2 вызываются настройки DivX и т.п.?
← →
SCHMaster (2002-10-06 03:18) [1]Лови ...
unit Timeconvert;
interface
uses
Windows, Messages, SysUtils, Classes, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, ComCtrls;
function HoursConv(Pos:Int64):Integer;
function MinConv(Pos:Int64):Integer;
function SecConv(Pos:Int64):Integer;
implementation
function HoursConv(Pos:Int64):Integer;
begin
Pos:=Pos div 10000000;
if Pos < 3600 then
begin
result:=0;
end
else result:=Pos div 3600;
end;
function SecConv(Pos:Int64):Integer;
var
H, M, S:Integer;
begin
H:=HoursConv(Pos);
M:=MinConv(Pos);
Pos:=Pos div 10000000;
if H = 0 then S:=Pos-M*60
else S:=(Pos-H*3600-M*60);
result:=S;
end;
function MinConv(Pos:Int64):Integer;
var
H, M, S, Tmp:Integer;
begin
H:=HoursConv(Pos);
Pos:=Pos div 10000000;
if H = 0 then M:=Pos div 60
else
M:=(Pos-H*3600) div 60;
result:=M;
end;
end.
← →
SCHMaster (2002-10-12 04:07) [2]Это позиция просмотра, на остальное, если еще нужно, вышлю пример.
← →
SCHMaster (2002-10-28 02:53) [3]Кстати, вчерась качнул DirectShow SDK 2.0, дык там все немного проще и намного понятнее + примеры + HELP
← →
pasha676 (2002-10-28 09:05) [4]Люди, а как насчет вызова окна настроек драйвера? Как это делать?
← →
SCHMaster (2002-10-29 03:03) [5]> pasha676
Если ты имеешь ввиду использование DirectShow 1.05 RC1
то
procedure TForm1.FilterCall;
var
BaseFilter: IBaseFilter;
begin
FilterGraph1.FilterGraph2.FindFilterByName(StringToOleStr("Твой драйвер, точнее фильтр"), BaseFilter);
ShowFilterPropertyPage(Form1,BaseFilter);
BaseFilter := nil;
end;
Но предварительно нужно создат список этих фильтров, добавляя их, к примеру, хотябы в меню:
procedure TForm1.GetFilterList(graph: IFilterGraph);
var
EnumFilters: IEnumFilters;
BaseFilter: IBaseFilter;
FilterInfo: TFilterInfo;
VidSet:TMenuItem;
T:Integer;
begin
VideoSub.Enabled:=True;
VideoSub.Clear;
T:=0;
graph.EnumFilters(EnumFilters);
While (EnumFilters.Next(1, BaseFilter, nil)=S_OK) do
begin
BaseFilter.QueryFilterInfo(FilterInfo);
VidSet:=TMenuItem.Create(self);
with VidSet do begin
if UpperCase(ExtractFileExt(FilterInfo.achName)) <> ".AVI" //это чтоб в список твой видеофайл не входил
then
begin
Caption:=FilterInfo.achName;
VidSet.Tag:=T;
T:=T+1;
OnClick:=MnuCheck;
VideoSub.Add(VidSet);// а это то меню, куда ты добавляешь
end;
end;
end;
end;
← →
pasha676 (2002-10-29 09:08) [6]Пасибо. Разберусь. Похоже
FilterGraph1.FilterGraph2.FindFilterByName(StringToOleStr("Твой драйвер, точнее фильтр"), BaseFilter);
ShowFilterPropertyPage(Form1,BaseFilter);
BaseFilter := nil;
Это похоже то что надо.
← →
pasha676 (2002-10-29 12:46) [7]Странное дело. Таким способом некоторые кодеки настраиваютьс (интел индео, например), а некоторые не выдают на гора окно настроек(DivX, например). Почему интересно?
← →
SCHMaster (2002-10-30 03:36) [8]Дык таким способом вызываются только настройки тех кодеков и фильтров, которые в данный момент использует твоя программа, а она использует только кодеки связанные с твоим AVI (или MPEG, MP3 и т.д.)файлом. А Indeo та получил, потому что твой файл закодирован в Indeo (посмотри его свойства и убедись).
Сходи на http://www.progdigy.com/
Там DirectShow 2.0 есть, и DirectShow 1.05 RC1. Причем с примерами.
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2003.02.10;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c