Jak znaleźć kodek, którego potrzebuje plik AVI? Preferowana byłaby metoda, która nie wymaga pobierania programu (na przykład przeglądanie pliku w notatniku).
19
Otwórz w notatniku i wyszukaj „vids” - FOURCC zaraz po tym. Np. Znajdziesz coś takiego:
vidsWMV1
Następnie w tym przykładzie przejdź do wyszukiwarki „fourcc WMV1”.
Jest to bardzo prosty proces, który można wykonać za pomocą narzędzia do kodowania informacji GSpot . Wystarczy pobrać program i zainstalować go. Teraz przejdź do menu Start i otwórz program.
Poszukaj kodu FourCC dla kodeku wideo tego pliku
Odwiedź stronę FourCC i dowiedz się, kto opracowuje ten kodek
Możesz teraz przejść do tej witryny programistów, aby pobrać kodek. Możesz również odwiedzić sekcję Kodek wmmplugins.
Uwaga: Nie pobieraj niczego oznaczonego jako „Pakiet kodeków” ani z linków na górze strony FourCC. Pomoże to uniknąć kłopotów podczas odtwarzania plików.
VLC ma wbudowane wsparcie dla Divx i 3ivx dla wszystkich platform.
Źródło: http://msmvps.com/blogs/chrisl/articles/11529.aspx
źródło
Właśnie tego potrzebowałem, znalazłem tę (bardzo starą) stronę i zdecydowałem, że wolę nie ładować 260 MB AVI do edytora tekstu, więc może moje rozwiązanie pomoże komuś innemu.
Jeśli masz powłokę podobną do Uniksa, prawdopodobnie masz program o nazwie „łańcuchy”, który znajduje sekwencje znaków do wydrukowania. Domyślnie minimalna długość to cztery, co jest wystarczające do tej potrzeby. (Można to zmienić w wierszu poleceń.) „Vids” i fourcc będą kolejne w danych wyjściowych (ale nie jeden ciąg w moim AVI).
Możesz podzielić wynik na coś prostego, na przykład „więcej” i sam go znaleźć. Możesz też wpiąć go w głowę i mieć nadzieję, że zgadniesz, ile linii potrzebujesz. Lub możesz być nieco bardziej wyrafinowany i przepuścić go przez sed i wydrukować linię pasującą do pożądanego wzoru. Lub możesz użyć awk, aby zrobić to samo. W mojej powłoce cygwin bash te opcje wyglądają następująco:
strings foo.avi | więcej
ciągów foo.avi | head -10
struny foo.avi | sed -n '/ vids /, + 1p'
strings foo.avi | awk 'NR == 1, / vids / {if (0 $ == "vids") {getline; wydrukować; wyjście } } '
Wadą trzeciej wersji jest to, że przetworzyłem cały plik, więc jego ukończenie może trochę potrwać. Jestem pewien, że jest sposób, aby zatrzymać to po pierwszym meczu, ale nie jestem wystarczająco ekspertem w sed, aby to wiedzieć (lub znaleźć). Wersja awk wyraźnie zatrzymuje się, jeśli warunek jest spełniony (pobierz następny wiersz, wypisz to, wyjdź - podczas gdy komenda sed ma tylko dwie pierwsze z literami +1 i p). Zarówno w komendach sed, jak i awk, / vids / jest potrzebnym wyrażeniem regularnym (tj. Ciąg wyszukiwania w odpowiedzi Chrisa powyżej). Również konstrukcja awk „NR == 1, / vids /” mówi o zastosowaniu następującego bloku kodu do linii od numeru 1 (pierwsza linia wejściowa) do każdego miejsca, w którym znajdzie to wyrażenie regularne (pasujący ciąg). Warunek if uniemożliwia wydrukowanie wszystkich wierszy do pasującego. Mam go dopasować do pełnej linii ($ 0), która dla polecenia string powinna działać poprawnie; i tak ciągi są drukowane po jednym w wierszu.
Zauważ, że znaleziony ciąg znaków może również zawierać dodatkowe znaki (np. Z mojego pliku AVI znajduje „strf” („nie” strf ”, co oznacza fourcc). Jeśli naprawdę potrzebujesz go pokroić na cztery znaki (np. Dla skryptu, który potrzebuje aby dopasować ją do standardowej listy), możesz przesłać odpowiedź do 'head -c 4' i uzyskać tylko fourcc. Oto moja ostatnia odpowiedź:
strings foo.avi | awk 'NR == 1, / vids / {if (0 $ == "vids") {getline; wydrukować; exit}} '| głowa -c 4
FWIW, Windows Media Player wymienił kodek w moim AVI jako „-” zarówno dla audio, jak i wideo, ale powyższe działało zgodnie z oczekiwaniami.
Mam nadzieję, że warto było komuś, że spędziłem czas na pisaniu tego! ;-)
Uff, Mark
źródło