Как я могу найти, какой кодек нужен AVI-файл? Предпочтителен метод, который не требует загрузки программы (например, просмотр файла в блокноте).
19
Откройте в блокноте, выполните поиск «vids» - FOURCC сразу после этого. Например, вы найдете что-то вроде:
vidsWMV1
Затем Google для 'Fourcc WMV1' в этом примере.
Это очень простой процесс, который можно выполнить с помощью средства информации о кодеках GSpot . Просто скачайте программу и установите ее. Теперь зайдите в меню «Пуск» и откройте программу.
Ищите код FourCC для видео кодека файла
Посетите веб-сайт FourCC и узнайте, кто разрабатывает этот кодек
Теперь вы можете перейти на сайт разработчиков, чтобы загрузить кодек. Вы также можете посетить раздел кодеков wmplugins.
Примечание. Не загружайте ничего, помеченного как «Пакет кодеков» или по ссылкам в верхней части веб-сайта FourCC. Это поможет вам избежать проблем при воспроизведении файлов.
VLC имеет встроенную поддержку Divx и 3ivx для всех платформ.
Источник: http://msmvps.com/blogs/chrisl/articles/11529.aspx
источник
Мне просто нужно было это, я нашел эту (очень старую) страницу и решил, что не буду загружать свой 260 МБ AVI в текстовый редактор, поэтому, возможно, мое решение поможет кому-то еще.
Если у вас Unix-подобная оболочка, у вас, вероятно, есть программа под названием 'strings', которая находит последовательности печатных символов. По умолчанию минимальная длина составляет четыре, что хорошо для этой необходимости. (Это может быть изменено в командной строке.) 'Vids' и fourcc будут последовательно в выводе (но не одна строка в моем AVI).
Вы можете передать результат в нечто простое, например, «больше» и найти его самостоятельно. Или вы можете добавить это в голову и надеяться угадать, сколько строк вам понадобится. Или вы можете быть немного более изощренным и пропустить его через sed и напечатать строку, которая соответствует желаемому шаблону. Или вы можете использовать awk, чтобы сделать то же самое. На моей оболочке cygwin bash эти параметры выглядят так:
струны foo.avi | больше
строк foo.avi | голова -10
строк foo.avi |
строки sed -n '/ vids /, + 1p' foo.avi | awk 'NR == 1, / vids / {if ($ 0 == "vids") {getline; Распечатать ; выход } } '
Недостатком третьей версии является то, что я обработал весь файл, поэтому для его завершения может потребоваться некоторое время. Я уверен, что есть способ остановить его после первого матча, но я не достаточно опытен с sed, чтобы знать (или находить) это. Версия awk явно останавливается, если условие истинно (получить следующую строку, вывести ее, выйти - тогда как команда sed имеет только первые два из них с +1 и p). В командах sed и awk / vids / - это регулярное выражение, которое нам нужно (т.е. строка поиска в ответе Криса выше). Кроме того, конструкция awk 'NR == 1, / vids /' говорит о том, чтобы применить следующий блок кода к строкам от номера 1 (первая строка ввода), где бы оно ни находило это регулярное выражение (совпадающая строка). Условие if не позволяет печатать все строки до той, которая соответствует. У меня это соответствует полной строке ($ 0), что для команды strings, должно работать нормально; в любом случае строки печатаются по одной на строку.
Обратите внимание, что найденная строка может содержать дополнительные символы (например, из моего AVI-файла он находит 'strf (' не 'strf', который равен fourcc). Если вам действительно нужно разделить его на четыре символа (например, для сценария, который требует чтобы сопоставить его со стандартным списком), вы можете передать ответ 'head -c 4' и получить только четыре куба. Вот мой окончательный ответ:
струны foo.avi | awk 'NR == 1, / vids / {if ($ 0 == "vids") {getline; Распечатать ; выход}} '| голова -c 4
FWIW, Windows Media Player перечислил кодек в моем AVI как «-» для аудио и видео, но вышеупомянутый работал как ожидалось.
Я надеюсь, что это того стоило кому-то, что я потратил время, набирая это! ;-)
Вот так, Марк
источник