当前位置: 首页 > 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的硬件编码能力实现高效的视频流媒体服务。

http://www.xdnf.cn/news/33697.html

相关文章:

  • kafka集群认证
  • NumPy 核心指南:零基础入门与实践
  • 商标起名换了暗示词,通过初审!
  • 边生成边训练:构建合成数据驱动的在线训练系统设计实战
  • XMind 下载指南
  • 基于autoware.1.14与gazebo联合仿真进行全局规划高精地图版
  • 可穿戴经颅多通道直流电刺激产品测试总结
  • 16、堆基础知识点和priority_queue的模拟实现
  • 为什么 waitress 不支持 WebSocket?
  • PyTorch源码编译报错“fatal error: numpy/arrayobject.h: No such file or directory”
  • SEO长尾关键词优化实战
  • velocity模板引擎
  • 【一起学Rust】使用Thunk工具链实现Rust应用对Windows XP/7的兼容性适配实战
  • RoBoflow数据集的介绍
  • JVM笔记【一】java和Tomcat类加载机制
  • PHP怎样连接MySQL数据库?
  • 基于STM32中断讲解
  • 【JDBC-54.5】JDBC批处理插入数据:大幅提升数据库操作性能
  • YOLO拓展-NMS算法
  • GWAS_LD
  • TCP 总是禁用分片(IP_DF,Don‘t Fragment)吗?
  • 基于尚硅谷FreeRTOS视频笔记——9—上下文切换的时机与空闲任务
  • 第10期:Classifier-Free Guidance(CFG)——扩散模型的文本引导增强术
  • pycharm中怎么解决系统cuda版本高于pytorch可以支持的版本的问题?
  • Python 一等函数( 把函数视作对象)
  • 指针----------C语言经典题目(2)
  • 【Docker项目实战】使用Docker部署NotepadMX笔记本工具
  • Feign:调用方与被调用方集成的对比及Feign继承的应用
  • C语言内存管理
  • 6. 话题通信 ---- 使用自定义msg,发布方和订阅方cpp,python文件编写