作者回复: Q1、是编码,笔误了,感谢同学提醒,在推流过程中,主播端会使用编码器对音视频数据进行编码,将其转化为可用于网络传输的格式,之后再刷新一下就好了。 Q2: 服务端需要转码通常是因为主播端发送过来的音视频数据格式可能与服务器端支持的格式不同,或者需要将音视频数据进行压缩以降低传输带宽占用。具体需要转码成什么格式,取决于服务器端所支持的格式以及应用场景的需求。 Q3: 在推流的过程中,主播端会将音视频数据进行封装,并将其发送到Nginx服务器。在Nginx服务器上,使用ffmpeg等工具将数据进一步封装为RTMP消息,并发送到后端服务器。因此,可以说在主播端已经封装好了音视频数据,而在服务端是将这些数据封装为RTMP消息。 主播通过手机发送的数据不是RTMP数据,而是手机设备生成的音视频数据。在推流过程中,主播端的音视频数据会被封装为RTMP消息,并发送到Nginx服务器。在Nginx服务器上,ffmpeg会将RTMP消息进一步封装为HLS或其他流媒体协议的消息,并发送到后端服务器。 Q4: 推流命令“ffmpeg –I …”通常是在Nginx服务器上执行的。在推流过程中,Nginx服务器上的ffmpeg会读取主播端发送过来的音视频数据,并将其封装为RTMP消息。 Q5: NRM中的服务端地址不包含IP地址是因为在配置中使用了域名而非IP地址。在互联网中,使用域名而非IP地址可以更好地保护服务器的隐私和安全性,同时也可以更好地应对服务器的IP地址变化和负载均衡的需求。因此,在NRM中配置服务端地址时,通常会使用域名而非IP地址。
作者回复: https://gitee.com/Barry_Python_web/projects这是git地址,有代码的课都会上传,完整代码在课程完成之后会全部上传,及时关注git,也会在专栏中说明。