1. 下载deb文件并在ubuntu安装
sudo dpkg -i MVS-5.0.1_aarch64_20260512.deb2. 运行MVS报错
sudo /opt/MVS/bin/MVS error while loading shared libraries: libMVRender.so: cannot open shared object file: No such file or directory这个错误是典型的动态链接库(共享库)路径没有被系统找到导致的。MVS程序虽然装好了,但运行时需要的一些.so库文件,系统在默认路径下没找到。解决方法很简单,核心就是把库的路径告诉系统。
创建系统配置文件:
sudo vi /etc/ld.so.conf.d/mvs.conf在文件中添加库路径:根据你实际安装的MVS版本,将正确的库路径写入。对于Jetson (aarch64架构),路径通常是:
/opt/MVS/lib/aarch64 /opt/MVS/lib更新配置:执行以下命令让配置生效:sudo ldconfig
再次运行,报错换成了libCommonTools.so.1,和上一条libMVRender.so错误本质是一样的,都是动态库路径没有被系统找到。libCommonTools.so.1这个库通常也位于/opt/MVS/lib/aarch64或/opt/MVS/lib路径下。
sudo find /opt/MVS -name "libCommonTools.so*" /opt/MVS/bin/libCommonTools.so.1 pi@pi-desktop:/opt/MVS/bin$ ll /opt/MVS/bin/libCommonTools.so.1 -rwxrwxrwx 1 1003 1004 252008 May 12 18:47 /opt/MVS/bin/libCommonTools.so.1* 文件是存在,并且是可执行的最直接、最可靠的启动方法是使用官方的MVS.sh脚本。这个脚本内部已经配置好了所有必要的库路径和环境变量,无需自己手动干预。编辑用户的.bashrc文件:
export LD_LIBRARY_PATH=/opt/MVS/bin:/opt/MVS/lib/aarch64:$LD_LIBRARY_PATH alias mvs='cd /opt/MVS/bin && sudo -E ./MVS.sh'保存后,使配置生效:source ~/.bashrc,以后,只需要在终端输入mvs就能直接启动了。
参数说明:
sudo -E ./MVS.sh # 如果sudo环境不继承当前变量,sudo -E 来保留它。
海康 MVS 的库文件路径设计有些特殊——它把可执行文件和动态库都放在了/opt/MVS/bin/这个目录下。而 Ubuntu 系统默认只会在/usr/lib、/lib以及通过/etc/ld.so.conf配置的路径里查找。因此,即使文件存在,系统也“看不见”它们。手动设置LD_LIBRARY_PATH就是为了显式地告诉系统:“去/opt/MVS/bin/里找找。”
3. MVS中找不到海康相机
通常是用户权限问题
MVS需要访问底层硬件。你可以先把当前用户加入video组,再用sudo启动MVS试试:
sudo usermod -aG video $USER sudo /opt/MVS/bin/MVS4. ubuntu如何播放avi?
MPlayer 对 Qt 界面的依赖很少,很适合用来测试视频文件能否正常解码:
sudo apt install mplayer mplayer Video_20260729125337134.avi这个命令会直接播放视频,不会涉及图形界面的问题。
5. 录制卡顿
USB海康相机,MVS录制视频很卡顿,播放的时候看上去像是丢帧了
检查USB连接与链路
确认USB 3.0连接:请确保相机连接的是Jetson上的蓝色USB 3.0接口。如果插到USB 2.0口上,带宽会严重受限,直接导致卡顿和丢帧。你可以在MVS软件里查看相机状态,如果显示“U2环境”就说明是USB 2.0连接。
线缆与供电:USB线缆过长或质量不好会导致信号衰减,最好使用海康官方推荐的USB线缆。供电不足也可能导致相机工作不稳定。
排查系统层面瓶颈
优先使用硬件编码:播放和录制视频对CPU消耗很大。Jetson有专门的硬件编码器来处理视频,但需要注意的是,Jetson Orin Nano系列的硬件编码器资源有限。你可以检查一下MVS或录制软件是否调用了硬件编码。
尝试开启Jetson高性能模式:Jetson为了省电,默认会限制CPU和GPU频率。可以试试在终端执行
sudo jetson_clocks命令,强制让系统运行在最高性能模式,排除因性能不足导致的丢帧。
命令行录制:更高效
在Jetson上,使用GStreamer命令行管道可以更高效地捕获和编码视频。下面的命令直接从摄像头捕获YUYV格式的视频,并通过硬件编码器(nvvidconv和omxh264enc)处理,最后保存为.mp4:
gst-launch-1.0 v4l2src device=/dev/video0 ! 'video/x-raw,width=1920,height=1080,framerate=30/1' ! nvvidconv ! 'video/x-raw(memory:NVMM),format=NV12' ! omxh264enc ! qtmux ! filesink location=test.mp4
请注意:你需要将命令中的
/dev/video0替换为相机在你系统上的实际设备节点。
另外,如果相机本身支持在内部压缩成MJPEG格式后再通过USB传输,那对带宽的压力会小很多,可以先用v4l2-ctl命令查看相机支持哪些格式。