Decentralized Channel Streaming
As of version 1.85, Tixati has the ability to stream multimedia content within
Decentralized Sharing Channels.
These streams use state-of-the-art
linear network coding
to deliver optimum swarm throughput. These streams operate in a 100% decentralized swarm, and are secured against tampering via the latest in
homomorphic encryption
technology. There are no central servers, everything is delivered by peer-relaying coded segments of the original stream.
How to Listen to a Stream
Streams operate within any Decentralized Sharing Channel. Gather a list of channels (use the Add button in the main channels list), and look for channels that mention in the topic that they are streaming. Double-click the channel to join.
Along the top of the new channel window, look for the Chat button and click it. This will bring you to the chat view for this channel. On the right side you will see the list of users in the channel. Look for the green 'play' icon next to a user, and right click them to show a popup menu. Select "Play Stream" from the menu.
It may take up to 40 seconds from the time you enter a channel to when the playback starts. Please be patient.
Some streams may be too bandwidth-intensive for your internet connection and playback will not be possible.
You can monitor the progress of stream segment gathering by typing /streammon in the chat entry window.
How to Create a Stream
You first need to be in a channel where you have an access level high enough to initiate a stream, or create your own channel (where your access level will be Owner, the highest level).
The minimum access level that will be allowed to initiate a stream in a channel can be set using a ##stream directive in the channel information. This follows the usual variable=value&othervariable=othervalue format. The variables are minlevel, which defaults to manager, maxsegbytes, which defaults to approximately 5MB and is how much data a stream can push in 15 seconds, and uid, which can be set to a comma-separated list of channel user IDs that are allowed to stream regardless of access level.
Once you have an appropriate channel to stream into, you need a local stream source, such as a HTTP streaming-capable media player. VLC media player is an excellent choice and works on both Linux and Windows.
To make VLC act as an HTTP stream source, open a command-line prompt in your operating system and try one of the following examples:
Low Bitrate Audio: "C:\Program Files\VideoLAN\VLC\vlc.exe" --sout "#transcode{acodec=mp3,ab=16,channels=1}:std{acces s=http,mux=raw,dst=127.0.0.1:8081}" --sout-keep Better Audio: "C:\Program Files\VideoLAN\VLC\vlc.exe" --sout "#transcode{acodec=mp3,ab=32,channels=1}:std{acces s=http,mux=raw,dst=127.0.0.1:8081}" --sout-keep Low Bitrate Video: "C:\Program Files\VideoLAN\VLC\vlc.exe" --sout "#transcode{acodec=mp3,ab=16,channels=1,vcodec=mp4 v,vb=300,width=320,height=240}:std{ access=http,mux=ts,dst=127.0.0.1:8081}" --sout-keep
The previous examples are on a plain Windows XP install of VLC. On a Windows 7 or Vista system, you should substitute "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe". On Linux, you can simply use "vlc" instead of typing out the full path.
For more information on specific VLC streaming options, see
VLC command-line streaming options
.
Once the VLC window opens, drag some files onto it and press play. The VLC media player will now be listening on local address 127.0.0.1:8081 for incoming connections.
Tixati must now be told to connect to the local HTTP stream and feed it into the channel. Simply use the command /streamsrc 127.0.0.1:8081
The /streamsrc command can also be used without any parameters to stop streaming into the channel.
Once Tixati has connected to the source and has read about 20 seconds worth of data, it will begin relaying segments to other peers. It will take about 60 seconds for the stream to fully initialize.
Not every internet connection is capable of streaming high-quality audio and video. Your internet connection needs to be able to handle approximately 1.5x the bitrate of the stream, and you need adequate CPU capacity for block-encoding and checking due to the complex mathematics needed to encode and secure stream blocks in a network-coded system.
If a channel has too many pre-1.85 clients, there may be difficulty streaming. A channel should contain at least 50% 1.85 or newer clients for best streaming performance.