视频rtmp协议简介
这篇论文里讲得非常详细。下面说说我的理解。
- server端:将视频流按顺序切割为视频+音频合成文件ts,每个ts是视频流的一块,并把ts信息存储在m3u8文件中
- client端:读取m3u8里的内容,并获取ts,处理视频帧,合并成视频流放到内存中。观众从内存里看视频
练习:
- 首先安装ffmpeg和播放器,mac上
brew install ffmpeg --with-ffplay
- 推流,将某个视频流推到我们server上
ffmpeg -re -i "http://amdlive.ctnd.com.edgesuite.net/arirang_1ch/smil:arirang_1ch.smil/playlist.m3u8" -vcodec copy -acodec copy -bsf:a aac_adtstoasc -f flv rtmp://xxx.xxx.xxx:19xx/live/xxx?visible=false
视频流是韩国阿里郎电视节目,推到我们rtmp服务器xxx上
- 播放
ffplay http://xxx.xxx.xxx/live/xxx/playlist.m3u8
client做了很多工作。我们能看到视频前,已经处理好了很多并放到内存中,这个过程是持续不断的,只要没有遇到视频结束信号
sort of, I have some experience in the domain of database(MySQL/mongo), java, python, front-end, etc. I'll willing to give and accept bits of help from others.
now base in Singapore.