Сделал скрипт массового конвертирования видео в MKV (Версия 0.1)

Вопросы, приемы и проблемы обработки видео

Модератор: Модераторы разделов

Ответить
Аватара пользователя
Sekta-N
Сообщения: 854
ОС: Зоопарк

Сделал скрипт массового конвертирования видео в MKV

Сообщение Sekta-N »

Написал скриптик, который конвертирует все видео на вашем компьютере в контейнер matroska vcodec=h264 acodec=aac
Скрипт учитывает:
Количество ядер вашего процессора
Исходный битрейт аудио
Количество каналов аудио
Высчитывает битрейт получаемого видео, достаточно ввести только параметр quality.

TODO:
Условия плохого качества видео при высоком разрешении, что-то наподобие если битрейт одного видео меньше получаемого, то понижаем параметр quality на 1 и так по циклу.
Тестирования
Проверки наличия имеющегося ПО, возможно даже добавить автоустановку нехватающего ПО.
Еще надо удалить старое расширение выходных файлов (через sed)
Выход при выводе не равным 0
Попозже доделаю.



<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>#!/bin/bash
# matroska converter for MPlayer
# distributed under GPL License

# MPlayer available at
# http://www.mplayerhq.hu

usage()
{
cat <<EOF
Usage: `basename $0` input [options]

Options:
-h|--help this help screen
-q|--quality quality of video 5 - low, 8 - very high [7]
EOF

}

#initializating constants
quality=7

#pharsing parameters

if [ $# -le 0 ]; then
echo "Missing parameter!"
usage
exit 1
fi

case $1 in
-h)
usage
exit 1
;;
-*)
echo "Missing parameter!"
usage
exit 1
;;
*)
input=`echo $1 |sed 's/\\ / /'`
if [ "$input" = "`basename "$input"`" ]; then
input="`pwd`/$1"
fi
nev=`basename "$input"`
shift 1
;;
esac

while [ "$1"x != "x" ]; do
case $1 in
-q|--quality)
quality=$2
shift 1
;;
-h|--help)
usage
exit 0
;;
esac
shift 1
done

#check width and height for required video bitrate
inputwidth=`mplayer -vo null -ao null "$input" -frames 1 2>/dev/null |grep -m 1 '=>'|cut -d ' ' -f 5|cut -d x -f 1`
inputheight=`mplayer -vo null -ao null "$input" -frames 1 2>/dev/null |grep -m 1 '=>'|cut -d ' ' -f 5|cut -d x -f 2`
videobitrate=`echo -e "scale=10\n$inputwidth*$inputheight*$quality/1024"|bc /dev/stdin | cut -d '.' -f 1`
firstpassbitrate=`echo -e "scale=10\n$inputwidth*$inputheight*$quality/102"|bc /dev/stdin | cut -d '.' -f 1`

#cheking audio bitrate
inputaudiobitrate=`mplayer -vo null -ao null "$input" -frames 1 2>/dev/null |grep -m 1 'kbit' | cut -d ' ' -f 7 | cut -d '.' -f 1`

#checking number of cpu cores
cpucores=`grep -c "vendor_id" /proc/cpuinfo`

#checking audio channels
numofchannels=`mplayer -vo null -ao null "$input" -frames 1 2>/dev/null |grep -m 1 'AUDIO'|cut -d ' ' -f 4`

if [ `mplayer -vo null -ao null "$input" -frames 1 2>/dev/null |grep -o -m 1 'ffh264'` ]; then
cat <<EOF
Already h264
EOF
exit 1
fi

mencoder "$input" -of rawvideo -ovc x264 -x264encopts bitrate=$firstpassbitrate:pass=1:turbo=1:threads=$cpucores -ofps 25 -nosound -o "/dev/null"

mencoder "$input" -of rawvideo -ovc x264 -x264encopts bitrate=$videobitrate:pass=2:threads=$cpucores -ofps 25 -nosound -o "$input.264"

mencoder "$input" -of rawaudio -channels $numofchannels -o "$input.aac" -vf harddup -ovc frameno -oac faac -faacopts object=1:tns:br=$inputaudiobitrate

# br конечно архаичность, потом заменю на quality

mkvmerge -o "$input.menc.mkv" "$input.264" "$input.aac"

rm -f "$input.264"
rm -f "$input.aac"</div>
Нет тут подписи и не будет.
Спасибо сказали:
Аватара пользователя
Delirious Stranger
Сообщения: 340
Статус: кофейник
ОС: Funtoo + Calculate

Re: Сделал скрипт массового конвертирования видео в MKV

Сообщение Delirious Stranger »

Хорошее дело. Особенно, если просмотр только на компьютере осуществляется.

Кстати, о птичках... Может кто подскажет существует ли хардовый двд-плеер с поддержкой контейнера mkv, кодеков H.264 и SSA/ASS-субтитров, как вшитых в контейнер, так и рядом лежащих.

А то сейчас, когда хочется что-нибудь посмотреть нормально на телевизоре с двд-плеера, то приходится из матрешки с софтсабом клепать avi-шки c xvid и хардсабом.
Если счастье когда-нибудь не оставит тебя - оно к тебе больше никогда не придет. © О. Радус
Спасибо сказали:
Аватара пользователя
Sekta-N
Сообщения: 854
ОС: Зоопарк

Re: Сделал скрипт массового конвертирования видео в MKV

Сообщение Sekta-N »

Если не ошибаюсь плеер должен быть с поддержкой HD Video.
Нет тут подписи и не будет.
Спасибо сказали:
Аватара пользователя
sirocco
Сообщения: 782
Статус: Задвинутый соучастник
Контактная информация:

Re: Сделал скрипт массового конвертирования видео в MKV

Сообщение sirocco »

Delirious Stranger писал(а):
31.10.2008 12:31
Кстати, о птичках... Может кто подскажет существует ли хардовый двд-плеер с поддержкой контейнера mkv, кодеков H.264 и SSA/ASS-субтитров, как вшитых в контейнер, так и рядом лежащих.


С DVD приводом за разумные деньги (дешевле ноута) - не слышал.

А так - вышел новый чипсет, стали появляться коробочки для HDD...
Короче, в поиск (не по форуму), ключевые слова, например:
popcorn bbk
вариант:
popcorn computerra

P.S. Либо сразу
Посетить хобот -> http://forum.ixbt.com/?id=62&forumpage...dtv&author=
Спасибо сказали:
Аватара пользователя
Sekta-N
Сообщения: 854
ОС: Зоопарк

Re: Сделал скрипт массового конвертирования видео в MKV

Сообщение Sekta-N »

Еще проще собрать самому барбон. И из интернета можно видео смотреть, и с dvd дисков, и с жесткого, и с флешек.
[ненависть] Кстати когда flash video R.I.P? тошнит от этого гумна. [/ненавить]
Нет тут подписи и не будет.
Спасибо сказали:
Аватара пользователя
sirocco
Сообщения: 782
Статус: Задвинутый соучастник
Контактная информация:

Re: Сделал скрипт массового конвертирования видео в MKV

Сообщение sirocco »

Sekta-N писал(а):
31.10.2008 15:40
[ненависть] Кстати когда flash video R.I.P? тошнит от этого гумна. [/ненавить]

Так Вы не читайте с утра советских газет смотрите это, полегчает.
Спасибо сказали:
Аватара пользователя
Sekta-N
Сообщения: 854
ОС: Зоопарк

Re: Сделал скрипт массового конвертирования видео в MKV

Сообщение Sekta-N »

Версия 0.2 :)))

Добавил:
Проверку наличия поддержки x264 кодирования
Условие при котором видео имеет высокое разрешение и плохое качество
Регексы для надежности

Думаю как убрать старые расширения

Код:

#!/bin/bash usage() { cat <<EOF Usage: `basename $0` input [options] Options: -h|--help this help screen -q|--quality quality of video 5 - low, 8 - very high [7] EOF } #initializating constants quality=7 #pharsing parameters if [ $# -le 0 ]; then echo "Missing parameter!" usage exit 1 fi case $1 in -h) usage exit 1 ;; -*) echo "Missing parameter!" usage exit 1 ;; *) input=`echo $1 |sed 's/\\ / /'` if [ "$input" = "`basename "$input"`" ]; then input="`pwd`/$1" fi nev=`basename "$input"` shift 1 ;; esac while [ "$1"x != "x" ]; do case $1 in -q|--quality) quality=$2 shift 1 ;; -h|--help) usage exit 0 ;; esac shift 1 done if [ `mencoder -ovc help | grep -E -o -h 'x264'` != 'x264' ]; then cat <<EOF Your mencoder does not support x264 Please rebuild mplayer without --disable-x264 option, and sure that you have x264 devel package EOF exit 1 fi if [ `mplayer -vo null -ao null "$input" -frames 1 2>/dev/null |grep -o -m 1 'ffh264'` ]; then cat <<EOF Already h264 codec EOF exit 1 fi #check width and height for required video bitrate inputwidth=`mplayer -vo null -ao null "$input" -frames 1 2>/dev/null |grep -m 1 '=>'|cut -d ' ' -f 5|cut -d x -f 1` inputheight=`mplayer -vo null -ao null "$input" -frames 1 2>/dev/null |grep -m 1 '=>'|cut -d ' ' -f 5|cut -d x -f 2` videobitrate=`echo -e "scale=10\n$inputwidth*$inputheight*$quality/1024"|bc /dev/stdin | cut -d '.' -f 1` firstpassbitrate=`echo -e "scale=10\n$inputwidth*$inputheight*$quality/100"|bc /dev/stdin | cut -d '.' -f 1` #check audio bitrate audiobitrate=`mplayer -vo null -ao null "$input" -frames 1 2>/dev/null |grep -m 1 -E -o -h '[0-9]+\.[0-9]+ [k][b][i][t]' | cut -d ' ' -f 1 | cut -d '.' -f 1` #check cpu cores cpucores=`grep -c "vendor_id" /proc/cpuinfo` #check audio channels numofchannels=`mplayer -vo null -ao null "$input" -frames 1 2>/dev/null |grep -m 1 -E -o -h '[0-9] [c][h]' | cut -d ' ' -f 1` inputvideobitrate=`mplayer -vo null -ao null "$input" -frames 1 2>/dev/null | grep -m 1 -E -o -h '[0-9]+\.[0-9]+ [k][b][p][s]' | cut -d ' ' -f 1 | cut -d '.' -f 1` # bad quality of video with high resolution istoobadquality=`expr $videobitrate \> $inputvideobitrate` if [ "$istoobadquality" = 1 ]; then videobitrate=$inputvideobitrate fi mencoder "$input" -of rawvideo -ovc x264 -x264encopts bitrate=$firstpassbitrate:pass=1:turbo=1:threads=$cpucores -ofps 25 -nosound -o "/dev/null" mencoder "$input" -of rawvideo -ovc x264 -x264encopts bitrate=$videobitrate:pass=2:threads=$cpucores -ofps 25 -nosound -o "$input.264" mencoder "$input" -of rawaudio -channels $numofchannels -o "$input.aac" -vf harddup -ovc frameno -oac faac -faacopts object=1:tns:br=$audiobitrate mkvmerge -o "$input.menc.mkv" "$input.264" "$input.aac" rm -f "$input.264" rm -f "$input.aac"
Нет тут подписи и не будет.
Спасибо сказали:
Аватара пользователя
Sekta-N
Сообщения: 854
ОС: Зоопарк

Re: Сделал скрипт массового конвертирования видео в MKV

Сообщение Sekta-N »

Так Вы не ... смотрите это, полегчает.


Так в него засунули все что можно и все что нельзя. А тэг [video] оффициально появится только ... в 2022 году вместе с HTML5, (правда я в этом сомневаюсь, что оно не сдохнет раньше).
Нет тут подписи и не будет.
Спасибо сказали:
tull
Сообщения: 484

Re: Сделал скрипт массового конвертирования видео в MKV

Сообщение tull »

Delirious Stranger писал(а):
31.10.2008 12:31
Кстати, о птичках... Может кто подскажет существует ли хардовый двд-плеер с поддержкой контейнера mkv, кодеков H.264 и SSA/ASS-субтитров, как вшитых в контейнер, так и рядом лежащих.
не советую. отдельный комп лучше.
коротко расскажу о своих мучениях и поисках:
купил Popcorn A100 - мегаглюкалово. брал его именно как железку, которая может все воспроизводить, чтобы не заморачиваться с компом. глюков куча, поверьте. а другие плееры, типа istar, tvix, egreat и т.п. - суть одно и тоже, т.к. там и чип такой же, и софт.

долго мучался с созданием htpc на линухе. нормальной оболочки - нет. нормальной - это чтобы к клаве не прикасаться никогда, чтобы все только с пульта, включая управление коллекцией фильмов (удаление, перемещение, переименование и т.п.)
плюс проблемы с линух плеерами. мне тут попались фильмы, которые mplayer вообще не хавает, а vlc хавает, но он не может на 2 процах работать, т.е. полноценного воспроизведения не получилось (тормозить начинает).

в конце концов мне все это надоело (очень хочется кино смотреть, а не заниматься извращенным сексом с компом), я поставил на HTPC-комп винду (да, противно, а что поделаешь!), и уже вторую неделю не знаю никаких забот:
vlc работает на двух процах и никаких тормозов и т.п. никогда не было (у меня двухядерный amd 2400 Мгц, разогнанный до 2800, если чо).
один фильм все таки не пошел под vlc, но пошел под kmplayer
не стал даже пульт прикручивать (у меня вообще HTPCшный корпус, с примеником, пультом, индикатором), а просто купил радиоклавиатуру со встроенным эмулятором мыши. сейчас не знаю никаких забот - пооолный рулез.
да, и есть еще возможность аппаратного декодирования h.264 (что в линуксовых дровах появится фиг знает когда)

может через пару лет хардварные плееры доведут до ума, они не будут виснуть, глючить, и будут хавать все подряд. плюс будут широкие возможности настройки (мне, например, реально важно, чтобы можно было настроить время быстрого "перескакивания" по видео туда-сюда - т.е. чтобы эти 2 кнопки на +/-3 сек, эти - на +/- 15 сек и т.д.). тогда их можно будет покупать и использовать.
но пока мой выбор для просмотра HD-видео - комп. при этом не под линухом, а под виндой. потому что мне важно, чтобы смотерть было удобно и комфортно. а не шаманить с переконвертацией глючного видео, чтобы его таки схавал mplayer
(кстати, то глючное видео не пошло у меня и на Popcorn)

но если вас не страшат трудности - покупайте Popcorn или Egreat. обойдется в 6-7 тыс. это самый дешевый вариант, дюна и другие уже дороже.
Спасибо сказали:
Аватара пользователя
sspphheerraa
Сообщения: 1375
ОС: Gentoo

Re: Сделал скрипт массового конвертирования видео в MKV

Сообщение sspphheerraa »

IMHO самый выигрышный вариант - ноут с HDMI выходом + ваш телевизор/плазма/etc...
имеете функциональность/гибкость/преимущество компа и картинку на большом экране
Sspphheerraa
Спасибо сказали:
Аватара пользователя
Sekta-N
Сообщения: 854
ОС: Зоопарк

Re: Сделал скрипт массового конвертирования видео в MKV

Сообщение Sekta-N »

Теперь удаляются старые расширения (спс Portnov), заменил битрейт первого прохода на квантователь 0, добавил несколько дополнительных опций (пока не работают, тестирую)

Код:

usage() { cat <<EOF Usage: `basename $0` input [options] Options: -h|--help this help screen -q|--quality quality of video 5 - low, 8 - very high [7] -f|--faster little faster, but quality is reduced -s|--slower little slower, but quality is improved -a|--anime -d|--denoise -l|--log EOF } #initializating constants quality=7 zturbo=1 zframeref=1 zsubq=5 ztrellis=1 znr=0 zlog=0 #pharsing parameters if [ $# -le 0 ]; then echo "Missing parameter!" usage exit 1 fi case $1 in -h) usage exit 1 ;; -*) echo "Missing parameter!" usage exit 1 ;; *) input=`echo $1 |sed 's/\\ / /'` if [ "$input" = "`basename "$input"`" ]; then input="`pwd`/$1" fi nev=`basename "$input"` shift 1 ;; esac while [ "$1"x != "x" ]; do case $1 in -q|--quality) quality=$2 shift 1 ;; -h|--help) usage exit 0 ;; esac shift 1 done if [ `mencoder -ovc help | grep -E -o -h 'x264'` != 'x264' ]; then cat <<EOF Your mencoder does not support x264 Please rebuild mplayer without --disable-x264 option and sure that you have x264 devel package EOF exit 1 fi if [ `mplayer -vo null -ao null "$input" -frames 1 2>/dev/null |grep -o -m 1 'ffh264'` ]; then cat <<EOF Already h264 codec EOF exit 1 fi #check width and height for required video bitrate inputwidth=`mplayer -vo null -ao null "$input" -frames 1 2>/dev/null |grep -m 1 '=>'|cut -d ' ' -f 5|cut -d x -f 1` inputheight=`mplayer -vo null -ao null "$input" -frames 1 2>/dev/null |grep -m 1 '=>'|cut -d ' ' -f 5|cut -d x -f 2` videobitrate=`echo -e "scale=10\n$inputwidth*$inputheight*$quality/1024"|bc /dev/stdin | cut -d '.' -f 1` #check audio bitrate audiobitrate=`mplayer -vo null -ao null "$input" -frames 1 2>/dev/null |grep -m 1 -E -o -h '[0-9]+\.[0-9]+ [k][b][i][t]' | cut -d ' ' -f 1 | cut -d '.' -f 1` #check cpu cores1 cpucores=`grep -c "vendor_id" /proc/cpuinfo` #check audio channels numofchannels=`mplayer -vo null -ao null "$input" -frames 1 2>/dev/null |grep -m 1 -E -o -h '[0-9] [c][h]' | cut -d ' ' -f 1` inputvideobitrate=`mplayer -vo null -ao null "$input" -frames 1 2>/dev/null | grep -m 1 -E -o -h '[0-9]+\.[0-9]+ [k][b][p][s]' | cut -d ' ' -f 1 | cut -d '.' -f 1` # bad quality of video with high resolution istoobadquality=`expr $videobitrate \> $inputvideobitrate` if [ "$istoobadquality" = 1 ]; then videobitrate=$inputvideobitrate fi mencoder "$input" -of rawvideo -ovc x264 -x264encopts qp=0:pass=1:turbo=$zturbo:threads=$cpucores:frameref=$zframeref:subq=$zsubq:trellis=$ztrellis:nr=$znr -ofps 25 -nosound -o "/dev/null" mencoder "$input" -of rawvideo -ovc x264 -x264encopts bitrate=$videobitrate:pass=2:threads=$cpucores:frameref=$zframeref:subq=$zsubq:trellis=$ztrellis:nr=$znr:ratetol=100.0 -ofps 25 -nosound -o "$input.264" mencoder "$input" -of rawaudio -channels $numofchannels -o "$input.aac" -vf harddup -ovc frameno -oac faac -faacopts object=1:tns:br=$audiobitrate mkvmerge -o "${input%.*}.menc.mkv" "$input.264" "$input.aac" rm -f "$input.264" rm -f "$input.aac"


да, и есть еще возможность аппаратного декодирования h.264 (что в линуксовых дровах появится фиг знает когда)


Вкусная была лапша, для аппаратного декодирования h264 нужен специальный кодек и плеер.
Нет тут подписи и не будет.
Спасибо сказали:
BaBL
Сообщения: 767
ОС: Debian GNU/Linux SID
Контактная информация:

Re: Сделал скрипт массового конвертирования видео в MKV

Сообщение BaBL »

думаю стоит добавить проверку на установленность мплеера и менкодера

Код: Выделить всё

declare -a prog_needed=(mplayer mencoder)


for i in ${prog_needed[@]}
do
echo -n "Checking for $i..... "
if which "$i" &> /dev/null; then
echo "Yes"
else
echo "No"
echo "Programm $i is not installed. Please install $i first"
exit 0
fi
done
Спасибо сказали:
Аватара пользователя
Sekta-N
Сообщения: 854
ОС: Зоопарк

Re: Сделал скрипт массового конвертирования видео в MKV

Сообщение Sekta-N »

да, и есть еще возможность аппаратного декодирования h.264 (что в линуксовых дровах появится фиг знает когда)


Аппаратное декодирование в линуксе появилось ровно в тот же день, что и в венде, вместе с дровами 169.21. просто люди не хотят писать непереносимый на другие системы (CUDA) декодер.

2 BaBL спс.

Можно еще вот так вот:

Код: Выделить всё

which bc >/dev/null 2>&1
bcbin=`which bc 2>/dev/null`
if [ $? != 0 ]; then
    cat <<EOF
ERROR: Can't find bc.
EOF
exit 1
fi


Еще есть проблема, fps mkv должно быть 25 кадров. Многое видео имеет fps=30000/1001

Если конвертировать без использования 'ofps 25', то звук убегает далеко вперед, притом плееры феерически доказывают, что ФПС видео 25 кадров, а не 30000/1001, если использовать эту опцию, то появляются рывки видео при воспроизведении.

От способа определения установленного ПО предложенного BaBL пришлось отказать, т.к. названия пакета и исполняемого файла не совпадаются.

Исправил ошибку, в первом проходе квантователь не должен быть равным 0.
Добавил завершение скрипта при ошибке кодирования

Код:

#Сейчас решаю проблему с рывками при конвертировании видео с fps != 25 в fps = 25 #Добавлю Faster и Slower, denoise и параметр для конверта нормальных, некомпьютерных мультфильмов #Потом добавлю DVDRip из тупо скопированного с ДВД диска на перезаписываемый раздел видео #Потом DVDRip с ДВД диска #Минимальные требования процессора к софтварному декодированию у видео до HD Ready включительно процессор PIV или AthlonXP, у FullHD - двухядерный процессор + плеер с поддержкой мультипоточности. #Со всеми заявлениями, что в венде их любимый JetAudio, Light Alloy и т.д. поддерживает аппаратный декод через видеокарту в детский сад, т.к. для этого требуется специальный платный декодер и плеер от производителя видеокарты (например Nvidia Pure Video базирующийся на CUDA) usage() { cat <<EOF Usage: `basename $0` input [options] Options: -h|--help this help screen -q|--quality quality of video 3 - low, 8 - very high [6] -f|--faster little faster, but quality is reduced -s|--slower little slower, but quality is improved -a|--anime -d|--denoise -l|--log EOF } #initializating constants quality=6 zturbo=1 zframeref=1 zsubq=5 ztrellis=1 znr=0 zlog=0 #checking for MPlayer which mplayer >/dev/null 2>&1 bcbin=`which mplayer 2>/dev/null` if [ $? != 0 ]; then cat <<EOF ERROR: Can't find MPlayer, you must install MPlayer package first EOF exit 1 fi #checking for mkvtoolnix which mkvmerge >/dev/null 2>&1 bcbin=`which mkvmerge 2>/dev/null` if [ $? != 0 ]; then cat <<EOF ERROR: Can't find mkvtoolnix, you must install mkvtoolnix package first EOF exit 1 fi #pharsing parameters if [ $# -le 0 ]; then echo "Missing parameter!" usage exit 1 fi if [ `mencoder -ovc help | grep -E -o -h 'x264'` != 'x264' ]; then cat <<EOF Your mencoder does not support x264 Please rebuild mplayer without --disable-x264 option and sure that you have x264 devel package EOF exit 1 fi case $1 in -h) usage exit 1 ;; -*) echo "Missing parameter!" usage exit 1 ;; *) input=`echo $1 |sed 's/\\ / /'` if [ "$input" = "`basename "$input"`" ]; then input="`pwd`/$1" fi nev=`basename "$input"` shift 1 ;; esac while [ "$1"x != "x" ]; do case $1 in -q|--quality) quality=$2 shift 1 ;; -h|--help) usage exit 0 ;; esac shift 1 done if [ `mplayer -vo null -ao null "$input" -frames 1 2>/dev/null |grep -o -m 1 'ffh264'` ]; then cat <<EOF Already h264 codec EOF exit 1 fi #check width and height for required video bitrate inputwidth=`mplayer -vo null -ao null "$input" -frames 1 2>/dev/null |grep -m 1 '=>'|cut -d ' ' -f 5|cut -d x -f 1` inputheight=`mplayer -vo null -ao null "$input" -frames 1 2>/dev/null |grep -m 1 '=>'|cut -d ' ' -f 5|cut -d x -f 2` videobitrate=`echo -e "scale=10\n$inputwidth*$inputheight*$quality/1024"|bc /dev/stdin | cut -d '.' -f 1` #check audio bitrate audiobitrate=`mplayer -vo null -ao null "$input" -frames 1 2>/dev/null |grep -m 1 -E -o -h '[0-9]+\.[0-9]+ [k][b][i][t]' | cut -d ' ' -f 1 | cut -d '.' -f 1` #check cpu cores cpucores=`grep -c "vendor_id" /proc/cpuinfo` #check audio channels numofchannels=`mplayer -vo null -ao null "$input" -frames 1 2>/dev/null |grep -m 1 -E -o -h '[0-9] [c][h]' | cut -d ' ' -f 1` inputvideobitrate=`mplayer -vo null -ao null "$input" -frames 1 2>/dev/null | grep -m 1 -E -o -h '[0-9]+\.[0-9]+ [k][b][p][s]' | cut -d ' ' -f 1 | cut -d '.' -f 1` # bad quality of video with high resolution istoobadquality=`expr $videobitrate \> $inputvideobitrate` if [ "$istoobadquality" = 1 ]; then videobitrate=$inputvideobitrate fi mencoder "$input" -of rawvideo -ovc x264 -x264encopts qp=3:pass=1:turbo=$zturbo:threads=$cpucores:frameref=$zframeref:subq=$zsubq:trellis=$ztrellis:nr=$znr -ofps 25 -nosound -o "/dev/null" if [ $? != 0 ]; then cat <<EOF 1st pass failed EOF exit 1 fi mencoder "$input" -of rawvideo -ovc x264 -x264encopts bitrate=$videobitrate:pass=2:threads=$cpucores:frameref=$zframeref:subq=$zsubq:trellis=$ztrellis:nr=$znr:ratetol=100.0 -ofps 25 -nosound -o "$input.264" if [ $? != 0 ]; then cat <<EOF 2nd pass failed EOF rm -f "$input.264" exit 1 fi mencoder "$input" -of rawaudio -channels $numofchannels -o "$input.aac" -vf harddup -ovc frameno -oac faac -faacopts object=1:tns:br=$audiobitrate if [ $? != 0 ]; then cat <<EOF Audio pass failed EOF rm -f "$input.264" rm -f "$input.aac" exit 1 fi mkvmerge -o "${input%.*}.menc.mkv" "$input.264" "$input.aac" rm -f "$input.264" rm -f "$input.aac"
Нет тут подписи и не будет.
Спасибо сказали:
tierpunk
Сообщения: 78
ОС: Ubuntu, Debian, Centos

Re: Сделал скрипт массового конвертирования видео в MKV

Сообщение tierpunk »

а не могли бы вы список программ и пакетов написать. желательно для убунту
Спасибо за то что ответили на моё сообщение.
Спасибо сказали:
Ответить