MPlayer — это мультимедийный проигрыватель с открытым исходным кодом, который может работать в основных версиях Linux, Windows и Mac OS. Он в основном широко используется в системах Linux; MPlayer не только поддерживает графический интерфейс, но также поддерживает воспроизведение из командной строки. В этой статье рассказывается, как кросс-компилировать MplayerJ и пересадить его на встроенную плату разработки, чтобы нормально запускать видео в командной строке, а структура драйвера кадрового буфера, используемая ЖК-экраном, визуализирует изображение.
Плата разработки использует плату разработки Tiny4412 компании Friendly Arm. MCU — EXYNOS4412 компании Samsung. Разрешение ЖК-дисплея, подключенного к плате, составляет 800*480, интерфейс инфраструктуры драйвера кадрового буфера, версия ядра Linux — 3.5, система не имеет графического интерфейса. , а файловая система: Использование минимальной корневой файловой системы, созданной busybox, позволяет сделать всю систему относительно оптимизированной. Кросс-компилятор использует Arm-Linux-GCC версии 4.5.1.
При запуске Mplayer из командной строки он поддерживает два режима работы: главный режим и подчиненный режим. Главный режим — это обычный режим, который отслеживает события клавиатуры и обеспечивает полное отключение звука, увеличение и уменьшение громкости, управление субтитрами, ускоренную перемотку вперед. в соответствии с сочетаниями клавиш на клавиатуре. Отступите и дождитесь операции. Если вы хотите, чтобы основной процесс управлял проигрывателем с помощью кода для выполнения определенных операций воспроизведения, вы можете использовать подчиненный режим для воспроизведения. В подчиненном режиме вы можете взаимодействовать с mplayer через каналы для завершения загрузки видео, паузы, остановки, быстрой перемотки вперед и т. д. перемотка и т.п. Функция.
По умолчанию MPlayer использует встроенную библиотеку mp3lib для декодирования mp3, но процессоры серии ARM обычно не имеют модулей арифметики с плавающей запятой. mp3lib, используемая mplayer для декодирования mp3, по умолчанию является библиотекой арифметики с плавающей запятой. на руке, поэтому пересаживается. Вам нужно перед mplayer скомпилировать библиотеку libmad.
libmad — это библиотека высокоточного декодирования звука MPEG с открытым исходным кодом. LIBMAD обеспечивает 24-битный вывод PCM, который полностью выполняет вычисления с фиксированной запятой и очень подходит для использования на платформах без поддержки плавающей запятой. Используя ряд API, предоставляемых libmad, вы можете очень просто реализовать декодирование данных MP3. В файле mad.h в каталоге исходного кода libmad вы можете увидеть большинство структур данных и API библиотеки.
Адрес загрузки: http://www.linuxfromscratch.org/blfs/view/svn/multimedia/libmad.html
(1) Разархивируйте
[root@xiaolong video]# tar xvf libmad-0.15.1b.tar.gz
[root@xiaolong video]# cd libmad-0.15.1b
(2) Настройте и сгенерируйте Makefile.
[root@xiaolong libmad-0.15.1b]# ./configure CC=arm-linux-gcc --enable-fpm=arm --host=arm-linux --disable-shared --disable-debugging --prefix=$(pwd)/_install
--prefix=$(pwd)/_
install указывает путь установки окончательно сгенерированного файла библиотеки.
(3) Изменить Makefile
Удалите -fforce-mem примерно в строке 29 Makefile.
Или измените его напрямую с помощью команды:
sed -i 's/-fforce-mem/ /g' Makefile
Найдите в документации -fforce-mem и ничем не замените его.
(4) Скомпилируйте и установите
[root@xiaolong libmad-0.15.1b]# make && make install
(5) Просмотр успешно скомпилированных файлов
[root@xiaolong libmad-0.15.1b]# cd _install/
[root@xiaolong _install]# ls
include lib
Есть две папки, include и lib, и в соответствующих папках генерируются файлы mad.h и libmad.a. Эти два файла используются для компиляции mplayer.
Адрес загрузки: http://www.mplayerhq.hu/design7/news.html
(1) Разархивируйте установку.
[root@xiaolong video]# tar xvf MPlayer-1.3.0.tar.gz
[root@xiaolong MPlayer-1.3.0]# cd MPlayer-1.3.0
(2) Настройте и создайте файл config.mak.
[root@xiaolong MPlayer-1.3.0]# ./configure --prefix=$PWD/mplayer_installdir --cc=arm-linux-gcc --host-cc=gcc --target=arm-linux --enable-cross-compile --enable-mad --disable-gui --disable-menu --disable-x11 --yasm="" --extra-cflags=-I/work/video/libmad-0.15.1b/_install/include --extra-ldflags=-L/work/video/libmad-0.15.1b/_install/lib/ 2>&1 |tee logfile
Пути, указанные выше с помощью -I и -L, представляют собой пути, созданные при компиляции и установке библиотеки libmad. Заполните путь в соответствии с вашим собственным путем к библиотеке libmad.
(3) Измените файл config.mak.
Удалите параметр -s в строке 33 файла config.mak.
[root@xiaolong MPlayer-1.3.0]# gedit config.mak +33
(4) Скомпилируйте и установите
[root@xiaolong MPlayer-1.3.0]# make && make install
Скомпилируйте и установить После успеха,Вы получите исполняемый файл mplayer.,Это программа командной строки для плеера,Бегите, чтобы воспроизвести видео.
(1). Копирование зависимых библиотек.
Копирование зависимостей означает, что вам нужно найти все файлы библиотеки, необходимые при запуске команды mplayer, и скопировать их в каталог /lib платы разработки.
Затем скопируйте команду исполняемого файла mplayer в каталог /bins платы разработки.
[root@xiaolong MPlayer-1.3.0]# cp mplayer /work/rootfs/bin/ -fv
[root@xiaolong /]#
cp /work/arm-linux-gcc/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/usr/lib/libncurses*.so* /work/rootfs/lib/ -rf
[root@xiaolong /]#
cp /work/arm-linux-gcc/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/usr/lib/libpng*.so* /work/rootfs/lib/ -rf
[root@xiaolong /]#
cp /work/arm-linux-gcc/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/usr/lib/libasound*.so* /work/rootfs/lib/ -rf
[root@xiaolong /]#
cp /work/arm-linux-gcc/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/usr/lib/libz.so* /work/rootfs/lib/ -rf
[root@xiaolong /]#
cp /work/arm-linux-gcc/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/usr/lib/libjpeg.so* /work/rootfs/lib/ -rf
[root@xiaolong /]#
cp /work/arm-linux-gcc/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/usr/lib/libfreetype.so* /work/rootfs/lib/ -rf
(2) Тестовое воспроизведение видео
[root@XiaoLong /]# mplayer xiaomaolv.mp4 -zoom -x 800 -y 480
mplayer: команда воспроизведения видео, созданная mplayer. xiaomaolv.mp4: Файл воспроизводимого видео. -zoom -x 800 -y 480: размер масштабирования видео
Игра в фоновом режиме:
[root@XiaoLong /]# mplayer -slave -quiet -fs /video_mp3/xiaomaolv.mp4 &
(3) Измените позицию воспроизведения по умолчанию в mplayer.
Измените исходный код:
[root@xiaolong MPlayer-1.3.0]# vim libmpcodecs/vf_vo.c +184