3gp - стандартный контейнер видео для современных мобильных телефонов.
Для справки: контейнер - это файл-хранилище, в котором может быть несколько разных типов данных. Например, avi - это контейнер, в котором может храниться один файл видео и несколько дорожек аудио. mkv (матроска видео) - более навороченный контейнер, в котором и видео, и аудиодорожек может быть несколько. Плюс он может содержать файлы с субтитрами.
Контейнер 3gp использует кодек H.263 (h263) для сжатия видео и AMR для сжатия аудио.
В убунте есть две проблемы:
- файлы в формате 3gp проигрываются без звука
- в комплектации «из коробки» нельзя перекодировать видео в формат 3gp для проигрывания его на мобильном
Кодирование видеофайлов в 3gp
Подключаем репозиторий debian-multimedia, ставим ключ от него и обновляем пакет ffmpeg:
sudo -s
echo deb http://www.debian-multimedia.org stable main > /etc/apt/sources.list.d/codecs.list
apt-get update
apt-get install debian-multimedia-keyring
apt-get update
apt-get install ffmpeg
exit
Теперь для того, чтобы перекодировать любой файл для проигрывания его на телефоне, достаточно сделать в консоли:
ffmpeg -i $file_in -b 200Kb -r 15 -s qcif -ac 1 -ab 12.2k -ar 8000 $file_out
Здесь:
$file_in | Имя входящего файла видео —что конвертируем |
$file_out | Имя выходящего файла видео — куда сохраняем результат |
-b 200Kb | Задаём поток данных для видео в 200 килобит в секунду |
-r 15 | Частота кадров — 15 штук в секунду |
-s qcif | Размер кадра, должен соответствовать экрану телефона. qcif(176x144) / cif(352x288) |
-ac 1 | Звук - одноканальный |
-ab 12.2k | Поток данных для звука — 12.2 килобита в секунду |
-ar 8000 | Частота звука — 8 килогерц |
Мы ленивые, поэтому пишем сверхпростой скрипт:
all23gp.sh
#!/bin/bash
ffmpeg -i "$1" -b 200Kb -r 15 -s qcif -ac 1 -ab 12.2k -ar 8000 "$1.3gp"
Ставим права на выполнение
chmod +x ./all23gp.sh
и помещаем куда-нибудь, откуда удобно будет запускать. При запуске передаём параметром имя файла для конвертации.
Проигрывание файлов 3gp
К сожалению, от всех описаных манипуляций звук в плеере не появится. Тем не менее, посмотреть 3gp-файл со звуком можно набрав в консоли:
ffplay /путь/к/файлу.3gp
Комментарии