【音视频】zlmediakit总结一

目录

推拉流理论

推拉流测试

按需拉流测试

ffplay直接播放云录相

webrtc 使用

实操

cmake专题

相关知识     

问题

参考资料



推拉流理论

  推流:将直播的内容推送至服务器的过程。

  拉流:指服务器已有直播内容,用指定地址进行拉取的过程。

  拉流,即是指服务器里面有流媒体视频文件;

    但zlmediakit里也有个广义的拉流概念如下。对于用户而言,确实是拉流的,但实现的过程,依然是通过了sip服务器进行触发设备“主动”推流,这块对用户是透明的,所以他感觉 是一个拉流过程 。因为对于摄像头而言,它没有事先存视频。 下面两个图,一个是支持被拉的,就拉流了,一个不支持的,就触发推流。



推拉流测试


   ffmpeg   推流使用
 ffmpeg -re -i "/opt/zlm/11.mp4" -vcodec h264 -acodec aac -f flv rtmp://127.0.0.1/live/test2

ffmpeg -re -i "/opt/zlm/11.mp4" -vcodec h264 -acodec aac -f flv rtmp://127.0.0.1/live/test2

服务器可以看到

2023-03-30 14:44:47.809 I MediaServer[13-event poller 23] MediaSource.cpp:461 emitEvent | 媒体注册:rtmp __defaultVhost__ live test2
2023-03-30 14:44:47.884 D MediaServer[13-event poller 23] MediaSink.cpp:136 emitAllTrackReady | all track ready use 2574ms
2023-03-30 14:44:47.884 I MediaServer[13-event poller 23] MediaSource.cpp:461 emitEvent | 媒体注册:fmp4 __defaultVhost__ live test2
2023-03-30 14:44:47.884 I MediaServer[13-event poller 23] MultiMediaSourceMuxer.cpp:329 onAllTrackReady | stream: rtmp://127.0.0.1:1935/live/test2 , codec info: mpeg4-generic[48000/1/16] H264[544/960/29] 
2023-03-30 14:44:47.884 I MediaServer[13-event poller 23] MediaSource.cpp:461 emitEvent | 媒体注册:rtsp __defaultVhost__ live test2
2023-03-30 14:44:47.885 I MediaServer[13-event poller 23] MediaSource.cpp:461 emitEvent | 媒体注册:ts __defaultVhost__ live test2
2023-03-30 14:44:56.463 I MediaServer[13-event poller 23] MediaSource.cpp:461 emitEvent | 媒体注册:hls __defaultVhost__ live test2

我们可以在JessDemo里面放这个地址(参考资料里url组成) 

ws://10.30.2.8:6080/live/test2.live.flv


 也可以使用ffplay 

D:\java\xiachu\bin>ffplay rtmp://10.30.2.8:10935/live/test2

按需拉流测试

   ws://10.30.2.8:6080/rtp/44010200492000000002_34020000001310000002.live.flv
我们是通过wvp sip 调用摄像头拉起的,按上文方法,它这个播放器就可以拉起了rtsp等
ffplay?看是否可以直接拉流

D:\java\xiachu\bin>ffplay rtsp://10.30.2.8:10554/rtp/44010200492000000002_34020000001310000002
ffplay rtmp://10.30.2.8:10935/rtp/44010200492000000002_34020000001310000002

如图一所画,如果摄像头支持rtsp,rtmp拉流,就可以,实验说明不行;

所以我们可以通过sip 主动推起后,让这个地址,都可以播放

ffplay直接播放云录相

也可以,这也可以算成一种 拉流。
D:\java\xiachu\bin>ffplay http://10.30.2.8:6080/record/rtp/44010200492000000002_34020000001310000002/2023-03-30/09%3A32%3A45-09%3A32%3A54-9994.mp4
也可以播放

webrtc 使用

https://www.bilibili.com/video/BV1Eg411N7TJ/?vd_source=513f4714cefb8d7c46b9fdc5d529d655
android webrtc 正好可以看为什么连不上。
在线测试
https://github.com/ZLMediaKit/ZLMediaKit/wiki/%E5%9C%A8%E7%BA%BF%E6%B5%8B%E8%AF%95

对webrtc的配置(证书 ,开启)
    生成SSL自签名证书并测试 · ZLMediaKit/ZLMediaKit Wiki (github.com)
    10443->443  6080->80(不影响 )

实操

(1) rtsp

  ffplay rtsp://10.60.100.196:554/live/test

(2)rtmp 

  ffplay rtmp://10.60.100.196:1935/live/test

(3) ws 

 ws://10.60.100.196/live/test.live.flv

(4) wss 

 wss://10.60.100.196:443/live/test.live.flv

cmake专题

 https://blog.csdn.net/qq_43257914/article/details/128409831
doc-new\80-部门管理\16-网管开发组\80-培训内容\c++相关
cmake_tutorial_complete.pdf

相关知识
     

    各种帧的介绍
https://blog.csdn.net/qq_21438461/article/details/125576733

问题

    android连webrtc时出现的 
java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
https://blog.csdn.net/kingyc123456789/article/details/108006601
 

参考资料

概念-

(98条消息) 【流媒体】推流与拉流简介_推流拉流什么意思_No8g攻城狮的博客-CSDN博客

ZLMediaKit实现按需拉流 · ZLMediaKit/ZLMediaKit Wiki (github.com)

使用ZLMediaKit实现按需推流 · ZLMediaKit/ZLMediaKit Wiki (github.com)

ffmpeg ffplay工具的下载相关

夏楚/FFmpeg (gitee.com)
FFmpeg实战:ffplay介绍及入门使用 (360doc.com)

Releases · BtbN/FFmpeg-Builds (github.com)
 

推流播放

ZLMediaKit推流测试 · ZLMediaKit/ZLMediaKit Wiki (github.com)

播放url规则 · ZLMediaKit/ZLMediaKit Wiki (github.com)

(20条消息) WebRTC中的SDP-CSDN博客 

一篇文章读懂流媒体传输协议RTP、RTCP、RTSP、SRTP&SRTCP_rtp流_FeelTouch Labs的博客-CSDN博客

 同步源标识符(Synchronization Source Identifier,SSRC)域的长度为32位。它用来标识RTP信息包流的起源,在RTP会话或者期间的每个信息包流都有一个清楚的SSRC。SSRC不是发送端的IP地址,而是在新的信息包流开始时源端随机分配的一个号码

猜你喜欢

转载自blog.csdn.net/dualvencsdn/article/details/129862096