obs-自定义推流

Posted 蝶泳奈何桥.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了obs-自定义推流相关的知识,希望对你有一定的参考价值。


title: obs-自定义推流
categories: ObsStudio
tags: [推流, 直播, obs]
date: 2022-02-03 13:26:34
comments: false
mathjax: true
toc: true

obs-自定义推流


前篇

  • 简单的局域网直播方案(OBS+Smart_rtmpd) (配置简单易用) - https://blog.csdn.net/yx492366323/article/details/119655366
  • nginx+OBS+VLC实现低延迟局域网推流 - https://xenwayne.top/tech/97.html
  • 搭建nginx rtmp流媒体服务器(超详细) - https://blog.csdn.net/szydwy/article/details/78632222
  • 打造内网低延迟直播系统

协议对比

在查阅资料后找到了以下常用协议:

  • rtmp:娱乐直播平台常见直播协议,便于分发,但延迟较高
    • obs 实测, 同一台电脑都会有 1s 左右的延迟…
  • rtsp:网络摄像机常见直播协议,基于udp或tcp,延迟较低
  • HLS:常用于播放各种节目,可回放,延迟很高
  • webrtc:低延迟的直播协议,但是资料很少,配套推流设施不完善

综上, rtsp 延迟点会好点.


思路

  1. 搭建一个串流服务

    比如: rmtp 协议服务地址 192.168.2.200:1935

  2. obs 推流到 串流服务 上

    文件 -> 设置 -> 推流, 选择 自定义, 然后配置 串流服务 的地址: rtmp://192.168.2.200:1935/live

  3. 客户端 (potplayer/vlc 等) 打开 串流服务: rtmp://192.168.2.200:1935/live/hello (hello 是 串流密钥)

    (如果有 用户名密码, 则地址为: rtmp://用户名:密码@192.168.2.200:1935/live/hello)

    • potplayer

    • vlc


ffmpeg 工具

  • 下载地址: https://github.com/BtbN/FFmpeg-Builds/releases

  • FFmpeg常用推流命令 - https://www.jianshu.com/p/d541b317f71c

  • FFMPEG推流到RTMP服务器命令 - https://blog.csdn.net/u013010310/article/details/52371440


ffmpeg 命令

  • 推流 到 rtsp 服务.

    命令: ffmpeg -re -stream_loop -1 -i H:/output_obs/xichengbian01.mp4 -c copy -f rtsp rtsp://192.168.2.200:8554/mystream

    $ ffmpeg -re -stream_loop -1 -i H:/output_obs/xichengbian01.mp4 -c copy -f rtsp rtsp://192.168.2.200:8554/mystream
    
    ...
    frame= 4299 fps= 60 q=-1.0 size=N/A time=00:01:11.61 bitrate=N/A speed=   1x
    
    • -re : 是以流的方式读取
    • -stream_loop -1 : 表示无限循环读取
    • -i : 就是输入的文件
    • -f : 格式化输出到哪里
  • 从 rtsp 服务 拉流

    命令: ffmpeg -i rtsp://192.168.2.200:8554/mystream -c copy C:/Users/wilker/Desktop/output.mp4

    $ ffmpeg -i rtsp://192.168.2.200:8554/mystream -c copy C:/Users/wilker/Desktop/output.mp4
    
    ...
    frame= 1289 fps= 57 q=-1.0 Lsize=   16242kB time=00:00:23.19 bitrate=5737.3kbits/s speed=1.02x
    
    • -i : 输入推流服务地址

ffplay 命令

  • FFmpeg之ffplay命令使用 - https://blog.csdn.net/xuyankuanrong/article/details/77529468

  • 常用命令

    //1) 播放 test.mp4 ,播放完成后自动退出
    $ ffplay -autoexit test.mp4
    
    //2) 以 320 x 240 的大小播放 test.mp4
    $ ffplay -x 320 -y 240 test.mp4
    
    //3) 将窗口标题设置为 "myplayer",循环播放 2 次
    $ ffplay -window_title myplayer -loop 2 test.mp4
    
    //4) 播放 双通道 32K 的 PCM 音频数据
    $ ffplay -f s16le -ar 32000 -ac 2 test.pcm
    
    
    
    

rtsp 服务器搭建

  • rtsp 系列专题(一)之 rtsp 服务器搭建 - https://xie.infoq.cn/article/123e589178ccb2d74830d5686
    • GitHub - https://github.com/ZLMediaKit/ZLMediaKit
  • linux_手把手教ubuntu搭建rtsp视频推送服务 - https://hexo.yuanjh.cn/hexo/090a8054/

rtsp-simple-server

  • 下载 - https://github.com/aler9/rtsp-simple-server/releases

    • 以 windows 为例 - https://github.com/aler9/rtsp-simple-server/releases/download/v0.17.16/rtsp-simple-server_v0.17.16_windows_amd64.zip
  • RTSP服务器实现推流和拉流例子 - https://blog.csdn.net/li_xue_zhao/article/details/107317509

  • RTMP,RTSP,HLS比较与分析 - https://blog.csdn.net/xiaoliouc/article/details/8613935


使用流程
  1. 直接双击启动

  2. 测试

    1. 推流一个 mp4 文件到 rtsp 协议, 命令: ffmpeg -re -stream_loop -1 -i H:/output_obs/xichengbian01.mp4 -c copy -f rtsp rtsp://192.168.2.200:8554/mystream

      $ ffmpeg -re -stream_loop -1 -i H:/output_obs/xichengbian01.mp4 -c copy -f rtsp rtsp://192.168.2.200:8554/mystream
      ...
      frame=  701 fps= 60 q=-1.0 size=N/A time=00:00:11.66 bitrate=N/A speed=   1x
      
      • 此时会看到服务多了个推流日志, 路径是 mystream

    2. 拉流, 使用 vls 客户端

      文件 -> 打开网络串流, 输入地址: rtsp://192.168.2.200:8554/mystream


obs rtsp 推流实现

obs 不能直接在 推流 中使用 rtsp 协议推流, 不然一旦 开始推流 就会重复 断开 和 连接

有个曲线救国的方式可以实现 obs rtsp 推流, 就是采用录制输出到 url 的方式, 这种方式延迟也是比较大, 还不如直接 rtmp 推流.

  1. 输出 -> 录像 中设置, 修改参数

    1. 输出类型 改为 输出到 url

    2. 容器格式 改为 rtsp

  2. 然后点击 开始录制 就可以实时推流到 rtsp 服务


以上是关于obs-自定义推流的主要内容,如果未能解决你的问题,请参考以下文章

通过obs进行推流

如何用直播摄像机编码器电脑端OBS软件在抖音平台上做推流直播现实背景

如何用直播摄像机编码器电脑端OBS软件在抖音平台上做推流直播现实背景

如何用直播摄像机编码器电脑端OBS软件在抖音平台上做推流直播现实背景

如何用直播摄像机编码器电脑端OBS软件在抖音平台上做推流直播现实背景

OBS第三方推流直播教程