在HTML5 websocket服务器中切分媒体流用于基于网页的聊天/视频会议应用程序
我们现在正在开发一个聊天加(文件共享加)视频会议的应用,使用HTML5的websockets。为了让我们的应用更容易使用,我们想实现自适应流媒体,具体步骤如下:
- 客户端的原始音频/视频数据发送到服务器
- 将流分成每秒1个小块
- 对流进行不同带宽的编码
- 客户端接收一个描述可用片段的清单文件
- 使用普通的HTTP下载一个片段
- 下一个片段的带宽根据上一个片段的表现来选择
- 客户端可以从多个不同的备用流中选择,数据速率各不相同
那么,我们该如何用Python将音频/视频数据分块呢?
我们知道微软已经开发了Expression Encoder 2,它支持自适应流媒体,但它只支持Silverlight,这不是我们想要的。
补充一下:
还有一个叫FFmpeg的解决方案(对于Python还有一个PyFFmpeg的封装),但它只支持Apple的自适应流媒体。
2 个回答
2
我找到了一些不错的文章,这些文章讲述了其他人是如何为不同平台制作一个流分段器
的,所以现在我们知道怎么用Python来制作一个了。
5
我觉得 ffmpeg 是你需要关注的主要工具。它已经成为最受支持的开源媒体处理工具。还有一个 Python的封装库 可以使用。虽然你也可以通过 subprocess模块来访问命令行。