暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

linux最小系统中MPlayer视频播放器移植的详细流程

txp玩Linux 2021-11-17
790

MPlayer能播放几乎所有流行的音频和视频格式,相对其它播放器来说,资源占用非常少。在嵌入式领域,在不支持QT以及没有上安卓的系统环境中,使用MPlayer可以完成DRM驱动程序的验证和调试,轻松播放音视频文件。

1. 下载资源

1.1 下载zlib

http://www.zlib.net/

下载1.2.11版本

1.2 下载alsa

https://www.alsa-project.org/files/pub/lib/

下载1.2.2版本的alsa

1.3 下载mplayer

http://www.mplayerhq.hu/MPlayer/releases/

下载1.4版本

2.编译

在如下路径创建四个文件夹,用以存放上述的三个源码以及编译出来的库文件。

2.1 zlib

以下操作的路径如下:

linux:zlib-1.2.11$ pwd
/home/ubuntu16/mplayer/zlib/zlib-1.2.11

  1. 配置zlib
linux:zlib-1.2.11$ CC=arm-none-linux-gnueabi-gcc  ./configure --prefix=/home/ubuntu16/mplayer/lib/zlib/
Checking for shared library support...
Building shared library libz.so.1.2.11 with arm-none-linux-gnueabi-gcc.
Checking for size_t... Yes.
Checking for off64_t... Yes.
Checking for fseeko... Yes.
Checking for strerror... Yes.
Checking for unistd.h... Yes.
Checking for stdarg.h... Yes.
Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf().
Checking for vsnprintf() in stdio.h... Yes.
Checking for return value of vsnprintf()... Yes.
Checking for attribute(visibility) support... Yes.

  1. 编译zlib
linux:zlib-1.2.11$ make
arm-none-linux-gnueabi-gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -I. -c -o example.o test/example.c
arm-none-linux-gnueabi-gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o adler32.o adler32.c
arm-none-linux-gnueabi-gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o crc32.o crc32.c
arm-none-linux-gnueabi-gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o deflate.o deflate.c
arm-none-linux-gnueabi-gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o infback.o infback.c
arm-none-linux-gnueabi-gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o inffast.o inffast.c
arm-none-linux-gnueabi-gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o inflate.o inflate.c
arm-none-linux-gnueabi-gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o inftrees.o inftrees.c
arm-none-linux-gnueabi-gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o trees.o trees.c
arm-none-linux-gnueabi-gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o zutil.o zutil.c
arm-none-linux-gnueabi-gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o compress.o compress.c
arm-none-linux-gnueabi-gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o uncompr.o uncompr.c
arm-none-linux-gnueabi-gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o gzclose.o gzclose.c
arm-none-linux-gnueabi-gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o gzlib.o gzlib.c
arm-none-linux-gnueabi-gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o gzread.o gzread.c
arm-none-linux-gnueabi-gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -c -o gzwrite.o gzwrite.c
ar rc libz.a adler32.o crc32.o deflate.o infback.o inffast.o inflate.o inftrees.o trees.o zutil.o compress.o uncompr.o gzclose.o gzlib.o gzread.o gzwrite.o
arm-none-linux-gnueabi-gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o example example.o -L. libz.a
arm-none-linux-gnueabi-gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -I. -c -o minigzip.o test/minigzip.c
arm-none-linux-gnueabi-gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o minigzip minigzip.o -L. libz.a
arm-none-linux-gnueabi-gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/adler32.o adler32.c
arm-none-linux-gnueabi-gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/crc32.o crc32.c
arm-none-linux-gnueabi-gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/deflate.o deflate.c
arm-none-linux-gnueabi-gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/infback.o infback.c
arm-none-linux-gnueabi-gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/inffast.o inffast.c
arm-none-linux-gnueabi-gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/inflate.o inflate.c
arm-none-linux-gnueabi-gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/inftrees.o inftrees.c
arm-none-linux-gnueabi-gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/trees.o trees.c
arm-none-linux-gnueabi-gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/zutil.o zutil.c
arm-none-linux-gnueabi-gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/compress.o compress.c
arm-none-linux-gnueabi-gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/uncompr.o uncompr.c
arm-none-linux-gnueabi-gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/gzclose.o gzclose.c
arm-none-linux-gnueabi-gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/gzlib.o gzlib.c
arm-none-linux-gnueabi-gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/gzread.o gzread.c
arm-none-linux-gnueabi-gcc -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN  -DPIC -c -o objs/gzwrite.o gzwrite.c
arm-none-linux-gnueabi-gcc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map -O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o libz.so.1.2.11 adler32.lo crc32.lo deflate.lo infback.lo inffast.lo inflate.lo inftrees.lo trees.lo zutil.lo compress.lo uncompr.lo gzclose.lo gzlib.lo gzread.lo gzwrite.lo  -lc
rm -f libz.so libz.so.1
ln -s libz.so.1.2.11 libz.so
ln -s libz.so.1.2.11 libz.so.1
arm-none-linux-gnueabi-gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o examplesh example.o -L. libz.so.1.2.11
arm-none-linux-gnueabi-gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o minigzipsh minigzip.o -L. libz.so.1.2.11
arm-none-linux-gnueabi-gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -I. -D_FILE_OFFSET_BITS=64 -c -o example64.o test/example.c
arm-none-linux-gnueabi-gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o example64 example64.o -L. libz.a
arm-none-linux-gnueabi-gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -I. -D_FILE_OFFSET_BITS=64 -c -o minigzip64.o test/minigzip.c
arm-none-linux-gnueabi-gcc -O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -o minigzip64 minigzip64.o -L. libz.a
linux:zlib-1.2.11$

  1. 安装zlib
linux:zlib-1.2.11$ make install
rm -f /home/ubuntu16/mplayer/lib/zlib//lib/libz.a
cp libz.a /home/ubuntu16/mplayer/lib/zlib//lib
chmod 644 /home/ubuntu16/mplayer/lib/zlib//lib/libz.a
cp libz.so.1.2.11 /home/ubuntu16/mplayer/lib/zlib//lib
chmod 755 /home/ubuntu16/mplayer/lib/zlib//lib/libz.so.1.2.11
rm -f /home/ubuntu16/mplayer/lib/zlib//share/man/man3/zlib.3
cp zlib.3 /home/ubuntu16/mplayer/lib/zlib//share/man/man3
chmod 644 /home/ubuntu16/mplayer/lib/zlib//share/man/man3/zlib.3
rm -f /home/ubuntu16/mplayer/lib/zlib//lib/pkgconfig/zlib.pc
cp zlib.pc /home/ubuntu16/mplayer/lib/zlib//lib/pkgconfig
chmod 644 /home/ubuntu16/mplayer/lib/zlib//lib/pkgconfig/zlib.pc
rm -f /home/ubuntu16/mplayer/lib/zlib//include/zlib.h /home/ubuntu16/mplayer/lib/zlib//include/zconf.h
cp zlib.h zconf.h /home/ubuntu16/mplayer/lib/zlib//include
chmod 644 /home/ubuntu16/mplayer/lib/zlib//include/zlib.h /home/ubuntu16/mplayer/lib/zlib//include/zconf.h
linux:zlib-1.2.11$

2.2 alsa-lib

创建/usr/local/mplayer
文件夹

linux:zlib-1.2.11$ sudo mkdir /usr/local/mplayer
[sudo] password for ubuntu16:
linux:zlib-1.2.11$ ls /usr/local/mplayer
linux:zlib-1.2.11$

以下操作所在的路径是:

/home/ubuntu16/mplayer/alsa-lib/alsa-lib-1.2.2

  1. 配置alsa-lib
./configure --host=arm-none-linux-gnueabi CC=arm-none-linux-gnueabi-gcc --enable-shared --disable-python --prefix=/usr/local/mplayer

结果log

config.status: creating modules/Makefile
config.status: creating modules/mixer/Makefile
config.status: creating modules/mixer/simple/Makefile
config.status: creating alsalisp/Makefile
config.status: creating aserver/Makefile
config.status: creating test/Makefile
config.status: creating test/lsb/Makefile
config.status: creating utils/Makefile
config.status: creating utils/alsa-lib.spec
config.status: creating utils/alsa.pc
config.status: creating utils/alsa-topology.pc
config.status: creating include/config.h
config.status: executing depfiles commands
config.status: executing libtool commands
Creating asoundlib.h...

  1. 编译
make

编译时会报下面的错误

timer_hw.c: In function 'snd_timer_hw_open':
timer_hw.c:249:17: error: '__kernel_long_t' undeclared (first use in this function)

解决方法:
在timer_local.h中增加如下代码:

#ifndef __kernel_long_t
typedef long        __kernel_long_t;
typedef unsigned long    __kernel_ulong_t;
#endif

再次编译,结果如下:

make[1]: Leaving directory '/home/ubuntu16/mplayer/alsa-lib/alsa-lib-1.2.2/aserver'
Making all in test
make[1]: Entering directory '/home/ubuntu16/mplayer/alsa-lib/alsa-lib-1.2.2/test'
Making all in .
make[2]: Entering directory '/home/ubuntu16/mplayer/alsa-lib/alsa-lib-1.2.2/test'
make[2]: Nothing to be done for 'all-am'.
make[2]: Leaving directory '/home/ubuntu16/mplayer/alsa-lib/alsa-lib-1.2.2/test'
Making all in lsb
make[2]: Entering directory '/home/ubuntu16/mplayer/alsa-lib/alsa-lib-1.2.2/test/lsb'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/ubuntu16/mplayer/alsa-lib/alsa-lib-1.2.2/test/lsb'
make[1]: Leaving directory '/home/ubuntu16/mplayer/alsa-lib/alsa-lib-1.2.2/test'
Making all in utils
make[1]: Entering directory '/home/ubuntu16/mplayer/alsa-lib/alsa-lib-1.2.2/utils'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/ubuntu16/mplayer/alsa-lib/alsa-lib-1.2.2/utils'
make[1]: Entering directory '/home/ubuntu16/mplayer/alsa-lib/alsa-lib-1.2.2'
make[1]: Nothing to be done for 'all-am'.
make[1]: Leaving directory '/home/ubuntu16/mplayer/alsa-lib/alsa-lib-1.2.2'
linux:alsa-lib-1.2.2$

  1. 安装
    切换到root用户,导入环境变量。
su root
root@linux:/home/ubuntu16/mplayer/alsa-lib/alsa-lib-1.2.2# export PATH=/opt/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/:$PATH

安装

make install

结果Log:

Making install in utils
make[1]: Entering directory '/home/ubuntu16/mplayer/alsa-lib/alsa-lib-1.2.2/utils'
make[2]: Entering directory '/home/ubuntu16/mplayer/alsa-lib/alsa-lib-1.2.2/utils'
make[2]: Nothing to be done for 'install-exec-am'.
 /bin/mkdir -p '/usr/local/mplayer/share/aclocal'
 /usr/bin/install -c -m 644 alsa.m4 '/usr/local/mplayer/share/aclocal'
 /bin/mkdir -p '/usr/local/mplayer/lib/pkgconfig'
 /usr/bin/install -c -m 644 alsa.pc alsa-topology.pc '/usr/local/mplayer/lib/pkgconfig'
make[2]: Leaving directory '/home/ubuntu16/mplayer/alsa-lib/alsa-lib-1.2.2/utils'
make[1]: Leaving directory '/home/ubuntu16/mplayer/alsa-lib/alsa-lib-1.2.2/utils'
make[1]: Entering directory '/home/ubuntu16/mplayer/alsa-lib/alsa-lib-1.2.2'
make[2]: Entering directory '/home/ubuntu16/mplayer/alsa-lib/alsa-lib-1.2.2'
make[2]: Nothing to be done for 'install-exec-am'.
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/home/ubuntu16/mplayer/alsa-lib/alsa-lib-1.2.2'
make[1]: Leaving directory '/home/ubuntu16/mplayer/alsa-lib/alsa-lib-1.2.2'
root@linux:/home/ubuntu16/mplayer/alsa-lib/alsa-lib-1.2.2#

2.3 MPlayer

  1. 配置 创建配置脚本
#!/bin/sh 
./configure \
 --enable-cross-compile --prefix=/usr/local/mplayer \
 --cc=arm-none-linux-gnueabi-gcc  --ar=arm-none-linux-gnueabi-ar  --as=arm-none-linux-gnueabi-as \
 --ranlib=arm-none-linux-gnueabi-ranlib \
 --target=arm-armv7-linux \
 --prefix=./build \
 --enable-alsa \
 --extra-cflags="-I/home/ubuntu16/mplayer/lib/zlib/include -I/usr/local/mplayer/include/" \
 --extra-ldflags="-L/home/ubuntu16/mplayer/lib/zlib/lib -L/usr/local/mplayer/lib -lasound" \
 --enable-ass \
 --host-cc=gcc \
 --enable-fbdev --disable-dvdread \
 --disable-dvdnav --disable-jpeg --disable-tga \
 --disable-pnm --disable-tv --disable-ivtv \
 --disable-xanim --disable-win32dll --disable-armv5te --disable-armv6 \
 --disable-png  2>&1 |tee logfile

执行cfg.sh,结果log:

'make' will now compile MPlayer and 'make install' will install it.
Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.

NOTE: Win32 codec DLLs are not supported on your CPU (arm) or your
operating system (armv7). You may encounter a few files that cannot
be played due to missing open source video/audio codec support.

Check config.log if you wonder why an autodetection failed (make sure
development headers/packages are installed).

NOTE: The --enable-* parameters unconditionally force options on, completely
skipping autodetection. This behavior is unlike what you may be used to from
autoconf-based configure scripts that can decide to override you. This greater
level of control comes at a price. You may have to provide the correct compiler
and linker flags yourself.
If you used one of these options (except --enable-menu and similar ones that
turn on internal features) and experience a compilation or linking failure,
make sure you have passed the necessary compiler/linker flags to configure.

If you suspect a bug, please read DOCS/HTML/en/bugreports.html.

linux:MPlayer-1.4$

  1. 编译
make

编译错误:

./libavcodec/error_resilience.h:23:23: fatal error: stdatomic.h: No such file or directory

交叉编译工具链4.6版本低。

解决办法:交叉编译工具链所限制,换MPlayer 1.3

查看编译出来的MPlayer。

3. 验证

3.1 拷贝库文件

以上文件拷贝到目标文件系统的/usr/lib/ 目录下

linux:zlib$ ls
include  lib  share
linux:zlib$ cp -rfa lib/ /home/ubuntu16/itop4412_rootfs/system/usr/
linux:zlib$ pwd
/home/ubuntu16/mplayer/lib/zlib
linux:zlib$

3.2 拷贝mplayer

在MPlayer1.3根目录下有mplayer文件

3.3 拷贝alsa-lib

linux:zlib$ sudo cp /usr/local/mplayer/lib/libasound.so.2.0.0 /home/ubuntu16/itop4412_rootfs/system/lib/

创建软连接

linux:system$ cd usr/lib/
linux:lib$ ls
libasound.so.2.0.0  libz.a  libz.so  libz.so.1  libz.so.1.2.11  pkgconfig
linux:lib$ ln -s libasound.so.2.0.0 libasound.so.2
linux:lib$ ll
total 3296
drwxrwxr-x 3 ubuntu16 ubuntu16    4096 11月  3 09:16 ./
drwxrwxrwx 6 ubuntu16 ubuntu16    4096 11月  3 08:52 ../
lrwxrwxrwx 1 ubuntu16 ubuntu16      18 11月  3 09:16 libasound.so.2 -> libasound.so.2.0.0*
-rwxr-xr-x 1 ubuntu16 ubuntu16 3135672 11月  3 09:16 libasound.so.2.0.0*
-rw-r--r-- 1 ubuntu16 ubuntu16  108578 11月  2 18:45 libz.a
lrwxrwxrwx 1 ubuntu16 ubuntu16      14 11月  2 18:45 libz.so -> libz.so.1.2.11*
lrwxrwxrwx 1 ubuntu16 ubuntu16      14 11月  2 18:45 libz.so.1 -> libz.so.1.2.11*
-rwxr-xr-x 1 ubuntu16 ubuntu16  110891 11月  2 18:45 libz.so.1.2.11*
drwxrwxr-x 2 ubuntu16 ubuntu16    4096 11月  2 18:45 pkgconfig/
linux:lib$ pwd
/home/ubuntu16/itop4412_rootfs/system/usr/lib
linux:lib$

/usr/local

接下来把 /usr/local/
目录下的 整个mplayer目录 拷贝到 开发板的/usr/local/

linux:zlib$ mkdir -p /home/ubuntu16/itop4412_rootfs/system/usr/local
linux:zlib$
linux:zlib$
linux:zlib$ sudo cp /usr/local/mplayer/
bin/     include/ lib/     share/
linux:zlib$ sudo cp /usr/local/mplayer/ -raf /home/ubuntu16/itop4412_rootfs/system/usr/local
linux:zlib$ ls /home/ubuntu16/itop4412_rootfs/system/usr/local
mplayer

上板验证

mplayer -vo fbdev2 demo.mp4

OK

[root@iTOP-4412]# mplayer -vo fbdev2 demo.mp4
MPlayer 1.3.0-4.6.2 (C) 2000-2016 MPlayer Team

Playing demo.mp4.
libavformat version 57.25.100 (internal)
libavformat file format detected.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xbe8050]Protocol name not provided, cannot determine if input is local or a network protocol, buffers and access patterns cannot be configured optimally without knowing the protocol
[lavf] stream 0: video (h264), -vid 0
[lavf] stream 1: audio (aac), -aid 0, -alang und
VIDEO:  [H264]  1416x858  24bpp  30.000 fps  1160.9 kbps (141.7 kbyte/s)
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
libavcodec version 57.24.102 (internal)
Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264)
==========================================================================
Clip info:
 major_brand: mp42
 minor_version: 512
 compatible_brands: isomiso2avc1mp41
 creation_time: 2019-01-22 00:00:35
Load subtitles in ./
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
AUDIO: 44100 Hz, 2 ch, floatle, 2.1 kbit/0.07% (ratio: 258->352800)
Selected audio codec: [ffaac] afm: ffmpeg (FFmpeg AAC (MPEG-2/MPEG-4 Audio))
==========================================================================
[AO OSS] audio_setup: Can'
t open audio device /dev/dsp: No such file or directory
[AO_ALSA] alsa-lib: confmisc.c:767:(parse_card) cannot find card '0'
[AO_ALSA] alsa-lib: conf.c:4693:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
[AO_ALSA] alsa-lib: confmisc.c:392:(snd_func_concat) error evaluating strings
[AO_ALSA] alsa-lib: conf.c:4693:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
[AO_ALSA] alsa-lib: confmisc.c:1246:(snd_func_refer) error evaluating name
[AO_ALSA] alsa-lib: conf.c:4693:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
[AO_ALSA] alsa-lib: conf.c:5181:(snd_config_expand) Evaluate error: No such file or directory
[AO_ALSA] alsa-lib: pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM default
[AO_ALSA] Playback open error: No such file or directory
DVB card number must be between 1 and 4
AO: [null] 44100Hz 2ch floatle (4 bytes per sample)
Starting playback...
Could not find matching colorspace - retrying with -vf scale...
Opening video filter: [scale]
Movie-Aspect is undefined - no prescaling applied.
[swscaler @ 0xe2f400]bicubic scaler, from yuv420p to bgra using C
[swscaler @ 0xe2f400]No accelerated colorspace conversion found from yuv420p to bgra.
[swscaler @ 0xe2f400]using unscaled yuv420p -> bgra special converter
VO: [fbdev2] 1416x858 => 1416x858 BGRA
A:   3.6 V:   1.6 A-V:  2.015 ct:  0.040   0/  0 125% 95%  8.4% 50 0


           ************************************************
           **** Your system is too SLOW to play this!  ****
           ************************************************

Possible reasons, problems, workarounds:
- Most common: broken/buggy _audio_ driver
  - Try -ao sdl or use the OSS emulation of ALSA.
  - Experiment with different values for -autosync, 30 is a good start.
- Slow video output
  - Try a different -vo driver (-vo help for a list) or try -framedrop!
- Slow CPU
  - Don't try to play a big DVD/DivX on a slow CPU! Try some of the lavdopts,
    e.g. -vfm ffmpeg -lavdopts lowres=1:fast:skiploopfilter=all.
- Broken file
  - Try various combinations of -nobps -ni -forceidx -mc 0.
- Slow media (NFS/SMB mounts, DVD, VCD etc)
  - Try -cache 8192.
- Are you using -cache to play a non-interleaved AVI file?
  - Try -nocache.
Read DOCS/HTML/en/video.html for tuning/speedup tips.
If none of this helps you, read DOCS/HTML/en/bugreports.html.

A:  15.0 V:  15.0 A-V:  0.023 ct:  0.839   0/  0 112% 93%  3.7% 209 0


Exiting... (End of file)
[root@iTOP-4412]#





END


扫描二维码添,共同学习讨论

--- 往期精彩内容 ---
linux中基于DRM的图形显示系统概述

kernel图显系统里DRM模块的注册与绑定

一文讲述| kernel图显系统的DRM CRTC模块

一文讲述 | kernel图显系统的DRM PLANE模块

一文讲述| kernel图显系统的DRM ENCODER和CONNECTOR模块

带你走进程序员眼中的“像素”世界,深入理解图显系统中的RGB与YUV


欢迎点赞在看,让知识传递下去


文章转载自txp玩Linux,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论