音视频 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 ...         # 降低帧率
相关推荐
IT摆渡者1 小时前
11Panel 部署雷池WAF
linux
学习路上_write1 小时前
Linux黑马命令学习
linux·运维·服务器
yunwei371 小时前
eBPF 教程:追踪 CUDA GPU 操作
linux·后端·性能优化
Android系统攻城狮1 小时前
Linux Gstreamer深度解析之gst_audio_channel_reorder_map调用流程与实战(十八)
linux·运维·服务器·音视频进阶·gstreamer音视频进阶
新时代牛马1 小时前
docker run 起不来?从dockerd、containerd 到runc 一条线讲透
运维·docker·容器
TomEval2 小时前
【App 自动化】14 - App 自动化基础与环境
运维·自动化
新时代牛马2 小时前
Linux 防火墙:nftables 与iptables 兼容层
linux·运维·服务器
xhbh6662 小时前
中小企业 Redis 运维,如何安全归档 RDB、AOF 备份文件?
运维·数据库·缓存·数据备份·文件备份·同步备份·号码备份
是逍遥子没错2 小时前
一个斜杠,击穿整座网关:API网关路径前缀绕过认证实战
运维·服务器·web安全·网络安全·渗透测试·系统安全
其实防守也摸鱼3 小时前
每天一个知识点——RCE漏洞
运维·服务器·数据库·windows·安全·github·漏洞