音视频 Linux 指令速查

音视频 Linux 指令速查表

核心特点 :均基于瑞芯微 MPP(Media Process Platform) 硬件编解码框架,支持H.264/H.265硬编硬解、RGA 2D图形加速。RV1126 是低功耗IPC芯片,RK3568 是通用嵌入式芯片,指令90%通用,差异处已标注。


一、MPP 官方工具指令(必学,最稳定的硬编硬解)

瑞芯微官方提供的媒体处理工具,比FFmpeg更稳定、性能更好,是开发首选。

1. 基础测试指令

bash 复制代码
# 查看MPP版本和支持的编解码器
mpp_info

# 测试H.264硬解码(输出到屏幕)
mpp_dec_test -i test.h264 -t h264 -f 0

# 测试H.265硬解码
mpp_dec_test -i test.h265 -t h265 -f 0

# 测试H.264硬编码(生成test.h264)
mpp_enc_test -w 1920 -h 1080 -t h264 -o test.h264

# 测试H.265硬编码
mpp_enc_test -w 1920 -h 1080 -t h265 -o test.h265

2. 摄像头直接硬编码(最常用)

bash 复制代码
# 从/dev/video0采集YUYV格式,硬编码为H.264保存
v4l2_capture -d /dev/video0 -w 1920 -h 1080 -f YUYV -r 30 | mpp_enc_test -w 1920 -h 1080 -t h264 -i - -o output.h264

# RV1126 低功耗模式(推荐)
v4l2_capture -d /dev/video0 -w 1280 -h 720 -f NV12 -r 25 | mpp_enc_test -w 1280 -h 720 -t h264 -b 1000000 -i - -o output.h264

3. 多路编码(RK3568支持,RV1126最多2路)

bash 复制代码
# RK3568 同时编码1080P和720P两路
mpp_enc_test -w 1920 -h 1080 -t h264 -o main.h264 &
mpp_enc_test -w 1280 -h 720 -t h264 -o sub.h264 &

二、FFmpeg 硬件加速指令(瑞芯微专属)

注意:必须使用瑞芯微官方编译的FFmpeg,否则没有rkmpp编码器。

1. 编码器名称对照表

芯片 H.264编码器 H.265编码器 解码器
RK3568 h264_rkmpp h265_rkmpp h264_rkmpp, h265_rkmpp
RV1126 h264_rkmpp h265_rkmpp h264_rkmpp, h265_rkmpp

2. 常用示例

bash 复制代码
# 摄像头录制(硬编码,性能最好)
ffmpeg -f v4l2 -i /dev/video0 -c:v h264_rkmpp -b:v 2M output.mp4

# 硬解码播放
ffplay -c:v h264_rkmpp test.mp4

# 转码(硬解+硬编,速度比软编快10倍以上)
ffmpeg -c:v h264_rkmpp -i input.mp4 -c:v h265_rkmpp -b:v 1M output.mp4

# RTSP推流(硬编码,低延迟)
ffmpeg -f v4l2 -i /dev/video0 -c:v h264_rkmpp -b:v 2M -f rtsp rtsp://192.168.1.100:8554/stream

# 拉流保存(硬解码)
ffmpeg -c:v h264_rkmpp -i rtsp://192.168.1.100:8554/stream -c copy save.mp4

# RV1126 优化参数(降低CPU占用)
ffmpeg -f v4l2 -i /dev/video0 -pix_fmt nv12 -c:v h264_rkmpp -b:v 1M -r 25 -g 50 output.mp4

三、GStreamer 硬件加速指令

bash 复制代码
# 摄像头预览(硬解码)
gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,format=NV12,width=1920,height=1080 ! rkximagesink

# 摄像头录制(硬编码)
gst-launch-1.0 v4l2src ! video/x-raw,format=NV12,width=1920,height=1080 ! mpph264enc ! h264parse ! mp4mux ! filesink location=output.mp4

# 播放本地视频(硬解码)
gst-launch-1.0 filesrc location=test.mp4 ! qtdemux ! h264parse ! mppvideodec ! rkximagesink

# RTSP推流(硬编码)
gst-launch-1.0 v4l2src ! video/x-raw,format=NV12,width=1280,height=720 ! mpph264enc ! rtph264pay ! udpsink host=192.168.1.100 port=5004

四、RGA 2D图形加速指令

RGA是瑞芯微的硬件2D加速模块,用于图像缩放、格式转换、旋转等,不占用CPU

bash 复制代码
# 安装RGA工具
apt install librga-dev rga-tools

# 图像格式转换(YUYV转NV12)
rga_convert -i input.yuyv -o output.nv12 -w 1920 -h 1080 -f YUYV -F NV12

# 图像缩放(1920x1080转640x480)
rga_convert -i input.nv12 -o output.nv12 -w 1920 -h 1080 -W 640 -H 480 -f NV12

# 图像旋转(90度)
rga_convert -i input.nv12 -o output.nv12 -w 1920 -h 1080 -f NV12 -r 90

# 叠加水印
rga_blend -i background.nv12 -w 1920 -h 1080 -I logo.rgba -x 100 -y 100 -o output.nv12

五、摄像头调试专属指令

1. MIPI摄像头调试(RV1126/RK3568核心)

bash 复制代码
# 查看所有媒体设备(MIPI摄像头会显示为/media/mediaX)
media-ctl -p

# 查看摄像头拓扑结构
media-ctl -d /dev/media0 --print-dot

# 设置摄像头链路(MIPI摄像头必须先设置链路才能使用)
media-ctl -d /dev/media0 -l '"ov5695 2-0036":0->"rockchip-mipi-csi2":0[1]'

# 查看摄像头支持的格式
v4l2-ctl -d /dev/video0 --list-formats-ext

# 测试摄像头采集(保存原始数据)
v4l2_capture -d /dev/video0 -w 1920 -h 1080 -f NV12 -n 10 -o capture.nv12

2. 常见摄像头问题排查

bash 复制代码
# 查看摄像头驱动加载情况
dmesg | grep -E "ov5695|gc2053|imx335|mipi"

# 查看I2C设备(摄像头I2C地址通常是0x36或0x3c)
i2cdetect -y 2

# 重启摄像头子系统
rmmod ov5695
modprobe ov5695

六、性能监控与调试指令

1. 瑞芯微专属性能工具

bash 复制代码
# 查看CPU温度和频率
cat /sys/class/thermal/thermal_zone0/temp
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq

# 查看GPU负载
cat /sys/class/devfreq/ff9a0000.gpu/load

# 查看MPP硬件占用
cat /proc/mpp/status

# 查看RGA硬件占用
cat /proc/rga/status

2. 系统性能监控

bash 复制代码
# 实时查看所有硬件负载
htop

# 查看内存使用(音视频应用容易内存泄漏)
free -h

# 查看磁盘IO(录制视频时重要)
iostat -x 1

# 查看网络带宽(推流时重要)
iftop -i eth0

七、常见问题排查指令

bash 复制代码
# 问题1:摄像头打不开
ls /dev/video*                  # 查看设备是否存在
lsmod | grep v4l2               # 查看驱动是否加载
dmesg | grep video              # 查看内核日志
chmod 666 /dev/video0           # 检查权限
usermod -aG video root          # 将用户加入video组

# 问题2:硬编码失败
mpp_info                        # 查看MPP是否正常
lsmod | grep mpp                # 查看MPP驱动是否加载
dmesg | grep mpp                # 查看MPP日志

# 问题3:推流卡顿
top                             # 查看CPU占用
iftop                           # 查看网络带宽
ffmpeg -i ... -b:v 1M ...       # 降低码率
ffmpeg -i ... -r 25 ...         # 降低帧率

# 问题4:RV1126发热严重
echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor  # 开启省电模式
ffmpeg -i ... -b:v 500k ...     # 降低码率
ffmpeg -i ... -r 15 ...         # 降低帧率
相关推荐
色空大师2 小时前
【nacos下载安装】
java·linux·nacos·ubantu
凤年徐2 小时前
Linux常用命令详解
java·linux·服务器
SilentSamsara2 小时前
Linux 管道与重定向:命令行精髓的结构性解析
linux·运维·服务器·c++·云原生
the sun342 小时前
NFS 配置全指南 —— 从踩坑到手动挂载的完整落地
linux·运维·服务器·ubuntu
SilentSamsara2 小时前
Shell 脚本进阶:从能跑到写得优雅
linux·运维·服务器·自动化·ssh·bash
xiaoshuaishuai82 小时前
C# 实现“superpowers进化
运维·服务器·windows·c#
孙同学_3 小时前
【项目篇】高并发服务器 - 从 Buffer 到 TcpServer 构建高并发服务器引擎
运维·服务器
SilentSamsara3 小时前
Linux磁盘与存储管理:分区、LVM 与 IO 性能全栈分析
linux·运维·服务器·ssh·shell