MPlayer крутит вертит как хочеш
Написал: Евгений Фомин в категорию Debian, Linux ДистрибутивыВобще даdно хотел разместить заметочку на тему как можно с помощью mplayer обрабатывать видео. Возник у меня вопрос как можно преобразовать vob-файл в avi? Пошел к своему другу спросил он мне и говорит надо mplayer-ом пользоваться, я ему ок попробую. А зачем мне это надо было, а вот зачем принесла мне теща пару dvd дисков на них записана тв-программа которая выходит на одном из наших местных каналов, вобщем попросила скопировать. На каждом диске по одной программе записано, я глянул размер а там из 4 Гб занято только 1 Гб. Я ей говорю давай я тебе все на один диск запишу только в avi-формате, будеш на компутере у себя смотреть она говорит хорошо давай только диски надо было отдать, сделал образы всех дисков и отдал ей. Сам начал разбираться как это дело можно провернуть.
И так пришлось загрузить mplayer с сайта разработчиков и откомпилить его. При компиляции выяснилось что надо еще кое какие библиотеки загрузит (lame-3.97, xvidcore-1.1.3).
Для того чтобы откомпилировать в Debian все это написал скрипты, естественно предварительно распаковав все исходники из архивов:
lame
1 2 3 4 | #!/bin/sh cd lame/ fakeroot debian/rules clean fakeroot debian/rules binary |
xvidcore
1 2 3 4 | #!/bin/sh cd xvidcore/ fakeroot debian/rules clean fakeroot debian/rules binary |
mplayer
1 2 3 4 | #!/bin/sh cd mplayer/ fakeroot debian/rules clean DEB_BUILD_OPTIONS="--enable-largefiles --enable-menu --language=ru" fakeroot debian/rules binary |
.
Получившиеся deb-ки установил. А теперь самое интересное. Почитав man и вникнув только в самое основное что мне надо было написал пару скриптов для преобразования из vob-ов в avi.
mpeg2avi (делает 2 прохода аудио поток преобразует в AC3 размер файла на выходе отличается от оригинала почти в 2 раза вместо 1 Гб получается примерно 450 Мб)
1 2 3 4 5 6 7 | #!/bin/sh echo "File $1 is in processing..." origname=$1 aviname=$origname.avi mpgname=output_$aviname.mpg mencoder $1 -ovc lavc -lavcopts vcodec=mpeg2video:vpass=1 -oac copy -o /dev/null mencoder $1 -ovc lavc -lavcopts vcodec=mpeg2video:mbd=2:trell:vpass=2:acodec=ac3 -oac lavc -o $mpgname |
XVid (преобразует avi-файл тобы можно было смотреть в Windows):
1 2 3 4 | #!/bin/sh echo "File $1 is in processing..." origname=$1 mencoder $1 -ovc copy -oac copy -o out_$1.avi -ffourcc XVID |
mpeg4 (два прохода аудио поток копируется из оригинала на выходе avi-файл который Windows тоже понимает):
1 2 3 4 5 6 | #!/bin/sh echo "File $1 is in processing..." origname=$1 mpgname=output_$origname.mpeg mencoder $origname -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o /dev/null mencoder $origname -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:vpass=2 -oac copy -o $mpgname -ffourcc XVID |
Маленькое отступление без ключа -ffourcc XVID в Windows файлы не проигрываются, вот такая блин засада.