Последнее время часто попадается видео в формате mkv вместо привычного avi. В mkv файлы зашивается несколько звуковых дорожек, несколько дорожек субтитров. Если просто смотришь видео, то все ок. А вот если видео редактируешь, то иногда бывает очень неудобно разбираться со всеми этими дорожками и вариантами субтитров. К тому же лишние дорожки увеличивают размер файлов (например одна звуковая дорожка увеличивает размер файла на 30-100 Мб). К тому же под моим любимым mplayer-ом иногда не удавалось активировать нужную дорожку/субтитры. Стал искать способы работы с mkv-файлами (точнее выдирания субтитров, вырезания "лишних" звуковых дорожек) и вот к чему пришел.
После некоторых поисков в google на глаза попался пакет mkvtoolnix. Есть версии и для Windows и для Debian. Работать можно как из консоли, так и через графический интерфейс.
Ставим пакеты mkvtoolnix и mkvtoolnix-gui.
Сайт разработчиков:
http://www.bunkus.org/videotools/mkvtoolnix/Репозиторий Debian (надеюсь что тот, с которого я качал ;) )
deb http://www.debian-multimedia.org etch main
Работаем через консоль.
Посмотреть информацию о файле в консоли можно с помощью команды
mkvmerge -i filename.mkvОна покажет список дорожек в файле, их номера + некоторые комментарии о типе каждой дорожки. Теперь, зная номера дорожек, можно извлечь к примеру субтитры с помощью команды
mkvextract tracks filename.mkv -c CP1251 4:filename-subtitles.srtЗдесь:
"filename.mkv" - имя исходного файла
"-c CP1251" - указание в какой кодировке сохранять субтитры (в данном случае в виндовой)
"4:filename-subtitles.srt" - это номер потока: "4", и название выходного файла для этого потока: "filename-subtitls.srt"
Для субтитров типы дорожек могут быть:
S_TEXT/SRT - соответственно ставим расширение файла субтитров "srt"
S_TEXT/SSA - ставим расширение файла субтитров "ssa"
S_TEXT/ASS - ставим расширение файла субтитров "ass"
иногда бывает указана кодировка субтитров: S_TEXT/UTF8
Работаем в графическом режиме.
С помощью mkvtoolnix-gui можно быстро и удобно посмотреть какие дорожки есть в файле (видео, зауковые, субтитры), какие-то убрать/добавить, изменить дорожки, которые будут использоваться "по-умолчанию" и т.п.
Итак, пример удаления дорожек из mkv файла:
- Запускаем mkvtoolnix-gui.
- На вкладке "Input" жмем кнопку "Add" - открываем файл, который будем редактировать.
- В списке "Tracks" убираем галочки с тех треков, которые нам не нужны.
- Если надо, меняем имя выходного файла в поле "Output filename".
- Жмем кнопку "Start muxing".
(!) При удалении дорожек не забудьте на всякий случай указать дорожки по-умолчанию для видео, аудио, субтитров.
В отдельном окне показывается консольная команда, соответствующая выполняемым действиям - может помочь при написании консольных скриптов для пакетной обработки файлов.