Главная » Статьи » Прочее |
Последнее время
часто попадается видео в формате mkv
вместо привычного avi. В mkv файлы зашивается
несколько звуковых дорожек, несколько
дорожек субтитров. Если просто смотришь
видео, то все ок. А вот если видео
редактируешь, то иногда бывает очень
неудобно разбираться со всеми этими
дорожками и вариантами субтитров. К
тому же лишние дорожки увеличивают
размер файлов (например одна звуковая
дорожка увеличивает размер файла на
30-100 Мб). К тому же под моим любимым
mplayer-ом иногда не удавалось активировать
нужную дорожку/субтитры. Стал искать
способы работы с mkv-файлами (точнее
выдирания субтитров, вырезания "лишних"
звуковых дорожек) и вот к чему пришел. Репозиторий Debian (надеюсь что тот, с которого я качал ;) )
Она покажет список дорожек в файле, их номера + некоторые комментарии о типе каждой дорожки. Теперь, зная номера дорожек, можно извлечь к примеру субтитры с помощью команды
Здесь:
После завершения
операции получаем файл, в котором нет
ненужных нам дорожек звука/субтитров.
Кодирование в mencoder После появления более-менее нормального компьютера и как следствие - кучи фильмов на нем, появилось желание что-то перекодировать, что-то ужать ( например впихнуть пару двухслойных двд в один ). Пока сидел под Windows, пользовался VirtualDub, кодировал в один проход с фиксированным качеством. Вроде все удобно, можно на ходу посмотреть что получается и т.п. Не нравилось одно - скорость кодирования, к тому же файлы по размеру получались великоваты. Через некоторое время друзья "подсадили" на mencoder и mplayer . Кодировал все еще в один проход, однако скорость получалась раза в 3 выше чем в VirtualDub. Покопался в интернете, понял что народ кодирует как минимум в два прохода. Подумал - а чем я хуже . Подсмотрел какие параметры обычно ставят, подкрутил под свои нужды. Перешел от указания фиксированного качества к фиксированному битрейту. Стали получаться более компактные файлы с нормальным качеством ( конечно, если с битрейтом не ошибался ). Единственный минус - снова упала скорость кодирования (из-за некоторых параметров кодировщика и использования двух проходов). Где скачать mplayer и
mencoder ( под Windows идут в составе одного
архива ): http://www.mplayerhq.hu/design7/dload.html С нашего сервера: http://support.mobigroup.ru/files/mplayer/ Репозиторий Debian: deb http://www.debian-multimedia.org etch main (!) Если работаете под
Windows, не забудьте скачать там же набор
кодеков. При кодировании с
фиксированным битрейтом cтарайтесь
выбирать битрейт близкий к значению,
которое получается при отсутствии
ограничений на размер файла. Если вы хотите "влезть" в определенный размер, используйте памятку: 1 час (видео 800 кбит/с + аудио 128 кбит/с) примерно равен 400 Мб Выбор битрейта видео: Вообще, если будете
часто что-то кодировать, то постепенно
научитесь интуитивно выбрать битрейт,
а для начала можно попробовать следующие
значения для видео: Выбор битрейта звука Битрейта 128 кбит/с хватает для большинства фильмов. Больший битрейт имеет смысл ставить для оперных фильмов. Если очень хочется сохранить звук (либо если он упорно расходится с видео - и такое иногда бывает если исходный файл разбит на несколько кусков) можно оставить звуковой поток без изменения - для этого вместо параметров "-oac mp3lame -lameopts cbr:br=$1" используйте "-oac copy" Время необходимое на кодирование: Пусть Т - длительность
фильма. первый проход ~ 1.5 * T -
2.0 * T Естественно, если картинка меньше размером, то кодируется быстрее. Двухпроходное кодирование в divx. Команды для двухпроходного кодирования видео в divx/mp3 Параметры: * Во время первого
прохода собирается информация о каждом
кадре фильма, звук не трогаем. Первый проход: /usr/bin/mencoder "./$3"
-ffourcc divx -o "./$3-pass-1.avi" -passlogfile
"./$3-divx2pass.log" -nosound -ovc lavc -lavcopts
vcodec=mpeg4:vpass=1:vb_strategy=2:vhq=4:mbd=2:trell:cbp:mv0:preme
=2:vbitrate=$2:v4mv:vqmin=2:vqmax=9:mpeg_quant:vlelim=-3:vcelim=5:lumi_mas
k=0.01:dark_mask=0.01:p_mask=0.01:autoaspect /usr/bin/mencoder "./$3" -ffourcc divx -o "./$3-pass-2.avi" -passlogfile "./$3-divx2pass.log" -oac mp3lame -lameopts cbr:br=$1 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2:vb_strategy=2:vhq=4:mbd=2:trell:cbp:mv0: preme=2:vbitrate=$2:v4mv:vqmin=2:vqmax=9:mpeg_quant:vlelim=-3:vcelim=5:lumi_mas k=0.01:dark_mask=0.01:p_mask=0.01:autoaspect Краткое объяснение параметров: * Эти параметры определяют какие "фишки" будут использоваться при обработке файла vb_strategy=2:vhq=4:mbd=2:trell:cbp:mv0:preme=2:v4mv:mpeg_quant * Эти влияют на то, насколько сильно будут "вырезаться" затемненные и засвеченные участки картинки. Значения больше 0.5 указывать не стоит, только в каких-нибудь специфических условиях, иначе будет вырезаться слишком много полутонов - "сожмутся" цвета близкие к черному и белому цвету vlelim=-3:vcelim=5:lumi_mask=0.01:dark_mask=0.01:p_mask=0.01 * Минимальный и максимальный "размер квадратиков" vqmin=2:vqmax=9 * С этим параметром картинка будет меньше "сглаживаться". Например в h264 при таком же битрейте иногда не видно статичную мелкую сетку даже при двухпроходном кодировании. mpeg_quant Полезные фильтры: * При кодировании чересстрочного фильма может помочь фильтр: -vf pp=fd * Фильтр, убирающий шум (лучше посмотреть что получится с этим фильтром и без него, т.к. иногда его применение приводит к ухудшению картинки): -vf hqdn3d=4:3:5 * Масштабирование картинки (в данном случае размеры станут 640 на 480 (Ш х В)): -vf scale=640:480 Что делать если звук в исходном файле в формате "Microsoft PCM": Если формат звука в исходном файле "Microsoft PCM", mencoder может отказаться выполнять второй проход (в котором кодируется звук). Чтобы это преодолеть, нужно добавить следующие параметры: -srate sound_rate -af resample Значение sound_rate можно посмотреть в avidemux или любой другой программе показывающей информацию о файле. Не пугайтесь, если сразу не получилось - в моем случае подсмотренное значение 44103 не помогло - пришлось вписать 44100. Как увеличить скорость кодирования. Если компьютер слабый, или просто нужно быстро что-то закодировать, попробуйте убрать пару-тройку из этих параметров: vb_strategy=2:vhq=4:mbd=2:trell:cbp:mv0:preme=2:v4mv Скорость может вырасти примерно в 2 - 4 раза. Однако будьте готовы к тому что качество картинки может ухудшиться, либо потребуется поставить бОльший битрейт для сохранения качества. | |
Просмотров: 2237 | |
Всего комментариев: 0 | |