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
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.