背景提要
安全堡垒机中需要保存大量录屏视频,包括操作员的视频操作指导、报错前的故障内容等,由于视频数量多、体积大,而项目需要长时间保存这些视频,这耗尽了存储资源,影响了系统功能的执行。因此考虑对推流视频进行压缩,在保证视频质量的前提下,压缩视频所需的占用空间。此外,经过测试发现ffmpeg视频压缩需要花费大量时间,所以还需实现对视频压缩过程进行加速。
一边猜一边查的测试过程
列出插件信息:
gst-inspect-1.0 --plugin
关于gstreamer的硬件加速:它的CPU是有加速IP核的,而我们项目中厂站使用的CPU是i.MX 8MP,查看Gstreamer参考文档找到可以做硬件加速的相关插件
关于视频压缩的编解码:
查看vpu相关的插件(查找和硬件加速相关的插件):
gst-inspect-1.0 | grep vpu
可执行的加速编解码指令:
gst-launch-1.0 -e filesrc location=/home/kuangan/Videos/vod/5ERBMYNW3D-10.200.255.153-2023-06-02-14:13:04.flv ! flvdemux ! vpudec ! vpuenc_h264 ! mp4mux ! filesink location=/home/kuangan/Videos/vod/5ERBMYNW3D-.mp4
根据GPT的建议,视频压缩指令使用Hantro VPU IP进行硬