SRS(简单实时视频服务) 笔记(5)- 视频录制

本文介绍了在SRS中实现视频录制的两种方法:实时录制和DVR录制。实时录制利用ffmpeg命令行操作,存在延时问题;DVR录制通过预先录制并分段,能减少时间误差但依赖于DVR文件管理。SRS支持RTMP流录制为FLV文件,配置HTTP回调以实现更复杂的操作。
摘要由CSDN通过智能技术生成

1. 背景

在SRS使用中实现视频录制功能。

2. 思路

方案1:实时方式

  • 拍照:操作者点击拍照按钮,触发网络请求,后端收到请求后启动一个ffmpeg 命令行进行截图。

  • 录像:操作者点击开始录像按钮,触发网络请求,后端收到请求后启动一个ffmpeg 命令行录像,待操作者点击结束录像按钮后录像完成。

  • 方案优点:容易实现

  • 方案缺点:操作和响应的延时,即点击按钮后,约有2-5秒延迟(网络响应时间+ffmpeg启动时间+ffmpeg打开流时间+ffmpeg拍照响应时间。 争议:看到的视频的当前播放内容(时间) != 点击按钮时间 != ffmpeg拍照时间

方案2:DVR录制后拍照和截取

  • 前提:开启DVR功能,对每一个来自客户端发布的流都录制,并以时间分段成多个物理文件,然后就可以操作文件截图和截取视频了。

  • 拍照:点击按钮获得点击时间,从已经完成的DVR文件中识别文件名(包含了时间),读取文件后按指定时间差值截图。

  • 录像:获得 开始录制时间和结束录制时间。从已完成的DVR文件中识别文件名(包含了时间),读取文件截取时间段内的截图。

  • 方案优点:相比较于 方案1,时间误差的延迟小。

  • 方案缺点:依赖于DVR录制后的文件。需要考虑DVR临时录制文件的清理处置。

3. 实现

DVR 视频录制: SRS支持将RTMP流录制成FLV或MP4文件。下面的描述以FLV为例。

 【学习地址】:FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发
【文章福利】:免费领取更多音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值