Wykrywanie kodeków

0

Witam mam pytanie czy ktos ma jakis ciekawy pomysl jak wykryc jakim kodekiem jest skompresowany film?
divx/xvid itp itd....
No i jeszcze jak sprawdzic czy w systemie jest na przyklad zainstalowany divx
wszystko oczywiscie z poziomu .neta
pozdrawiam

0

Proponowałbym WMI. Jest to tylko sposób na sprawdzenie czy w systemie są kodeki.

ManagementObjectSearcher searcher = new ManagementObjectSearcher();

SelectQuery wquery = new SelectQuery();
wquery.QueryString = "Select FileName, Version From Win32_CodecFile Where Group = Video";
searcher.Query = wquery;

foreach( ManagementObject disk in searcher.Get() )
{
  MessageBox.Show("Name: " + disk["FileName"].ToString() + "\nVersion: " + disk["Version"].ToString(), "Codec Info");
}

WMI Microsoft - http://msdn2.microsoft.com/en-us/library/aa394572.aspx

0

zaprzągłbym do pracy DirectShow, bo kodeki to po prostu filtry DirectShow. Wylistowanie kodeków video to zapewne utworzenie enumeratora odpowiedniej kategorii i przejście po nim. Jeśli chodzi o kodek użyty do kompresji filmu - prawdopodobnie albo wyciągnie to jakiś filtr DS albo można to będzie wyczytać używając odpowiednich struktur formatu AVI - chyba tam jest to zapisane.

Jeśli chodzi o DirectShow pod .NET - trzeba poszukać:

  • w DirectX SDK - może już zrobili wrappery w kodzie zarządzanym do DS
  • jeśli nie - kilka osób swego czasu pisało wrappery do DS
  • zawsze możesz też napisać wrappery sam, ale to najdłuższa droga i raczej niezalecana.

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