2009-08-13 7 views

Odpowiedz

0

Nie znam żadnej biblioteki C#, która potrafi analizować pliki .mov. Czy możesz zadzwonić do niezarządzanego kodu w swoim środowisku? (wymaga uprawnień FullTrust)

Bardzo trudno jest samemu sparsować pliki (zrobiliśmy to raz w filtrze DirectShow), więc zalecam skorzystanie z biblioteki, aby wykonać to zadanie za Ciebie. Spójrz na przykład na MediaInfo lub ffmpeg

Pojemnik MP4 jest bardzo podobny do plików .mov, dzięki czemu można również używać narzędzi MP4 jak mp4box wyodrębnić bardzo szczegółowych informacji (np kodu czasowego start)

+0

Tak, mogę wywołać niezarządzanego kodu w moim środowisku. Spojrzałem na MediaInfo i ffmpeg i nie widzę kodu czasowego i długości attibutes. Jestem nowy w tym, czy możesz mi powiedzieć, że czegoś brakuje? Dzięki! –

+0

W wersji GUI MediaInfo można zmienić widok, aby wyświetlić więcej szczegółów. Zwykle używam widoku "Drzewo". – chris166

+0

Muszę programowo uzyskać dwa atrybuty (kod czasowy i długość początku), czy myślisz, że mogę to zrobić za pomocą MediaInfo? TIA –

0

Jeśli można wywołać kod niezarządzalny, możesz być w stanie po prostu użyć QuickTime dla Windows, aby uzyskać te informacje.

W przeciwnym razie wszystkie żądane informacje znajdują się w nagłówku filmu. Wszystkie filmy QuickTime rozpoczynają się od czasu 0 (a więc połowa problemu została rozwiązana) i kończą się w określonym czasie, który jest równy długości najdłuższego utworu. Czas jest określany za pomocą skali czasu filmu, która określa liczbę jednostek czasu na sekundę; wartość domyślna to 600 jednostek na sekundę.

Skalę czasu i czas trwania filmu można znaleźć, skanując plik pod kątem atomu nagłówka filmu, którego typ to 'mvhd', a następnie przeskakując do przodu do pól skali czasu i czasu trwania atomu, które są 16 bajtów po rozpoczęciu pole typu atomu ("mvhd", które znalazłeś). Każda z nich to 4-bajtowa liczba całkowita bez znaku.

QuickTime jest formatem kontenera, jednak nie wszystkie pliki filmowe zawierają nagłówek filmu. Niektóre są po prostu referencjami lub strumieniowymi filmami, które wskazują inną lokalizację, w której znajdują się rzeczywiste dane filmu. Nawet jeśli nagłówek filmu jest obecny, nie ma wymogu, aby faktycznie kierował danymi pliku.

Możesz przeczytać o wiele za dużo o formacie pliku QuickTime w QuickTime File Format Specification. (Format pliku MPEG-4 jest w rzeczywistości oparty na formacie pliku QuickTime, więc jeśli wiesz coś o tym, wiedza powinna się przenieść.)