|
От редакции. Автор статьи попытался продемонстрировать известную всем программу MPlayer с самых разных сторон. Надеемся, что читатель, независимо от уровня своего владения этим приложением, подчерпнет что-нибудь интересное и для себя. А новичкам будет полезно познакомиться со столь разносторонней и богатой во всех отношениях программой для просмотра, кодирования... впрочем, читайте дальше сами. Оригинал статьи вы можете найти здесь. Что должен уметь делать хороший видео плейер в Linux в наших мечтаниях? Проигрывать любой фильм, какой нам заблагорассудиться в него запихать. И никаких вопросов - просто показывать! Помимо этого, необходимо хорошее и удобное управление, программа должна работать с дистанционным пультом, показывать телевизионные каналы и, естественно, проигрывать DVD. Так вот, Mplayer все это умеет делать и даже больше того... MPlayer - зрелая, активно развивающаяся программа. Возможно, в один прекрасный день, в не столь отдаленном будущем, к ее уже мощным возможностям прибавятся цветные субтитры, режим картинка в картинке и другие фантастические навороты. MPlayer обладает превосходной устойчивостью. Однако, при некоторых обстоятельствах, программа может и вылететь. Чаще всего связанно это с левыми драйверами видео. И все же это зрелое приложение, которое не имеет аналогов в мире Linux. Кроме того, в пакет с программой входит MEncoder для кодирования видео, который справляется с этой задачей куда успешнее известного FFMPEG. Хотя для использования его в полную силу необходимо немало поюзать справочную документацию. А сейчас давайте посмотрим волшебство MPlayer в действии. Следующая команда проиграет звуковой файл расположенный по приведенному линку, одновременно проведя ресэмплинг потока до 48.000 Гц и скомбинировав каналы в обычное стерео: $ mplayer -af lavcresample=48000,hrtf 'http://mp3.streampower.be/radio1-mid.mp3' Другая команда захватывает тот же самый поток и сохраняет его в файле 'stream.aac': $ mplayer -dumpstream -dumpfile stream.aac -softvol -softvol-max 2000 -af lavcresample=48000,volnorm=2:0.5 'http://mp3.streampower.be/radio1-mid.mp3' Теперь вы можете открыть полученный файл командой: $ mplayer stream.aac И что же получается? Пока MPlayer скачивает, обрабатывает и проигрывает для вас файл - реальное время радиопотока смещается. Сие не есть хорошо. Имеющиеся параметры не позволяют достичь этого, зато могут продемонстрировать элегантное использование возможностей MPlayer из командной строки. Так, к примеру, параметры '-softvol' и '-softvol-max' оказывают влияние на качество и уровень звука. С одной стороны это уменьшает уровень шума к сигналу, с другой стороны на высоких частотах уровень полезного сигнала будет неестественно завышен. Для нормализации звука можно воспользоваться фильтром 'volnorm'. Я использую параметр 'volnorm=2:0.5'. Так последняя цифра (0.5) определяет потолок амплитуды для нормализации. Списки для проигрывания Следующая команда наподобие приведенной выше, за одним исключением, вы определяете не файл, а URL плейлиста. Возможно это не сработает у вас, если вы не имеете доступа к сайту SHOUTcast. Но это только пример. $ mplayer -af lavcresample=48000,hrtf -playlist 'http://www.shoutcast.com/sbin/shoutcast-playlist.pls?rn=1025&file=filename.pls' Опция '-playlist' должная использоваться только для URL потока, который имеет расширение '.pls'. Вы можете создать плейлист несколькими путями. Здесь приведен один из вариантов с использованием утилиты 'find': $ find /home/girish/music -name "*mp3 -or -name "*ogg" > ~/playlist.txt А теперь заставьте MPlayer проиграть ваш плейлист: $ mplayer -playlist ~/playlist.txt Следующая строка позволит вам проиграть список в случайном порядке без повтора треков: $ mplayer -shuffle -playlist ~/playlist.txt Естественно, вы не должны ограничивать себя проигрыванием только аудиофайлов. Вы можете добавлять любые поддерживаемые MPlayer'ом форматы, включая видео, телеканалы, радио и, естественно, интернет потоки. В дополнении к простому формату плейлиста программа имеет превосходную поддержку ASX, M3U и других популярных форматов списков. Спецэффекты Имеется хорошая поддержка звуковых эффектов, а эффект караоке - наиболее интересный среди них. Работает он не совсем хорошо, но попеть под фанеру вам удастся. Основан эффект на уменьшении громкости существующего вокала. Для этого используйте следующий способ: $ mplayer -af karaoke song.mp3 MPlayer также имеет десятиполосный эквалайзер. Следующая команда игнорирует средние полосы и усиливает частоты 31.25Hz 7dB, 62.5Hz 8dB, 125Hz 5dB. Все частоты около 4, 8 и 16Hz уменьшены на 2 dB. $ mplayer -af equalizer=7:8:5:0:0:0:-2:-2:-2 video.mpg А эта команда придаст живости к воспроизведению треков, которые вам могут показаться слишком монотоными: $ mplayer -af extrastereo song.mp3 Если есть желание прослушать какую-нибудь песню несколько раз, воспользуйтесь параметром 'loop'. В этом примере третья песня проиграется пять раз: $ mplayer song1.mp3 song2.ogg file.wav -loop 5 А вот если хоттите повторить весь список файлов, то используйте фигурные скобки: $ mplayer { song1.mp3 song2.ogg file.wav } -loop 5 Для бесконечного зацикливания используйте параметр 0 ('-loop 0'). Кроме того, имеются много звуковых эффектов-плагинов разработанных специально для обработки многоканального и 3D аудио. Однако, если вы хотите иметь действительно передовые звуковые эффекты воспользуйтесь другим приложением - 'SoX Swiss Army knife'. Вы можете использовать цепочку фильтров для комплексной обработки.
 Цепочка аудио/видео фильтров в MPlayer А что если вам понравилась работа составленной цепочки фильтров и вы хотите сохранить результат в отдельный файл? И это можно. Следующая команда сохранит результат обработки на диск без его проигрывания: $ mplayer -ao pcm:file=filtered.wav -channels 4 -af lavcresample=48000,hrtf,pan=2:1:0:0:0.3:0.5:0.5:0:12 audio.ogg Здесь фильтр 'lavcresample' преобразовывает частоту в 48000 Гц. Другой фильтр 'pan' микширует входящие аудиоканалы в указанные выходные да еще и с разной амплитудой. Объясню подробнее. В этом примере мы также использовали '-channels' для определения четырех входящих каналов. Управление Управлять Mplayer'ом вы можете с помощью клавиатуры, мыши, джойстика и даже дистанционного пульта. Следующая команда предоставит вам список используемых клавиш. Надо сказать, что, по умолчанию, управление программой настроенно неплохо: $ mplayer -input keylist Более подробную информацию по настройки конфигурационых файлов MPlayer input.conf и menu.conf вы сможете найти в файле slave.txt, который идет с пакетом программы. MPlayer также может принимать команды из файла FIFO (First In, First Out). Это пригодится для чтения медиа из стандартного входа: $ mkfifo /tmp/fifo $ cat playlist.txt | mplayer -input file:/tmp/fifo -cache 8192 -playlist Попробуйте, к примеру, следующую команду, для более точного понимания этой возможности: $ echo 'mute' > /tmp/fifo Кроме того, вы можете использовать мышь для стандарных операций. Так, по умолчанию, колесико настроенно на перелистывании файлов в обоих направлениях. OSD Кстати насчет меитодов управления. MPlayer имеет прекрасную поддержку OSD. Я обычно использую масштабируемые шрифты TTF и это дает превосходный результат. К сожалению, на официальном сайте программы вы их не найдете. Вот так вы можете отобразить на экране таймер файла: $ mplayer -osdlevel 3 -font /home/girish/.ttffonts/Comicbd.ttf video.avi  Стандарный вид OSD
Вы можете управлять проигрыванием файлов прямо из меню OSD. Тут даже имеется встроенная консоль для ввода команд Mplayer. Меню OSD  Встроенная консоль  Информация о файле Как вы можете видеть, масштабируемые шрифты отображаются просто великолепно. А вот так можно создать этот тип конфигурации. Вначале необходимо настроить большую часть функций в файле config (~/.mplayer/config): # Write your default config options here! # Use Matrox driver by default. vo=sdl font=/home/girish/.ttffonts/comicbd.ttf vf=hue,eq,screenshot #menu-startup=yes menu=yes subfont-autoscale=3 subfont-osd-scale=8 subfont-text-scale=8 subpos=50 spuaa=4 osdlevel=3 # I love doing headstand (Sirsasana) while watching videos. #flip=yes # Decode/encode multiple files from PNG, # start with mf://filemask mf=type=png:fps=25 # Eerie negative images are cool. #vf=eq2=1.0:-0.8 Конфигурация меню находится в файле menu.conf. Так выглядит секция ответственная за меню показанное выше: <cmdlist name="main" title="MPlayer OSD menu" ptr="<>" > <e name="Pause" ok="pause"/> <e name="Prev/Next" ok="pt_step 1" cancel="pt_step -1"/> <e name="Jump to ..." ok="set_menu jump_to"/> <e name="Open ..." ok="set_menu open_file"/> <e name="Open playlist ..." ok="set_menu open_list"/> <e name="Help" ok="set_menu man"/> <e name="Pref" ok="set_menu pref_main"/> <e name="Properties" ok="set_menu properties"/> <e name="Console" ok="set_menu console0"/> <e name="Quit" ok="quit"/> </cmdlist> Кроме того, вым необходимо указать клавишу в input.conf, которая предназначена для вызова конкретного меню. В следующем примере, меню вызывается щелчком левой кнопки мыши: MOUSE_BTN0 menu main Субтитры MPlayer, помимо распознования 12 сторонних форматов субтитров имеет и свой собственный - MPSub.Я нигде не видел такого количества опций для настройки показа субтитров. Вы можете выводить их на экран в произвольном размере, в любом положении, перемещать по экрану с помощью клавиатуры, изменять прозрачность и даже форматировать. Пример использования (subtitles.txt): FORMAT=TIME # first number : wait this much after # previous subtitle disappeared # second number : display the current # subtitle for this many seconds 2 3 What is going on? 4 3 How are you doing? 8 3 You are wrong! 0 3 A long long, time ago... in a galaxy far away... 0 3 Naboo was under an attack. 0 200 I don't understand this.
Затем укажите программе использовать этот файл: $ mplayer -sub subtitles.txt -font ~/.ttffonts/Verdana.ttf video.avi Следующая команда перегонит субтитры в srt формат и сохранит их в файле dumpsrt.sub в текущей директории: $ mplayer -sub subtitles.txt video.avi -dumpsrtsub Создание скриншотов Хотите делать кскриншоты из MPlayer? Это просто. Выполните ниже приведенную команду и во время проигрывания файла нажатием клавиши S делайте снимки: $ mplayer -vf screenshot video.avi Если вам нужно делать скрины, скажем, каждые пять секунд, то пригодится следующая команда: $ mplayer -vo png -vf screenshot -sstep 5 video.avi А что делать, если хочется перегонять в картинки каждый кадр? Самое простое - использовать механизм FIFO: $ mkfifo /tmp/fifo $ mplayer -input file:/tmp/fifo video.mpg $ echo 'screenshot 1' > /tmp/fifo И под занавес, для снятия скриншотов в full-режиме используйте аргументы '-vf spp,scale=1024:768'. Еще больше мощи! MPlayer способен на гораздо большее.Так вы можете перегнать файлы картинок в видеофайл и наоборот. Вы можете просматривать TV или DVB. Имеется поддержка различных протоколо, таких как:RTP, RTSP, MMS, SDP, LIVE5555. Эта команда выведет список возможных фильтров: $ mplayer -af help Список возможных драйверов видео для вывода: $ mplayer -vo help Вы можете совместить проигрывание звукового файла одновременно с просмотром видео: $ mplayer video.mpg -audiofile audio.aac Естественно, MPlayer поддерживает большое количество форматов аудио и видео файлов. Просто напечатайте: $ mplayer -vo help $ mplayer -ao help Я надеюсь, что эта статья поможет вам проникнуться мощью этой удивительной программы. Наслаждайтесь вашим мультимедийным опытом! Полезные ссылки: MPlayer: mplayerhq.hu MPlayer HTML Documentation: www.mplayerhq.hu/DOCS/HTML-single/en/MPlayer.html MPlayer Tips: freshmeat.net/articles/view/747
|