Jak odczytać informacje o filmie?

Odpowiedz Nowy wątek
2006-07-21 07:21
Mike L
0

Pytanie z tematu. A potrzebne mi informacje to: długość filmu, rozdzielczość, FPS, rozmiar pliku w MB z dokładnością do 1 miejsca po przecinku. Piszę program w Delphi 7, który by te informacje odczytywał z filmów (.avi, .mpg, itp.). Znalazłem DLL'a MediaInfo.dll (http://mediainfo.sourceforge.net) jednak na stronie tego projektu nic nie pisze o nazwach procedur, które ta biblioteka "eksportuje" na zewnątrz. Nie wiem więc jak jej użyć. Proszę o pomoc. Nie musicie pisać jak obsłużyć tą bibliotekę, jeśli znacie inny sposób jak wyciągnąć te informacje z filmu; wtedy napiszcie ten inny sposób. Będę bardzo wdzięczny.

Pozostało 580 znaków

2006-07-21 10:43
Opi
0

Rozmiar po przecinku (np.: 10,2MB)

var
 SR: TSearchRec;
begin
 FindFirst('C:\plik.exe', faAnyFile, SR);
 ShowMessage('Rozmiar: ' + FloatToStrf(SR.Size / 1024000,ffFixed,100,1 {Zmień na 2 jeśli dwa miejsca po przecinku}) + ' MB');
 FindClose(SR);
end;

Pozostałe: trochę jest tu

Pozostało 580 znaków

2006-07-21 13:35
ChrisKK
0

1MB=10241024 B =1048576B a nie 1024000=10241000.

Pozostało 580 znaków

2006-07-22 05:54
Mike L
0

Rzeczywiście, Opi się pomylił przy obliczaniu rozmiaru pliku.
No cóż, chłopaki, co do wyciągania informacji z filmów to już sobie poradziłem. Bez MediaInfo.dll i innych zewnętrznych bibliotek. Poszukałem odpowiednią kontrolkę ActiveX. Plik EXE urosnął od tego o ok. 50 kb ale wszystko jest w jednym pliku (zresztą z zewnętrznym dll'em to by było więcej niż dodatkowe 50 kb). Nie będę tu już nikogo męczył :) Ale dzięki za to co napisaliście. Pozdrawiam.

Pozostało 580 znaków

2006-07-22 10:56
0

Weź pod uwagę, że kontrolka ActiveX musi być zarejestrowana w komputerze, na którym chcesz używać tego programu - przy jego dystrybucji musisz dostarczyć użytkownikowi plik z tą kontrolką i ją zarejestrować.


Mam nadzieję, że pomogłem :)

Łukasz Brodny

Pozostało 580 znaków

2006-07-23 00:46
Mike L
0

brodny - mam do ciebie może banalne pytanie: jak zarejestrować kontrolkę ActiveX w systemie? Kontrolka, której użyłem została u mnie zainstalowana w systemie wraz z programem VIDEOzilla i nosi nazwę NCTVideoPlayer 1.0. Albo bez instalacji dodatkowych kontrolek: jak przy użyciu kontrolki TMediaPlayer odczytać z filmu jego FPS i długość [GG:MM:SS]? Bo jeśli chodzi o rozdzielczość to Opi już przedstawił na to sposób.

Pozostało 580 znaków

2006-07-23 21:15
Mike L
0

Dobra, jużsobie poradziłem :) Najpierw otwieram plik z filmem w MediaPlayerze, później ustawiam TimeFormat na tfMilliseconds. Z tego odcztuję czas filmu (żeby uzyskać go w sekundach mnożę wartość przez 1000). Później zamieniam TimeFormat na tsFrames i odczytuję długość filmu w klatkach. Żeby uzyskać FPS filmu dzielę długość filmu przez ilość klatek (albo odwrotnie, teraz już nie pamiętam:)). No a zamiana długośći filmu z sekund na format GG:MM:SS też nie jest trudna. Co do pozostałych rzeczy, które potrzebowałem to opisał je Opi.

Pozdrawiam

Pozostało 580 znaków

2006-07-23 22:09
0
Mike L napisał(a)

żeby uzyskać go w sekundach mnożę wartość przez 1000

Chyba dzielisz? :>


Mam nadzieję, że pomogłem :)

Łukasz Brodny

Pozostało 580 znaków

2006-07-24 12:35
Mike L
0

Tak... dzielę.

No ale mam kolejny problem. Do pobierania informacji o filmie używam standardowego komponentu TMediaPlayer a jak testowałem program u kolego to przy próbie otwarcia pliku z filmem przez mój program wyskakuje błąd "File acces denited." Może znowu zadaję banalne pytanie, ale co robię nie tak? Dlaczego mój program nie może uzyskać dostępu do pliku? Pomocy! Gdyby ta informacja była pomocna to kolega nie ma zainstalowanego delphi.

Pozostało 580 znaków

2006-07-24 12:38
Mike L
0

Dodam jeszcze, że otwieranego pliku nie używa żaden inny program (przynajmniej nie jest on otwarty w żadnym odtwarzaczu i w odtwarzaczu otwiera się bez problemów).

Pozostało 580 znaków

2006-07-24 14:12
Mike L
0

A teraz zauważyłem, że niektóre filmy się otwierają. Te co się nie otwierają mają rozszerzenie .avi i jest w nich użyty kodek XviD lub DivX. Ale niektóre filmy z tymi kodekami się otwierają. To nie wina kodeków. Dziwna sprawa...

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0