当前位置: 首页 > news >正文

在RK3588上使用SRS流媒体服务器

在RK3588上使用SRS流媒体服务器

SRS(Simple Realtime Server)是一款开源的流媒体服务器,支持RTMP、WebRTC、HLS、HTTP-FLV等多种协议。在RK3588平台上部署SRS可以实现高效的视频流媒体服务。

SRS在RK3588上的安装

1. 安装依赖

sudo apt update
sudo apt install -y git gcc g++ make cmake perl

2. 克隆SRS源码

git clone https://github.com/ossrs/srs.git
cd srs/trunk

3. 编译安装

./configure --with-arm-ubuntu20 --with-ssl --with-hls --with-http-server --with-http-api
make -j$(nproc)
sudo make install

配置SRS

基本配置

编辑配置文件 /usr/local/srs/conf/srs.conf:

listen              1935;
max_connections     1000;
daemon              on;
pid                 ./objs/srs.pid;
srs_log_tank        file;
srs_log_file        ./objs/srs.log;http_api {enabled         on;listen          1985;
}http_server {enabled         on;listen          8080;dir             ./objs/nginx/html;
}rtc_server {enabled on;listen 8000;candidate $CANDIDATE_IP;
}vhost __defaultVhost__ {hls {enabled         on;hls_path       ./objs/nginx/html;hls_fragment   10;hls_window     60;}
}

针对RK3588硬件编码的优化配置

如果使用RK3588的硬件编码器,可以添加以下配置:

vhost __defaultVhost__ {transcode {enabled     on;ffmpeg      ./objs/ffmpeg/bin/ffmpeg;engine rk {enabled         on;vcodec          h264_rkmpp;vbitrate        1500;vfps            30;vwidth          1280;vheight         720;vthreads        4;vprofile        main;vpreset         fast;vparams {g               60;keyint_min      60;}acodec          aac;abitrate        128;asample_rate    44100;achannels       2;aparams {}output          rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];}}
}

启动SRS服务

sudo /usr/local/srs/objs/srs -c /usr/local/srs/conf/srs.conf

使用示例

推流到SRS

使用FFmpeg推流:

ffmpeg -re -i input.mp4 -c:v h264_rkmpp -c:a aac -f flv rtmp://localhost/live/stream1

播放流媒体

  • RTMP播放: rtmp://localhost/live/stream1
  • HTTP-FLV播放: http://localhost:8080/live/stream1.flv
  • HLS播放: http://localhost:8080/live/stream1.m3u8

RK3588特定优化

  1. 硬件编码支持:

    • 使用h264_rkmpp编码器可以利用RK3588的硬件编码能力
    • 安装MPP库以启用硬件加速
  2. 性能调优:

    echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
    
  3. 内存管理:

    • 调整SRS的worker进程数以匹配RK3588的8核CPU
    • 在配置中增加worker_processes 4;

常见问题解决

  1. 端口冲突:

    • 检查1935(RTMP)、8080(HTTP)、1985(API)端口是否被占用
  2. 权限问题:

    • 确保SRS有权限访问编码设备/dev/mpp_service
  3. 硬件编码失败:

    • 检查是否安装了正确的MPP驱动
    • 尝试使用软件编码libx264进行测试

通过以上步骤,您可以在RK3588平台上成功部署和优化SRS流媒体服务器,充分利用RK3588的硬件编码能力实现高效的视频流媒体服务。

相关文章:

  • 精益数据分析(6/126):深入理解精益分析的核心要点
  • 【java实现+4种变体完整例子】排序算法中【快速排序】的详细解析,包含基础实现、常见变体的完整代码示例,以及各变体的对比表格
  • MATLAB 控制系统设计与仿真 - 41
  • 整合SSM——(SpringMVC+Spring+Mybatis)
  • 蓝桥杯 蜗牛 动态规划
  • 面向对象程序设计(双语)|| 实验六:文件(Java版)
  • FFmpeg+Nginx+VLC打造M3U8直播
  • Win 11 重装 Ubuntu 双系统方法
  • 基于Fabric.js的选座布局系统开发笔记
  • 【Linux】43.网络基础(2.5)
  • FPGA IO引脚 K7-认知4
  • 基于MTF的1D-2D-CNN-GRU-Attention时序图像多模态融合的故障识别,适合研究学习(Matlab完整源码和数据),附模型研究报告
  • vmare识别不到共享文件夹,报错:fuse: bad mount point `/mnt/hgfs‘: No such file or directory
  • 2563.统计公平数对的数目 是否顺序无关?
  • 利用 Deepseek 和 Mermaid 画流程图
  • 软件开发指南——GUI 开发方案推荐
  • LeetCode --- 154双周赛
  • 当算力遇上马拉松:一场科技与肉身的极限碰撞
  • JSAPI2.1-DOM基础
  • 【网络技术_域名解析DNS】三、DNS 中间件实践应用与优化策略
  • 北京潮白河大桥发生火情:部分桥体受损,现场已双向断路
  • 国际货币基金组织报告:将今年全球经济增长预期由此前的3.3%下调至2.8%
  • 什么是中国好手艺?材美、工巧、器韵、时宜
  • 上海与丰田汽车签署战略合作协议,雷克萨斯纯电动汽车项目落子金山
  • 全球安全倡议提出三周年,外交部介绍有关情况
  • 成都市政府秘书长王忠诚调任遂宁市委副书记