вторник, 2 марта 2010 г.

Видеоуроки по HiAsm-2, или как сжимать видео

В HiAsm появились новые видеоуроки. Но не это толкнуло меня на написание этого поста, а то, как эти видеоуроки создавались. Дело в том, что раньше видеоуроки были в формате exe, они проигрывались uvPalyer'ом, и в них нельзя было установить позицию проигрывания и много другое. Преимуществом их был малый размер. И я стал искать кодек, который бы хорошо сжимал фильмы, чтобы выкладывать именно файлы avi, а не exe.

Раньше я никогда не сталкивался с необходимостью сжимать видеофайлы, так как большинство их у меня на разных дисках DVD и место на винчестере не занимают. Так что я даже не представлял, с чего мне начать поиск. Я пробовал разные кодеки, установленные в системе, но все давали неутешительный результат. Хотелось, чтобы конечные файлы были не больше 5 Мб, потому что это максимальный размер файла на Narod.ru.

Файлы, которые получались при сжатии DivX или XviD, были не очень большими, но всё же больше 5 Мб. А главное - их практически невозможно было упаковать в архив, потому что эти файла и так сжаты практически до предела. Казалось, что положение безвыходное, и придётся пока всё оставить так, как есть.

Но совершенно случайно я, когда наводил порядок у себя на компе, нашёл архив с видеоуроком по установке SoftIce. Архив весил 377 Кб, а распакованное из него видео - 120 Мб! Это поразило меня (особенно с учётом того, что я вёл поиски способов хорошего сжатия файлов). Я скорее посмотрел, каким кодеком сжат файл. Это был CRAM (Microsoft Video 1).

Поскольку у меня все видеоуроки были в формате exe, то открыть их в UVScreenCamera ( где они и создавались) не представляло сложности. Через UVScreenCamera я и переконвертировал их с найденным кодеком. Размер файла, конечно, меня ужаснул: 1,24 Гб! Но после сжатия архив весил довольно мало: всего 4 Мб.


С другими видеоуроками, которые сами по себе были большими, всё получилось хуже: они весили больше 5 Мб. Я пробовал ухудшать качество видео, но приемлемый размер достигался только при очень низком качестве.

Меня удивляло вот что. Когда я запаковывал видео в архив 7z, архиватор показывал степень сжатия 1% или даже 0%. Размер файла постепенно увеличивался, но не должен был достигнуть даже 5 Мб! Однако в самом конце, когда до конца архивирования оставалось 1-2%, размер архива вдруг резко увеличивался.

Аудио, подумал я. И не ошибся. Действительно, архиватор хорошо сжимает видео, запакованное кодеком CRAM, а аудио по-прежнему жмёт плохо. И я решил править аудио. Впрочем, битрейт его и так был низок: я устанавливал самые экономные настройки в UVScreenCamera. Но всё же я хотел ужать немного ещё.

С помощью VirtualDub я вынул WAV из видео и решил пересохранить его через NeroWaveEditor. Но у меня ничего не получалось: даже при самом низком качестве конечный файл всё равно был больше, чем вынутый из видео. Тогда я решил глянуть, какие же характеристики у него. В K-Lite Codec Pack есть отличная программка - mediainfo. Она показала, что…это не wav, а mp3! Несмотря на то, что расширение у файла было wav и заголовок был RIFF. Вот почему размер файла был небольшим: это был mp3 с заголовком wav! А настоящий wav так хорошо сжать никогда бы не удалось (с приемлемым качеством, разумеется).

Хотел я пересохранить файл как mp3, но опять ничего не вышло: NeroWaveEditor упорно отказывается сохранять mp3 с битрейтом ниже 32 Kbps! Пришлось мне искать в Интернете lame.exe и через командную строку приводить битрейт к 16 Kbps. Получившийся mp3-файл был в 2 раза меньше оригинала.

Но это был mp3, а VirtualDub (в котором я и собирался назначить видеофайлу новое аудио) принимает только wav. Поэтому мне пришлось скачивать ещё одну программу, которая бы прописывала в ,p3-файл заголовок wav. И только тогда VirtualDub принял у меня файл, пересохранил видео, а архиватор наконец-то сжал его до приемлемого размера.

Я надеюсь, что мой опыт будет полезен для тех, кто собирается создавать свои видеоуроки или сжимать своё видео. Только следует помнить, что размер avi не может быть больше 2 Гб, поэтому если оригинальное видео достаточно большое, то кодеком CRAM его лучше не пытаться сжать: ничего не получится. А для небольших видеоуроков - в самый раз.

Конечно же, я дам ссылки на программы, которыми я пользовался. Без любимого HiAsm тоже не обошлось: запускать lame из командной строки очень неудобно, и я сделал на HiAsm программу-надстройку над lame.exe.

lame - это и сама lame, и проект HiAsm - надстройка.

WaveMp3 - это программа для прописывания wav-заголовка файлу mp3, чтобы его можно было использовать в VirtualDub.

Напоминаю, что появились новые видеоуроки по HiAsm, а старые заменены видеофайлами вместо exe. Приятного просмотра!




Если вам нужны услуги профессионального агентства по рекламе, обратитесь в website maken.

5 комментариев:

  1. Спасибо за ваш труд. Для Lame давно использую надстройку RazorLame. А кодек H264 использовать не пробовали, я только в него в последнее время всё перевожу. В наборе кодеков klmcodec490, H264 работает в VirtualDub. С уважением tig-rrr.

    ОтветитьУдалить
  2. Попробовал H264, CRAM+7zip вне конкуренции. H264 хорош для других задач. С уважением tig-rrr.

    ОтветитьУдалить
  3. H264 я тоже пробовал. Но в архиве оно не очень хорошо сжимается. Так что для видеоуроков остаётся пока только CRAM+7zip.

    ОтветитьУдалить
  4. здравствуйте!
    Подскажите пожалуйста, Как в HiAsm запхать своё видео, то есть небольшой видео ролик, так чтоб потом после компиляции на выходе у меня был ЕХЕ формат моего видео ролика ???
    Если можно пример кода. Заранее благодарен.

    ОтветитьУдалить
  5. Этот комментарий был удален администратором блога.

    ОтветитьУдалить