通过示例从HTML页面内部流媒体
因此,我是一名软件工程师,试图了解有关流媒体工作原理的一些细节。我花了大部分时间试图了解与我的应用程序相关的各种编解码器,容器格式和流协议。到目前为止,这是我对它如何工作的理解,这很可能会被误导: 流媒体实际上可以归结为容器格式和流协议: 所有音频数据(通过音频编解码器)编码为音频比特流 所有视频数据都被编码(再次通过编解码器)为视频比特流 这两个流合并(多路复用?)到一个容器中,该容器最终成为文件(例如MP4等)。 然后,特殊的媒体服务器通过一些标准的流协议(例如RTSP)将此容器(MP4文件或其他格式)提供给客户端(也许在某人的浏览器中运行的HTML5视频播放器) 对于浏览器客户端,我假设浏览器本身具有RTSP客户端,然后以某种方式将其呈现给用户HTML5 Video Player 我可以从Web服务器(例如nginx或httpd)托管MP4文件,但是由于这些服务器不是RTSP服务器,因此只能将对MP4的请求视为下载请求,因此无法流式传输MP4 文件。媒体文件 同样,如果我要用来curl从Nginx服务器获取文件,由于Nginx curl都不讲RTSP,因此它将被视为文件下载。 但是,当我从流媒体服务器(VideoLAN,Red5,Wowza等)托管MP4文件时,我使用RTSP客户端(或任何受支持的流媒体客户端)从该服务器请求流,然后只能那么是否发生 任何实际的流式传输 因此,即使YouTube或Vimeo“视频”托管在HTTP服务器通过HTTP(S)服务的HTML页面上,我也认为这些页面上的嵌入式视频播放器(实际上是视频的播放位置)实际上正在开始,与流服务器的后续连接以及通过RTSP或其他一些非HTTP协议进行流传输 因此,这是我的理解,我想我首先要问的是,如果以上所述不正确,请先纠正我!假设我或多或少是正确的: 如何在HTML页面中运行并由HTML服务器提供服务的流媒体播放器如何与流媒体服务器建立流(RTSP等)连接(服务RTSP请求)?