zoukankan      html  css  js  c++  java
  • 使用ffmpeg -re循环推流(循环读取视频文件)推送EasyDSS RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器的方法

    需求分析

    众所周知,EasyDSS与EasyNVR最大的区别是,EasyDSS被动接受前端设备的推流,将推送过来的直播流进行直播转码、智能处理、视频分发,在通过CDN分发节点分发到终端播放SDK。而EasyNVR则是通过RTSP协议,主动拉取前端设备的直播流,同样分发出RTMP、HTTP-FLV、HLS、RTSP格式的直播流。EasyDSS前端采用的是一套调用简单、功能完善、高效稳定的EasyRTMP推流组件,支持RTMP推送断线重连、环形缓冲、智能丢帧、网络事件回调,支持Windows、Linux、ARM、Android、iOS平台,支持市面上绝大部分的RTMP流媒体服务器,能够完美应用于各种行业的直播需求,手机直播、桌面直播、摄像机直播、课堂直播等方面。
    EasyDSS

    在做EasyDSS开发时,重点测试推流效果,可以使用libEasyRTMP进行推流测试,可以使用OBS进行推流测试,也可以使用其他RTMP推流工具,效果都很好。但是,别忘了还有ffmpeg这个神器,ffmpeg同样可以获取各种视频流,并推送给EasyDSS RTMP流媒体服务器。

    比如:拉取摄像机RTSP流,推送给EasyDSS,命令在此:

    ffmpeg -re -i rtsp://username:password@ip:port/xxxxxxx -vcodec copy -acodec copy -f flv -y rtmp://easydssip:easydssport/live/test
    

    当然,这个命令仅限于摄像机提供的H.264+AAC的码流

    • 若不是则将-vcodec copy改为-vcodec libx264-acodec copy改为-acodec aac
    • 若是,我们想用ffmpeg读取文件进行RTMP推送,可以选择OBS,毕竟ffmpeg比OBS更轻量,命令在此:
     ffmpeg -re -i test.h264 -vcodec copy -acodec copy -f flv -y rtmp://easydssip:easydssport/live/test
    

    -vcodec和-acodec按需更改同拉取RTSP流,这样可以满足我们推送文件到EasyDSS的目的。

    如果我想一直循环读取文件,做个长测呢?

    解决方案

     ffmpeg -re  -stream_loop -1 -i test.h264 -vcodec copy -acodec copy -f flv -y rtmp://easydssip:easydssport/live/test
    

    对比发现,以上命令加了一个-stream_loop -1,它是什么作用呢?

    EasyDSS

    https://ffmpeg.org/ffmpeg-all.html#Main-options

    我们明白了此选项可以指定循环读取视频源的次数,-1为无限循环,以上问题就此完美解决。

    关于EasyDSS

    EasyDSS商用流媒体服务器提供一站式的转码、点播、直播、时移回放服务,极大地简化了开发和集成的工作,并且EasyDSS支持多种特性,完全能够满足企业视频信息化建设方面的需求:

    • 多屏播放:支持Flash、HTML5播放,兼容Windows、Android、iOS、Mac等操作系统。

    • 自由组合:EasyDSS软件产品之间无缝对接,也可将EasyDSS流媒体服务器软件与其他第三方平台对接,组合灵活自由。

    • 支持云架构:支持阿里云、腾讯云、华为云、青云、七牛云存储等各大云服务商,支持云架构,部署更灵活。

    • 与CDN无缝对接:EasyDSS软件产品支持与网宿、帝联、蓝汛等CDN无缝对接。

    • 二次开发简单:提供编程语言无关化的RESTful API接口,只要了解JS、HTML、JAVA、ASP.NET、PHP、ASP等开发语言中的任意一种,就能运用EasyDSS提供的RESTful API进行二次开发。

    • 简单易用:图形化操作,模块清晰,流程简单,极易上手。

    EasyDarwin如何支持点播和RTMP/HLS直播?EasyDSS!

    适用场景

    EasyDSS

    在这里插入图片描述
    EasyDSS

  • 相关阅读:
    #2051:Bitset(进制转化)
    #2054:A == B ?(水题坑人)
    #2045:不容易系列之三LELE的RPG难题(dp递推)
    #2037:今年暑假不AC
    #2036:改革春风吹满地
    OJ中的语言选项里G++ 与 C++的区别
    如何在CSDN上如何快速转载博客
    Python之路(第八篇)Python内置函数、zip()、max()、min()
    Python编程笔记(第一篇)Python基础语法
    Python之路(第七篇)Python作用域、匿名函数、函数式编程、map函数、filter函数、reduce函数
  • 原文地址:https://www.cnblogs.com/babosa/p/11123988.html
Copyright © 2011-2022 走看看