主要内容本章主要内容就是讲解在Linux平台上目前主流的开源播放器以及播放器如何使用硬件加速操作。播放器播放器实质是集成解码编码显示以及后处理可能有功能于一体的工具如果是带UI的播放器那么就需要将播放器进行再次封装方便用户使用。常见的播放器有ffplaympvmplayervlc等。大多数播放器都支持硬件加速功能什么是硬件加速请参考: 硬件加速的概念以下会对部分播放器如何使用硬件加速命令进行举例说明。环境安装和设置首先需要安装依赖库文件//安装图形显示库 sudo apt install libdrm-dev xorg libx11-dev libwayland-dev libwayland-dev libxcb1-dev libx11-xcb-dev libudev-dev libglx-dev //安装VAAPI和VDPAU sudo apt install libva-dev libvdpau-dev //安装VAAPI和VDPAU对应工具 sudo apt install vainfo vdpauinfo查看库文件mpv播放器mpv播放器基本已经支持VAAPI和VDPAU硬件加速标准在Linux系统中使用以下命令即可使用硬件加速播放片源。环境安装//安装工具 sudo apt install mpv查看支持的硬件加速标准其中vaapi和vdpau可以直接使用硬件编解码和显示其他选项只是作为显示输出使用。使用硬件加速播放命令// mpvvaapi mpv --vo vaapi --hwdecvaapi --no-audio videoclips // mpvvdpau mpv --vo vdpau --hwdecvdpau --no-audio videoclipsmplayer播放器mplayer播放器基本支持VDPAU硬件加速标准在Linux系统中使用以下命令即可使用硬件加速播放片源。环境安装//安装工具 sudo apt install mplayer查看支持的硬件加速标准mplayer -vc help |grep vdpau使用硬件加速播放命令// mlayervdpau mplayer -vo vdpau -ao null -vc ffxxx_vdpau videoclips(xxx代表编码类型如hevc,h264 vc1等)gstreamer播放器gstremaer播放器基本已经支持VAAPI插件在Linux系统中使用以下命令即可使用硬件加速播放片源。环境安装//安装gstreamer基本工具 sudo apt install gstreamer-tools gstreamer1.0-libav gstreamer0.10-nice gstreamer1.0-vaapi gstreamer0.10-alsa gstreamer1.0-x //安装gstreamer插件库 sudo apt install gstreamer1.0-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-bad gstreamer0.10-plugins-ugly环境变量设置export GST_VAAPI_ALL_DRIVERSXXX(XXX为驱动前缀如iHD,i965)查看gstreamer的信息//查看gstreamer版本 gst-inspect-1.0 --version 或者 gst-launch-1.0 --gst-version //查看vaapi插件 gst-inspect-1.0 vaapi使用硬件加速播放命令MP4播放gst-launch-1.0 filesrc locationvideopath ! qtdemux ! vaapidecodebin ! vaapisink MKV播放gst-launch-1.0 filesrc locationvideopath ! matroskademux ! vaapidecodebin ! vaapisink AVI播放gst-launch-1.0 filesrc locationvideopath ! avidemux ! vaapidecodebin ! vaapisink //使用playbin自动搜寻demuxdecoder和sink //使用top命令查看CPU占用率确定软解还是硬解 视频播放gst-launch-1.0 playbin urifile:videopath //打开调试信息 视频播放gst-launch-1.0 playbin urifile:videopath --gst-debug-level7 视频播放gst-launch-1.0 playbin urifile:videopath --gst-debugvaapisink:7,vaapi:5查看管线图//安装工具 sudo apt-get install graphviz //指定dot图位置 export GST_DEBUG_DUMP_DOT_DIR/tmp/ //播放视频 gst-launch-1.0 playbin urifile:videopath //将dot图转化为png图 dot -Tpng -o test1.png /tmp/xxx.dot移除插件黑名单//当vaapi加载错误时会将其加入黑名单使用命令查看黑名单 gst-inspect-1.0 -b //删除gstreamer的cache文件 //arch 代表系统架构 x86_64,arm等 rm ~/.cache/gstreamer-1.0/registry.arch.binffmpeg播放器ffmpeg基本已经支持VAAPI和VDPAU但是ffplayVAAPI和VDPAU不一定支持在Linux系统中使用以下命令即可使用硬件加速但是由于ffplay无法使用VAAPI和VDPAU进行解码播放所以只能使用ffmpeg进行硬件解码截图操作。环境安装//安装工具 sudo apt install ffmpeg查看支持的硬件加速标准ffmpeg -hwaccels查看支持的硬件解码器使用硬件加速标准截图//使用vaapi硬件标准对videopath的video截取开始位置到之后2秒的图像每秒25帧输出名称为output_xxxx.png //xxxx为00010002以此类推总计图像为50帧 ffmpeg -r 25 -ss 0 -t 2 -hwaccel vaapi -i videopath output_%4d.png //也可以截取不同格式的图片 ffmpeg -r 25 -ss 0 -t 2 -hwaccel vaapi -i videopath -pix_fmt yuv444p/yuv422p/yuv420p/yuyv422 output_%4d.yuv //也可以截取一定数量的图片 ffmpeg -ss 0 -t 2 -hwaccel vaapi -i videopath -pix_fmt yuv444p/yuv422p/yuv420p/yuyv422 -vframes 10 output_%4d.yuv //显示yuyv格式图片 ffplay -i test.yuv -pix_fmt yuv444p -s 640x480
阅读完成 · 觉得有帮助?