美文网首页
推流拉流相关知识

推流拉流相关知识

作者: 一只爱吃鲸鱼的三瓜 | 来源:发表于2020-08-14 20:58 被阅读0次

    拉流

    根据协议类型,与服务器建立连接并接收数据

    1. 解协议,解析二进制数据,找到流信息
      将流媒体协议的数据,解析为标准的相应的封装格式数据。视音频在网络上传播的时候,常常采用各种流媒体协议,例如HTTP,RTMP,或是MMS等等。这些协议在传输视音频数据的同时,也会传输一些信令数据。这些信令数据包括对播放的控制(播放,暂停,停止),或者对网络状态的描述等。解协议的过程中会去除掉信令数据而只保留视音频数据。例如,采用RTMP协议传输的数据,经过解协议操作后,输出FLV格式的数据。
    1. 根据不同封装格式(flv、ts)解复用
    2. 得到已经编码的H.264视频数据和AAC数据
    3. 使用硬解码(对应系统的API)或软解码(FFMpeg)来解压音视频数据
    4. 经过解码后得到原始的视频数据(YUV)和音频数据(AAC)
    5. 音视频同步
    6. 把同步的音频数据送到耳机或外放,视频数据送到屏幕上显示

    推流

    1. 原始视频和音频数据
    2. 使用硬编码(对应系统的API)或软编码(FFMpeg)来编码压缩音视频数据
    3. 分别得到已编码的H.264视频数据和AAC音频数据
      4.根据不同的封装格式(如FLV、TS、MPEG-TS)
    4. 使用HLS协议的时候加上这一步(HLS分段生成策略及m3u8索引文件)
    5. 通过流上传到服务器;
    6. 服务器进行相关协议的分发

    rtmp

    rtmp是Real Time Messaging Protocol(实时消息传输协议)。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。

    1. rtmp协议 视频必须是h264编码 音频必须是AAC或MP3(经测试,如果使用mpeg4来编码推流,播放不成功),多以flv格式封装(经测试使用mp4封装直播拉流不成功,但是点播可以播放mp4的),其实flv不支持vp9,也不支持av1

    hls

    hls (HTTP Live Streaming),Apple的动态码率自适应技术,主要用于PC和Apple终端的音视频服务。包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。

    1. ts文件中的视频必须是h264编码,音频必须是AAC或者mp3编码

    obs

    obs是一个推流软件,支持本地视频文件以及摄像头推流

    参考文章

    1. https://blog.csdn.net/yanceyxin/article/details/82750686
    2. 作者:ptlCoder
      链接:https://juejin.im/post/6844903603472171021
      来源:掘金
      著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    相关文章

      网友评论

          本文标题:推流拉流相关知识

          本文链接:https://www.haomeiwen.com/subject/iphlrktx.html