Difference between revisions of "APITestPage"

From FriendlyELEC WiKi
Jump to: navigation, search
(updated by API)
(updated by API)
Line 1: Line 1:
===Use ffmpeg===
+
===mpv播放器===
Both FriendlyCore and FriendlyDesktop systems are built-in ffmpeg, with bin file, static libraries, and header files, all stored in the /usr/ffmpeg-rkmp directory. <br />
+
FriendlyCore预装了基于 ffmpeg 实现的命令行视频播放器,除了 mpv 播放器本身,也包含了 libmpv 库文件,方便在程序里调用。<br />
ffmpeg supports the RockChip MPP, for details, please refer to: https://trac.ffmpeg.org/wiki/HWAccelIntro <br /><br />
+
mpv播放器支持 Rockchip MPP,所以支持4K硬解播放,mpv的参数较多,为了简化使用,我们提供了一个脚本 '''start-mpv''',简化后,只要传文件名给它,就可以播放视频了:
Test the decoding performance of 4K video:
+
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
/usr/ffmpeg-rkmp/bin/ffmpeg -benchmark -loglevel 48 -vcodec h264_rkmpp -i 4K-Chimei-inn-60mbps.mp4 -map 0:v:0 -f null -
+
start-mpv /home/pi/demo.mp4
 
</syntaxhighlight>
 
</syntaxhighlight>
The results are shown below:<br />
+
需要注意的是,播放时需要使用pi用户登录,因为其它用户的目录里没有mpv相关的设置,当然你可以从pi用户目录复制一份过来也是可以的,mpv的设置文件存放在以下路径:
[[File:rk3399-ffmpeg-fps.jpg|frameless|500px]]<br />
+
<syntaxhighlight lang="bash">
To play the video, you can use the ffmpeg-based player mpv. The 4K video used for the above test can be found in the test-video directory of the network disk. The network address is http://dl.friendlyarm.com/nanopct4.
+
/home/pi/.config/mpv/mpv.conf
 +
</syntaxhighlight>
 +
mpv.conf的文件内容如下所示:
 +
<syntaxhighlight lang="bash">
 +
vo=gpu
 +
gpu-context=drm
 +
hwdec=rkmpp
 +
demuxer-max-bytes=41943040
 +
demuxer-max-back-bytes=41943040
 +
drm-osd-plane-id=1
 +
drm-video-plane-id=0
 +
audio-device=alsa/default:CARD=rockchiphdmi
 +
</syntaxhighlight>
 +
这些都是比较重要的,会传递给 mpv 的参数,其中hwdec需要指定为rkmpp才能开启硬件解码,audio-device用于指定音频输出设备,默认输出到HDMI,你可以用以下命令来查询系统中有哪些音频设备:
 +
<syntaxhighlight lang="bash">
 +
mpv --audio-device=help
 +
</syntaxhighlight>
 +
另一个比较重要的参数是 drm-osd-size,当全屏播放视频时,drm-osd-size指定为屏幕的分辨率即可,这个参数由start-mpv自动获取屏幕参数并传给mpv,start-mpv脚本除此之外,还会做一件更重要的事情,它需要保证系统中的 libmali 库用了正确的版本,因为 mpv 是通过 gbm 来渲染画面的,所以 libmali.so 需要使用这个版本: libmali-midgard-t86x-r14p0-gbm.so 才能正常工作,这也意味着,这个版本的mpv只能在FriendlyCore下使用,不能在X11 Desktop下使用,具体细节可以自已查看 start-mpv 的脚本内容。<br />
 +
mpv使用说明:https://github.com/mpv-player/mpv/wiki <br />

Revision as of 10:13, 20 December 2018

mpv播放器

FriendlyCore预装了基于 ffmpeg 实现的命令行视频播放器,除了 mpv 播放器本身,也包含了 libmpv 库文件,方便在程序里调用。
mpv播放器支持 Rockchip MPP,所以支持4K硬解播放,mpv的参数较多,为了简化使用,我们提供了一个脚本 start-mpv,简化后,只要传文件名给它,就可以播放视频了:

start-mpv /home/pi/demo.mp4

需要注意的是,播放时需要使用pi用户登录,因为其它用户的目录里没有mpv相关的设置,当然你可以从pi用户目录复制一份过来也是可以的,mpv的设置文件存放在以下路径:

/home/pi/.config/mpv/mpv.conf

mpv.conf的文件内容如下所示:

vo=gpu
gpu-context=drm
hwdec=rkmpp
demuxer-max-bytes=41943040
demuxer-max-back-bytes=41943040
drm-osd-plane-id=1
drm-video-plane-id=0
audio-device=alsa/default:CARD=rockchiphdmi

这些都是比较重要的,会传递给 mpv 的参数,其中hwdec需要指定为rkmpp才能开启硬件解码,audio-device用于指定音频输出设备,默认输出到HDMI,你可以用以下命令来查询系统中有哪些音频设备:

mpv --audio-device=help

另一个比较重要的参数是 drm-osd-size,当全屏播放视频时,drm-osd-size指定为屏幕的分辨率即可,这个参数由start-mpv自动获取屏幕参数并传给mpv,start-mpv脚本除此之外,还会做一件更重要的事情,它需要保证系统中的 libmali 库用了正确的版本,因为 mpv 是通过 gbm 来渲染画面的,所以 libmali.so 需要使用这个版本: libmali-midgard-t86x-r14p0-gbm.so 才能正常工作,这也意味着,这个版本的mpv只能在FriendlyCore下使用,不能在X11 Desktop下使用,具体细节可以自已查看 start-mpv 的脚本内容。
mpv使用说明:https://github.com/mpv-player/mpv/wiki