初步记录实现流媒体播放。
流媒体身边太常见了,比如网易云音乐、qq音乐、爱奇艺、哔哩哔哩之类的,只要是媒体数据在服务器上,动态的传输到客户端进行播放的都算是流媒体。实现流媒体的视频播放是最简单的,表现得现象是:ffmpeg安装完后默认就是视频流,实际我想实现得是纯音频流,类似于音乐播放软件一样仅播放歌曲,目前还在进一步研究中,这里初步记录流媒体得实现。
NG+FFmpeg组合实现流媒体,那么NG和FFmpeg到底在其中实现了什么:
NG:功能就只是网络入口,虽然NG得rtmp模块存在,但实际上,rtmp模块也只是作为一个服务端数据入口,这个入口对接客户端,默认端口是1935,当客户端访问1935数据,验证正确的信息后,客户端就可以获取1935这个端口的数据,而1935端口数据来源,这是等待rtmp模块推送的。所以NG+NG-rtmp模块功能只是做通信而已。
FFmpeg:这是一个软件,准确的叫做一个工具,此工具里面又分多个软件。这个工具的作用是把视频、音频进行解码、转换、切片、最后推送到指定位置。指定位置可以是本地文件夹进行数据输出,也可以是NG的rtmp数据接口位置。所以当FFmpeg把数据处理完后发送到ng的1935端口,客户就可以在1935端口获取数据,获取数据后再进行解码操作即实现流媒体播放。
FFmpeg工具超级强大,关于他的书籍也很多,本人也刚开始研究。对我的理解来看,切片操作是很容易理解的,因为视频歌曲文件都非常大不可能秒级传输完,所以把这个数据切分成几秒一个的音视频文件就可以通过网络传输到客户端进行播放,虽然单点播放只有秒级画面,