Comments (2)
ZLMediaKit目前支持rtsp/rtmp推流,这两种推流器分别通过RtspPusher和RtmpPusher对象实现。
为了方便使用,目前已经通过MediaPusher对象对这两者进行了封装。
RtspPusher和RtmpPusher主要实现了推流协议,具体的rtsp和rtmp数据源其实是来自MediaSource类,
对应的类分别是RtspMediaSource和RtmpMediaSource。
RtmpPusher对象在构造时会绑定一个RtmpMediaSource类:
所以你要实现rtmp推流,那么你必须先生成一个RtmpMediaSource类(rtsp推流,则需要生成RtspMediaSource),并且在构造RtmpPusher对象时传入RtmpMediaSource类。
开发者应该使用MediaPusher对象(而不是直接使用RtmpPusher或RtspPusher对象),
MediaPuser支持推rtsp、rtmp流,使用更灵活。
MediaPuser的构造函数跟上述的RtmpPusher对象基本一致:
通过上面的叙述,我们已经解释清楚了推流器的构造方法,那么MediaSource类该怎么构造呢?
目前RtmpMediaSource类可以通过RtmpMediaSourceMuxer对象构造生成(生成的RtmpMediaSource会自动注册到全局的map中),而MultiMediaSourceMuxer对象封装了RtmpMediaSourceMuxer和RtspMediaSourceMuxer的构造方式。
但是MultiMediaSourceMuxer对象接口对于初学者而言比较复杂,
所以初学者可以使用DevChannel类来生成RtmpMediaSource和RtspMediaSource.
你可以先构造DevChannel类,然后往里面输入H264数据和AAC数据,这样它就会自动生成RtmpMediaSource和RtspMediaSource然后自动注册到全局map。
然后通过这个构造函数:
构造MediaPusher对象并开始推流即可。
需要注意的是,DevChannel类构造后并不会马上生成RtmpMediaSource并注册,这个注册机制需要你输入完整的sps pps idr之后才能触发。所以你需要确保输入了这些数据之后,才能构建MediaPusher对象,否则MediaSource::find会返回查找失败。
最后你通过MediaPusher::publish接口开始推流即可(你可以推rtsp和rtmp):
from zlmediakit.
感谢:)
from zlmediakit.
Related Issues (20)
- [技术咨询] 如何提高视频码率 HOT 2
- 添加同一个局域网内ffmpeg推的rtmp流,一直报错-1,end of file HOT 4
- 请问是否支持断掉Hls协议连接的客户端 HOT 3
- [功能请求] Nack的相关控制配置 HOT 2
- 视频播放端口CORS跨域资源共享,请问可以设置吗 HOT 3
- ZlMediaKit支持H.265X的编码吗? HOT 2
- 使用WebRTC无法播放 HOT 2
- allow_cross_domains设置为0但是还是会允许跨域 HOT 5
- 我在使用docker安装完成zlmediakit之后出现问题 HOT 2
- http-flv这个功能没有开放吗 HOT 1
- [功能请求] 增加一个直接分发buffer到外部udp的接口 HOT 1
- 推流无法播放 HOT 1
- java Api中的服务启动事件为什么被注释掉了 HOT 1
- [BUG] 遇到 ZK 崩溃,GDB堆栈如下,有能力的大哥看下找找原因,看能不能解决 HOT 3
- [技术咨询] 请问现在docker版本的Release Note 在哪看? HOT 3
- [技术咨询]输入复合流中音频参数变更,RTSP输出的时候SDP错误 HOT 3
- ZLMediakit 按需拉流rtsp,webrtc可以降低码率吗 HOT 3
- [技术咨询] 部分视频直播时timestamp翻了10倍
- 怎么把RTP流推到ZLMediaKit上的 HOT 5
- rtsp 生成 hls 拉流代理流,延时比较严重,有个7秒左右,请问能怎么通过调整配置进行优化? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from zlmediakit.