OmniStream will convert practically any video file into a format that can be
streamed from almost any server to nearly every streaming media player.
| Video Formats | Streaming Servers | Media Players |
|
QuickTime Windows Media MPEG 1/2/4 AVC (H.264) Flash Real Media ...and many, many more! See the full lists: Containers Codecs |
Any Web Server Any FTP Server Flash Media Server Darwin Streaming Server Wowza Media Server Red5 Local File Shares Most any server can stream OmniStream files!1 |
QuickTime Player Flash-based Players: JW Player Flowplayer ...and more! VLC Media Player MPlayer Any streaming media player that supports AVC/AAC can play OmniStream files!1 |
1 Note that not every combination of server and player will work together. Check the documentation of the software that you're interested in to see which setups are compatible.
Download
OmniStream is currently packaged for Windows XP or later.1 It requires Python 2.6 to run, so please download and install that first.2 If you wish to run the GUI version, you will also need to download and install wxPython 2.8.
Download Python 2.6.2 for Windows (13.8 mb) - Required
Download wxPython 2.8 for Windows (9.9 mb) - Required for GUI
Download OmniStream 0.3 for Windows (3.5 mb) Released July 12, 2009
Versions for Mac and Linux are forthcoming.
OmniStream is open source software and is bundled with third-party software. Please see the licensing information for details.
1 If you're technically inclined, you could replace the Windows binaries of ffmpeg, normalize, and mp4creator with those for a different OS and it should work, but this hasn't been tested.
2 At this point, Python 3.x will not be supported. The GUI version of OmniStream requires wxPython, which does not yet support Python 3.x. When it does, OmniStream will likely be updated to follow. Also, Python versions earlier than 2.6 may work, though I'm not sure how far back.
Usage
OmniStream can produce different qualities of streams: Low, Normal, High, and HDTV.1
Low quality streams are intended for dial-up connections, but these may be unreliable due to the limitations of telephone modems.
Normal quality streams are for DSL or better broadband, similar to what you will find on many websites.
High quality streams are for cable or better broadband and require a reasonably modern computer to view.
HDTV quality streams are for fiber or LAN connections and require a fairly fast computer to view.
To run the GUI version of OmniStream, just double-click OmniStream GUI.py.
To start the command line version of OmniStream, run it like this:
python OmniStream.py <Input File> <Options>
| Requirements | |
| OmniStream.py | The program. |
| <Input File> | The source video file to create the stream from. |
| Options | |
| python | You may need to include the Python interpreter, depending on your system configuration. |
| Quality=<Stream Quality> | The quality of the stream to be produced. Valid stream qualities are Low, Normal, High, and HDTV. Defaults to Normal.1 |
| Output=<Output File> |
The file to save the stream as. Defaults to: <Input File>.<Stream Quality>.mp4 |
| Audio=<Audio Track> | The input file audio track to use. Defaults to the first audio track found. |
| Video=<Video Track> | The input file video track to use. Defaults to the first video track found. |
| Start=<Start Time> | The time within the input file to start the stream from, in seconds.2 Defaults to the beginning. |
| Length=<Stream Length> | The length of the input file to include in the stream, in seconds.2 Defaults to the entire file. |
| No_Optimize_Audio | Don't optimize audio. May help audio/video synchronization issues, but audio levels will remain identical to the input file. |
| No_Optimize_Video | Don't optimize video. Encodes faster, but reduces video quality. |
| No_Optimize_Streaming | Don't optimize streaming. Slightly reduces encoding time and stream size, but cripples most streaming capabilities. |
1 The encoding presets can be modified by the user in Encoding Presets.conf.
2 Actual start time and length may vary slightly due to processing
limitations.
The Technical Stuff
OmniStream converts video to a standard format called Advanced Video Coding (AVC, aka H.264) and audio to Advanced Audio Coding (AAC), which is stored in an MPEG-4 file. It then adds "hinting" information that allows the file to be streamed over protocols such as RTSP and RTMP. Lastly, it optimizes the file layout so that it may be "streamed" via progressive download over protocols like HTTP and FTP.
Here are the configurations for the default encoding presets:
| Name | Video | Audio | ||||
|---|---|---|---|---|---|---|
| Bitrate | Framerate | Dimensions1 | Bitrate | Sampling | Channels | |
| Low | 32 kbps | 10 fps | *x160 | 8 kbps | 8 khz | 1 |
| Normal | 256 kbps | 15 fps | *x240 | 32 kbps | 16 khz | 1 |
| High | 1536 kbps | 24 fps | *x480 | 128 kbps | 32 khz | 2 |
| HDTV | 3072 kbps | 30 fps | *x720 | 256 kbps | 48 khz | 2 |
If you want to learn more about what all this means, you might like to read my article on The Basics of Digital Media.
1 The aspect ratio (such as standard 4:3 or widescreen 16:9) of the source video is always maintained, so the stream width will be relative to the original file.
The Power of Open Source Software
Open source software is democracy in technology. It is free to use, distribute, and modify for anyone, anywhere. OmniStream is both open source software itself and makes use of other open source software to do the heavy lifting of video and audio processing. That means you can use OmniStream to prepare your media for streaming at no cost!
OmniStream is copyright 2009 Chris Stanley and is distributed under the Creative Commons Attribution-Share Alike 3.0 United States License.
OmniStream proudly integrates these other high-quality open source software projects:
ffmpeg - Media information and transcoding
mp4creator - MPEG-4 track hinting and file optimization
normalize - Audio normalization and leveling
Copyright © 2009 Chris Stanley