8.4 多媒体 处理与应用
本节主要解答与地瓜RDK板卡上视频编解码、音频处理以及其他多媒体功能相关的常见疑问。
视频编解码
Q1: 开发板解码RTSP视频流时报错(如下图所示),可能是什么原因?
A: RTSP视频流解码报错,常见原因及解决方法如下:
- 码流缺少PPS和SPS参数信息:
- 原因: 推流服务器推送的RTSP码流(尤其是H.264格式)中必须包含
PPS
(Picture Parameter Set) 和SPS
(Sequence Parameter Set) 参数信息,解码器需要这些信息来正确解析视频。 - 解决方法:
- 如果您使用
ffmpeg
从视频文件(如.mp4
,.avi
)推流,建议在命令中添加-bsf:v h264_mp4toannexb
(H.264 Bitstream Filter: MP4 to Annex B) 选项(注意:较新版本的ffmpeg中-vbsf
已被-bsf:v
替代)。这个过滤器会自动为码流添加PPS
和SPS
信息。ffmpeg
推流命令示例:(请将ffmpeg -re -stream_loop -1 -i xxx.mp4 -c:v copy -bsf:v h264_mp4toannexb -f rtsp rtsp://192.168.1.195:8554/h264_stream
xxx.mp4
替换为您的视频文件名,并将RTSP服务器地址rtsp://192.168.1.195:8554/h264_stream
替换为实际地址。)
- 如果您使用
- 原因: 推流服务器推送的RTSP码流(尤其是H.264格式)中必须包含
- 分辨率支持限制:
- 目前RDK板卡对RTSP视频流的解码可能仅支持到特定的分辨率,例如 1080p (1920x1080)。请确认您的RTSP流分辨率是否在此支持范围内。查阅您板卡型号的具体文档以获取准确支持列表。
- 推流软件兼容性:
- 不推荐使用VLC直接推流: 使用VLC软件直接进行RTSP推流可能无法成功被RDK解码,原因是VLC在某些配置下可能不支持在推流时主动添加或确保
PPS
和SPS
信息。建议使用ffmpeg
或其他能确保码流参数完整性的专业推流工具。
- 不推荐使用VLC直接推流: 使用VLC软件直接进行RTSP推流可能无法成功被RDK解码,原因是VLC在某些配置下可能不支持在推流时主动添加或确保
Audio 常见问题
Q2: RDK板卡上如何区分和使用USB声卡与板载声卡?特别是当同时连接了多种音频设备时。
A: 当RDK板卡上同时连接了板载声卡(例如通过音频子板)和USB声卡时,Linux音频系统(ALSA)会为它们分配不同的声卡序号。您需要知道正确的声卡序号才能精确控制特定的音频设备。
-
查看已识别的声卡及其序号: 使用以下命令可以列出系统中所有已识别的声卡及其对应的序号和名称:
cat /proc/asound/cards