音视频 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 ...         # 降低帧率
相关推荐
木卫二号Coding4 小时前
推荐Linux统计文件大小并操作删除工具-ncdu
linux·运维·服务器
志栋智能5 小时前
超自动化运维:实现IT服务消费化的基础
运维·自动化
198******126345 小时前
2026企业AI办公工具选型指南:从评估框架到场景适配
大数据·运维·人工智能
吴声子夜歌5 小时前
Nginx应用与运维——Nginx HTTP模块详解(数据处理功能模块)
运维·nginx·http
zhangrelay5 小时前
机械臂末端规划智能模型的误区演示
linux·笔记·学习·ubuntu·ros2
2601_967212725 小时前
专利型电源轨道系统技术路线对比与选型框架
大数据·运维·网络·经验分享
youdexiang6 小时前
iOS版本语音转文字工具:音频识别原理
音视频
数字化顾问6 小时前
(138页PPT)流程体系的建设优化与运营(附下载方式)
大数据·运维·人工智能
2601_967287577 小时前
轮胎侧壁上的 91V 是什么意思,负荷指数与速度级别怎么看
运维·服务器·汽车
Ivanqhz7 小时前
正余弦位置编码(Sinusoidal Positional Encoding)
java·linux·数据库