Chopping media stream in HTML5 websocket server for webbased chat/video conference application
We are currently working on a chat + (file sharing +) video conference application using HTML5 websockets. To make our application more accessible we want to implement Adaptive Streaming, using the following sequence:
- Raw audio/video data client goes to server
- Stream is split into 1 second chunks
- Encode stream into varying bandwidths
- Client receives manifest file describing available segments
- Downloads one segment using normal HTTP
- Bandwidth next segment chosen on performance of previous one
- Client may select from a number of different alternate streams at a variety of data rates
So.. How do we split our audio/video data in chunks with Python?
We know Microsoft already build the Expression Encoder 2 which enables Adaptive Streaming, but it only supports Silverlight and that's not what we want.
Edit:
There's also an solution called FFmpeg (and for Python a PyFFmpeg wrapper), but 开发者_Go百科it only supports Apple Adaptive streaming.I think ffmpeg is the main tool you'll want to look at. It's become most well supported open source media manipulator. There is a python wrapper for it. Though it is also possible to access the command line through the subprocess module.
I've found some nice articles about how other people build a stream segmenter
for other platforms, so now we know how to build one in Python.
精彩评论