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

一口Linux 2021-11-09 00:00

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 


关注,回复【1024】海量Linux资料赠送

精彩文章合集

文章推荐

【专辑】ARM
【专辑】粉丝问答
【专辑】所有原创
专辑linux入门
专辑计算机网络
专辑Linux驱动
【干货】嵌入式驱动工程师学习路线
【干货】Linux嵌入式所有知识点-思维导图


点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看

一口Linux 写点代码,写点人生!
评论
  • 日前,商务部等部门办公厅印发《手机、平板、智能手表(手环)购新补贴实施方案》明确,个人消费者购买手机、平板、智能手表(手环)3类数码产品(单件销售价格不超过6000元),可享受购新补贴。每人每类可补贴1件,每件补贴比例为减去生产、流通环节及移动运营商所有优惠后最终销售价格的15%,每件最高不超过500元。目前,京东已经做好了承接手机、平板等数码产品国补优惠的落地准备工作,未来随着各省市关于手机、平板等品类的国补开启,京东将第一时间率先上线,满足消费者的换新升级需求。为保障国补的真实有效发放,基于
    华尔街科技眼 2025-01-17 10:44 123浏览
  • 电竞鼠标应用环境与客户需求电竞行业近年来发展迅速,「鼠标延迟」已成为决定游戏体验与比赛结果的关键因素。从技术角度来看,传统鼠标的延迟大约为20毫秒,入门级电竞鼠标通常为5毫秒,而高阶电竞鼠标的延迟可降低至仅2毫秒。这些差异看似微小,但在竞技激烈的游戏中,尤其在对反应和速度要求极高的场景中,每一毫秒的优化都可能带来致胜的优势。电竞比赛的普及促使玩家更加渴望降低鼠标延迟以提升竞技表现。他们希望通过精确的测试,了解不同操作系统与设定对延迟的具体影响,并寻求最佳配置方案来获得竞技优势。这样的需求推动市场
    百佳泰测试实验室 2025-01-16 15:45 227浏览
  • 一个易用且轻量化的UI可以大大提高用户的使用效率和满意度——通过快速启动、直观操作和及时反馈,帮助用户快速上手并高效完成任务;轻量化设计则可以减少资源占用,提升启动和运行速度,增强产品竞争力。LVGL(Light and Versatile Graphics Library)是一个免费开源的图形库,专为嵌入式系统设计。它以轻量级、高效和易于使用而著称,支持多种屏幕分辨率和硬件配置,并提供了丰富的GUI组件,能够帮助开发者轻松构建出美观且功能强大的用户界面。近期,飞凌嵌入式为基于NXP i.MX9
    飞凌嵌入式 2025-01-16 13:15 193浏览
  • 晶台光耦KL817和KL3053在小家电产品(如微波炉等)辅助电源中的广泛应用。具备小功率、高性能、高度集成以及低待机功耗的特点,同时支持宽输入电压范围。▲光耦在实物应用中的产品图其一次侧集成了交流电压过零检测与信号输出功能,该功能产生的过零信号可用于精确控制继电器、可控硅等器件的过零开关动作,从而有效减小开关应力,显著提升器件的使用寿命。通过高度的集成化和先进的控制技术,该电源大幅减少了所需的外围器件数量,不仅降低了系统成本和体积,还进一步增强了整体的可靠性。▲电路示意图该电路的过零检测信号由
    晶台光耦 2025-01-16 10:12 95浏览
  • 随着智慧科技的快速发展,智能显示器的生态圈应用变得越来越丰富多元,智能显示器不仅仅是传统的显示设备,透过结合人工智能(AI)和语音助理,它还可以成为家庭、办公室和商业环境中的核心互动接口。提供多元且个性化的服务,如智能家居控制、影音串流拨放、实时信息显示等,极大提升了使用体验。此外,智能家居系统的整合能力也不容小觑,透过智能装置之间的无缝连接,形成了强大的多元应用生态圈。企业也利用智能显示器进行会议展示和多方远程合作,大大提高效率和互动性。Smart Display Ecosystem示意图,作
    百佳泰测试实验室 2025-01-16 15:37 168浏览
  • 80,000人到访的国际大展上,艾迈斯欧司朗有哪些亮点?感未来,光无限。近日,在慕尼黑electronica 2024现场,ams OSRAM通过多款创新DEMO展示,以及数场前瞻洞察分享,全面展示自身融合传感器、发射器及集成电路技术,精准捕捉并呈现环境信息的卓越能力。同时,ams OSRAM通过展会期间与客户、用户等行业人士,以及媒体朋友的深度交流,向业界传达其以光电技术为笔、以创新为墨,书写智能未来的深度思考。electronica 2024electronica 2024构建了一个高度国际
    艾迈斯欧司朗 2025-01-16 20:45 141浏览
  • 百佳泰特为您整理2025年1月各大Logo的最新规格信息,本月有更新信息的logo有HDMI、Wi-Fi、Bluetooth、DisplayHDR、ClearMR、Intel EVO。HDMI®▶ 2025年1月6日,HDMI Forum, Inc. 宣布即将发布HDMI规范2.2版本。新规范将支持更高的分辨率和刷新率,并提供更多高质量选项。更快的96Gbps 带宽可满足数据密集型沉浸式和虚拟应用对传输的要求,如 AR/VR/MR、空间现实和光场显示,以及各种商业应用,如大型数字标牌、医疗成像和
    百佳泰测试实验室 2025-01-16 15:41 157浏览
  • 随着消费者对汽车驾乘体验的要求不断攀升,汽车照明系统作为确保道路安全、提升驾驶体验以及实现车辆与环境交互的重要组成,日益受到业界的高度重视。近日,2024 DVN(上海)国际汽车照明研讨会圆满落幕。作为照明与传感创新的全球领导者,艾迈斯欧司朗受邀参与主题演讲,并现场展示了其多项前沿技术。本届研讨会汇聚来自全球各地400余名汽车、照明、光源及Tier 2供应商的专业人士及专家共聚一堂。在研讨会第一环节中,艾迈斯欧司朗系统解决方案工程副总裁 Joachim Reill以深厚的专业素养,主持该环节多位
    艾迈斯欧司朗 2025-01-16 20:51 107浏览
  • 实用性高值得收藏!! (时源芯微)时源专注于EMC整改与服务,配备完整器件 TVS全称Transient Voltage Suppre,亦称TVS管、瞬态抑制二极管等,有单向和双向之分。单向TVS 一般应用于直流供电电路,双向TVS 应用于电压交变的电路。在直流电路的应用中,TVS被并联接入电路中。在电路处于正常运行状态时,TVS会保持截止状态,从而不对电路的正常工作产生任何影响。然而,一旦电路中出现异常的过电压,并且这个电压达到TVS的击穿阈值时,TVS的状态就会
    时源芯微 2025-01-16 14:23 151浏览
  • 近期,智能家居领域Matter标准的制定者,全球最具影响力的科技联盟之一,连接标准联盟(Connectivity Standards Alliance,简称CSA)“利好”频出,不仅为智能家居领域的设备制造商们提供了更为快速便捷的Matter认证流程,而且苹果、三星与谷歌等智能家居平台厂商都表示会接纳CSA的Matter认证体系,并计划将其整合至各自的“Works with”项目中。那么,在本轮“利好”背景下,智能家居的设备制造商们该如何捉住机会,“掘金”万亿市场呢?重认证快通道计划,为家居设备
    华普微HOPERF 2025-01-16 10:22 174浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦