- "Установка ffmpeg и x264"
- "Конвертирование видео для iPhone/iPod Touch/ iPad с несколькими звуковыми дорожками и субтитрами"
Скрипт писался для личного использования, тестировался исключительно на системе Ubuntu Linux 9.10, 10.04 и 10.10. Но не вижу проблем с запуском на других *nix системах. Писалось для конвертирования серилов с поддержкой нескольких звуковых дорожек и субтитров.
Подготовка
Установка ffmpeg с поддержкой кодека x264
- Удаляем пакеты x264, libx264-dev, и ffmpeg если они были установлены:
- $ sudo apt-get purge ffmpeg x264 libx264-dev
- Если включено автообновление пакетов в системе, запрещаем обновлять пакет ffmpeg:
Если файл "/etc/apt/apt.conf.d/50unattended-upgrades" существует то прописываем в секцию "Package-Blacklist" пакет ffmpeg, если файла нет, создаем его:
- $ sudo echo -e "Unattended-Upgrade::Package-Blacklist {\n \"ffmpeg\";\n};" > /etc/apt/apt.conf.d/50unattended-upgrades
- Получаем зависимые пакеты необходимые для установки ffmpeg и x264:
- $ sudo apt-get update
- $ sudo apt-get install build-essential subversion git-core checkinstall yasm texi2html libfaac-dev libfaad-dev libmp3lame-dev libtheora-dev
- Устанавливаем x264 из исходников
- $ mkdir ~/src; cd ~/src
- $ git clone git://git.videolan.org/x264.git
- $ cd ./x264/
- $ ./configure
- $ make
- $ sudo checkinstall --fstrans=no --install=yes --pkgname=x264 --pkgversion "1:0.svn`date +%Y%m%d`-0.0ubuntu1" --default
- Устанавливаем ffmpeg с поддержкой кодека x264:
- $ cd ~/src
- $ svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
- $ cd ffmpeg/
- $ ./configure --enable-gpl --enable-nonfree --enable-pthreads --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libx264
- $ make
- $ sudo checkinstall --fstrans=no --install=yes --pkgname=ffmpeg --pkgversion "3:0.svn`date +%Y%m%d`-12ubuntu3" --default
- устанавливаем необходимые утилиты кодирования
- $ sudo apt-get install mkvtoolnix gpac atomicparsley mencoder
mkvtoolnix - для работы с mkv файлами, gpac - библиотека для работы с mpeg4, atomicparsley - утилита для прописывания тэгов видео, mencoder - сейчас не используется, в будущем будет использоваться для кодирования mkv segmented linked видео.
Скачиваем скрипт кодирования
- $ cd
- $ git clone git://github.com/derand/video2iDevice.git
Краткое описание файлов:
2iDevice.py - собственно сам скрипт конвертирования
subConverter.py - модуль конвертирования субтитров, можно использовать как скрипт конверта сабов в ttxt формат
mpeg4fixer.py - модуль исправления выходного видео (замена графического Dumpster)
mpeg4Viewer.py - скрипт показывает структуру mpeg4 файла
Настройка завершена, теперь использование.
- $ ~/video2iDevice/2iDevice.py <опции> <видео файлы> <опции>
Имя параметра | Тип | Описание |
-th | [int] | кол-во потоков, которые будет использовать ffmpeg для кодирования |
-lang | [str] | языки потоков (трехбуквенные имена) в выходном файле разделенные ":", например: "jpn:jpn:rus:eng:rus" |
-streams | [str] | использовать дорожки в файле (номера дорожек разделенные ":" первая дорожка имеет индекс 0, например "0:3:1"), по умолчанию кодируются все дорожки из видео-файла |
-format | [str] | выходной формат. Может быть "mp4", "m4v" - по умолчанию |
-TRACK_REGEX | [srt] | регулярное выражение для выделения номера эпизода из имени файла. |
-track | [int] | номер эпизода (серии) |
-tracks | [int] | кол-во эпизодов (серий) |
-stream | [int] | указывает номер используемого потока для добавленных потоков аудио или субтитров (см -afile, -sfile) |
-title | [str] | прописывает имена потоков для добавленных потоков аудио или субтитров (см -afile, -sfile) |
-b | [int] | битрейд видео (640 по умолчанию) |
-refs | [int] | кол-во ref-frames (2 по умолчанию) |
-vq | [int] | разрешение выходного видео (класс). 1 - 480x*, 2 - *x320, 3 - максимальный из первых двух (по умолчанию) |
-s | [int]x[int] | выходное разрешение, имеет более высокий приоритет над параметром -vq |
-fd | Прописать продолжительность видео равную продолжительности видео-дорожки | |
-ar | [int] | частота аудио (по умолчанию 48000) |
-ab | [int] | битрейд аудио (по умолчанию 128k) |
-afile | [str] | добавление дорожки аудио из внешнего файла. Путь задается от папки с исходным видео. В строке могут встречаться подстроки которые заменяются: "[NAME]" - заменяется на имя файла, "[2EID]" - на номер эпизода (серии). После этого параметра может идти параметр -title и -stream |
-sfile | [str] | добавление дорожки субтитров из внешнего файла. Формат такой-же как и в параметре -afile. |
-stik | [str] | Задать тип видео. Может бить 'Movie' - фильм, 'Music Video' - клип, 'TV Show' - ТВ шоу ... (подробнее: AtomicParsley --stik-list) |
-TVShowName | [str] | Задать название сериала/фильма |
-TVSeasonNum | [str] | Задать сезон (для сериалов) |
-description | [str] | Задать описание (максимально 255 символов) |
-year | [str] | Установить год |
-artwork | [str] | Установить изображение обложки. Полный путь к файлу изображения. |
Несколько примеров использования можете найти в инструкции на rutracker