motofan logo
> 

Конвертирование Видео Для Просмотра На Телефоне, С помощью свободного ПО

blackbox
сообщение 28.6.2006, 18:44


Control Freak
******

Группа: Разработчики
Сообщений: 838
Регистрация: 23.9.2005
Пользователь №: 52 431
Модель телефона: iPhone
Прошивка: 2.2.1

Рейтинг: 627.5



Представляю способ качественного конвертирования видео в MPEG4 со звуком AAC с использованием open source программ.

Скачать мануал с картинками в формате CHM для просмотра в оффлайне:
Прикрепленный файл MPEG4_AAC_coding.zip   ( 199.38 килобайт ) Кол-во скачиваний: 2275



Шаг 0.

Перед тем, как что-либо делать, убеждаемся в наличии следующего:
  1. VirtualDub (версия 1.6.14 или выше)
  2. XviD (версия 1.2 beta или выше)
  3. FAAC (версия 1.24.1 или выше)
  4. Yamb (версия 1.5 или выше)
  5. Понимание терминов: кодек, контейнер, битрейт, частота дискретизации, ресемплирование, мультиплексирование, командная строка
  6. Прямые руки
При отсутствии чего-либо из пунктов 1-4 качаем недостающий софт по приведенным ссылкам. Если не хватает пункта 5 - в Google. Если проблемы с последним пунктом - вы попали не по адресу. Если вы находитесь в танке, то рекомендую из него вылезти, прежде чем приступать к изучению данной инструкции.


Шаг 1.

1.1. Запускаем VirtualDub, открываем исходный файл.
1.2. В меню Audio выбираем Full processing mode - в этом режиме становятся доступны опции ресемплирования и изменения числа каналов (моно/стерео).
1.3. Открываем окно конвертера: Audio > Conversion...
1.4. Рекомендуемые настройки:
Прикрепленное изображение
Sampling rate: 22050Hz, High quality
Precision: No change (16-bit)
Channels: Mono
1.5. Экспортируем звуковую дорожку: File > Save WAV...
1.6. Поскольку звук нам больше не нужен, выбираем Audio > No audio.


Шаг 2.

2.1. Сжимаем WAV файл, полученный на предыдущем шаге, с помощью энкодера FAAC. Эта программа похожа на LAME и работает в командной строке.
Запускаем процесс командой
faac -w [-b bitrate] sound.wav
Прикрепленное изображение
Если не указывать битрейт, FAAC определит его автоматически. Для звука 22050Hz mono это будет примерно 48 кбит/с, однако если в исходном файле преобладает речь, а не музыка, битрейт можно спокойно понизить до 32-24 кбит/с. Имейте ввиду, что речь идет о среднем, а не постоянном битрейте, поэтому результат может немного отличаться от заданного значения.
2.2. На выходе получаем файл sound.m4a - это AAC в контейнере MP4 (тот же формат, который использует iTunes).
Не мешает прослушать полученный файл и убедиться в отсутствии явных звуковых артефактов - при наличии оных повторяем п.2.1 с бóльшим битрейтом до достижения желаемого результата.


Шаг 3.

3.1. Возвращаемся в VirtualDub и переходим к самому ответственному этапу - кодированию видео.
Вначале нужно определить разрешение исходного видео и выяснить, имеются ли у него черные бордюры по бокам. Если таковые имеются, их желательно обрезать, иначе на кодирование контрастной границы кадр-бордюр уйдет много места, что приведет к ухудшению качества.
3.2. Выбираем Filters в меню Video, нажимаем кнопку Add... и добавляем фильтр resize (internal).
3.3. Если не требуется обрезка бордюров, переходим к п.3.5; если обрезка нужна - просто нажимаем OK, временно соглашаясь с настройками по умолчанию.
3.4. В окне фильтров нажимаем Cropping...
Прикрепленное изображение
Ползунком перемотки находим подходящий кадр с достаточно светлыми краями, чтобы было легко определить края кадра. Затем обрезаем бордюры, перетаскивая границы видео окна (можно также пользоваться полями X1, X2, Y1, Y2 offset).
Жмем OK и возвращаемся в окно фильтров.
3.5. Теперь необходимо рассчитать разрешение выходного файла (а именно высоту) с целью соблюдения пропорций.
Для этого вооружаемся калькулятором (или ручкой и бумагой для любителей считать в столбик).
Предположим, исходное видео имело разрешение 320*240. В результате мы хотим получить разрешение 176*x.
Из пропорции 320 / 240 = 176 / x находим x = 176 * 240 / 320 = 132.
Если проводилась обрезка бордюров, то подставляем разрешение после обрезки.
Полученную высоту x округляем до ближайшего значения, кратного 4. Например, вместо 99 используем 100.
3.6. Нажимаем Configure... и вводим требуемые значения высоты и ширины кадра.
Прикрепленное изображение
В поле Filter mode выбираем алгоритм ресемплинга.
Nearest neighbor - самый быстрый и тупой алгоритм. Не рекомендуется, поскольку приводит к появлению "ступенек" вместо диагональных линий.
Bilinear - относительно быстрый алгоритм. Дает побочный эффект в виде небольшого "размазывания" картинки, что, как ни парадоксально, может уменьшить количество артефактов сжатия в конечном файле (мягкие контуры требуют меньшего битрейта).
Lanczos3 - самый качественный (и медленный) алгоритм.
Кнопкой Show preview можно включить предпросмотр и оценить качество ресемплинга.
3.7. Жмем OK, OK и возвращаемся в главное окно VirtualDub.


Шаг 4.

4.1. Настраиваем частоту кадров. Как известно, рекомендуемая частота кадров для E398 и E1 - 15 кадр/с.
Однако, если кодируется ролик без звука, то телефон способен воспроизводить и 30 кадров в секунду. Если аудио в формате AMR, то в некоторых случаях максимальная частота может быть до 25 кадр/с.
Если же звук в формате AAC (как предполагается в этой инструкции), то желательно ограничиться 15 кадрами.
В VirtualDub жмем Video > Frame Rate..., выбираем опцию Convert to fps и в соседнем поле вводим значение желаемой частоты кадров.
Прикрепленное изображение
Внимание, для тех кто по-прежнему сидит в танке: выбирать нужно именно опцию Convert to fps, находящуюся в группе Frame rate conversion, а не Change to __ frames per second в группе Source rate adjustment.
Если выбрать второе, то изменится частота кадров, но их количество останется прежним. Это приведет к эффекту замедленного движения и рассинхронизации аудио и видео ряда (звук будет опережать изображение).
4.2. Жмем OK.


Шаг 5.

5.1. Осталось только настроить видео кодек.
Идем в Video > Compression... и выбираем "XviD MPEG-4 Codec". В списке их будет два - нужно выбрать тот, у которого FOURCC = xvid.
Прикрепленное изображение
Для конфигурации кодека жмем кнопку Configure (логично, да?).
Прикрепленное изображение
5.2. В первый раз не мешает нажать Load Defaults, чтобы вернуть все настройки по умолчанию.
После этого устанавливаем следующие параметры:
Profile @ Level: Simple @ L1
Encoding type: Single pass
5.3. Теперь разберемся с битрейтом. XviD при кодировании в один проход (single pass) имеет два режима контроля битрейта: Target quantizer (кодирование с постоянным качеством) и Target bitrate (кодирование со средним битрейтом). Эти режимы переключаются соответствующей кнопкой.
Выбор оптимального варианта зависит от исходного видео. Target quantizer предпочтительнее, так как дает постоянное качество на протяжении всего видео, однако на особо динамичных сценах битрейт может превышать возможности телефона. В этих случаях можно увеличить значение квантизатора, установить алгоритм ресемплинга bilinear (см. п.3.6.), или использовать режим Target bitrate.
Для примера, трейлер Ледникового Периода 2 я кодировал с q=6.0.
5.4. Перед тем как закрыть настройки XviD, можно нажать Other Options... и отключить опцию Display encoding status - тогда во время кодирования не будет вылазить окно с дополнительной информацией.
Прикрепленное изображение
5.5. OK, OK, OK.
5.6. Начинаем собственно процесс кодирования.
В меню File жмем Save as AVI..., выбираем файл и ждем окончания процесса.


Шаг 6.

6.1. Если у вас хватило сил дочитать до этого места, можете радоваться - основная работа позади, осталось только мультиплексирование видео и аудио в контейнер MP4.
Эту операцию будем делать с помощью YAMB (Yet Another Mp4Box UI) - это графический интерфейс к консольной программе mp4box.
Прикрепленное изображение
6.2. Кнопкой Add добавляем в список потоков видео файл (.avi), а затем аудио (.m4a).
6.3. Нажимаем Mux и получаем готовый .mp4 файл.
6.4. Заливаем его в телефон и смотрим!



[OFF]P.S. Несмотря на кажущуюся объемность инструкции, на самом деле все ручные операции занимают всего несколько минут.

P.P.S. Этот способ пригоден как для коротких роликов, так и для полнометражных фильмов. Я успешно кодировал двухчасовые фильмы, которые проигрывались на телефоне без притормаживаний.

P.P.P.S. Загрузка процессора телефона зависит от трех величин: частоты кадров, битрейта видео и битрейта аудио. Если процессор при просмотре работает на пределе своих возможностей, то нажатия клавиш будут отрабатываться со значительным запаздыванием.

P.P.P.P.S. Archy на основе этой инструкции написал скрипт, который автоматизирует большинство перечисленных операций.[/OFF]
Прикрепленный файл MPEG4_AAC_coding.zip   ( 199.38 килобайт ) Кол-во скачиваний: 2275
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
 
Ответ в темуСоздание новой темы
Ответов
f0f
сообщение 16.8.2006, 14:28


Интересующийся
**

Группа: Пользователи
Сообщений: 60
Регистрация: 1.12.2005
Пользователь №: 60 407
Модель телефона: .

Рейтинг: 8



DMC,
у тебя наверно R372? Там нет поддержки ААС
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить

Сообщений в этой теме
blackbox   Конвертирование Видео Для Просмотра На Телефоне   28.6.2006, 18:44
AlexKooper   Хороший фак. Вот бы его приложить виде архива *.d...   7.7.2006, 11:42
blackbox   AlexKooper, Добавил архив с CHM.   7.7.2006, 14:37
DMC   Я так и не понял насчёт FAAC обьесни поподробней ,...   16.8.2006, 13:39
SOle   Такая же проблемка.. Тел не воспроизводит звук.. ...   6.9.2006, 17:36
f0f   DMC, у тебя наверно R372? Там нет поддержки ААС   16.8.2006, 14:28
DMC   R373G0E.30.48R   16.8.2006, 14:32
blackbox   DMC, Файл с расширением .aac - в контейнере MPEG2...   17.8.2006, 19:59
aligatro   blackbox, Очень хороший мануал. :) Вот передела...   17.8.2006, 22:11
nazar   blackbox, Как уже писал DMC не понятно в чём пробл...   3.9.2006, 18:25
Бес   А я когда делаю yamb'ом, у меня выскакивает ч...   7.9.2006, 16:38
Suffering   Ребята помогите када ямбом делаю выскакивает Can...   23.9.2006, 20:59
BARCA   Я конвертил так: 1) Создал папку С:\Video...   27.9.2006, 16:18
FReason   Что делать тем, у кого AAC не поддерживается?   3.10.2006, 23:45
Craft   blackbox, проверил, спокойно можно использовать Pr...   4.10.2006, 5:34
FReason   2 Craft спсибо за ответ, я уже потом догнал, что м...   4.10.2006, 21:00
Craft   FReason, при 8000 Гц дискретизации сигнала - макси...   5.10.2006, 11:21
blackbox   Craft, в составе MPT есть конвертор AMR (AMRCodec...   11.10.2006, 14:23
BARCA   А у меня трабла с долгим воспроизведением. Наприме...   16.10.2006, 15:15
Osta   тема перемещена из-за удаления раздела FAQ (Мануал...   20.11.2008, 14:51
DJ DAX   народ перезалейте плиз конвертор   22.11.2008, 13:01
kalgri   Помогите разобраться с проблемой. Конвертирую виде...   5.12.2009, 14:07
kalgri   Скажите а с каким битрейтом конвертировать видео ч...   18.12.2009, 15:10

Конвертирование Видео Для Просмотра На Телефоне, С помощью свободного ПО · Видео · Forum
 

Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 29.3.2024, 0:05

Форум живёт: