因为要做一个东西,需要这方面的东西
现在的初步设计是用tcp或者udp协议来传输,可是看书上大部分都是说得普通的文本传输
1.首先流媒体的传输需要把一个把媒体文件变成二进制的过程,然后传到接受端要变回媒体文件,这如何实现?
2.传输的媒体文件是分成固定大小的包的,而且要能对包进行定位,比如一个接收端需要哪个时间的文件,就请求。我的问题是怎么进行这种包的控制,如何进行打包。 我的方案可能有不成熟的地方希望大家能提出来,或者有什么更佳的实现方法更好,能提供源码就更好了。100分是下限,只要大家能给我有益的东西就会给分,给完为止,希望不要复制粘贴那样回答
现在的初步设计是用tcp或者udp协议来传输,可是看书上大部分都是说得普通的文本传输
1.首先流媒体的传输需要把一个把媒体文件变成二进制的过程,然后传到接受端要变回媒体文件,这如何实现?
2.传输的媒体文件是分成固定大小的包的,而且要能对包进行定位,比如一个接收端需要哪个时间的文件,就请求。我的问题是怎么进行这种包的控制,如何进行打包。 我的方案可能有不成熟的地方希望大家能提出来,或者有什么更佳的实现方法更好,能提供源码就更好了。100分是下限,只要大家能给我有益的东西就会给分,给完为止,希望不要复制粘贴那样回答
用Visual C#实现P2P应用程序
http://download.csdn.net/down/607991/dailiec
C#实现P2P应用程序
http://hi.baidu.com/27136/blog/item/d9cc6d09f8d249216a60fbef.html
FileStreamPacket fsp = packet as FileStreamPacket;
System.IO.FileStream fs = new System.IO.FileStream(fsp.FileName, System.IO.FileMode.Open, System.IO.FileAccess.Read, FileShare.Read); fsp.SeqID = 0;
fsp.SeqCount = (int)System.Math.Ceiling(fs.Length / (decimal)MAXBUFFERSIZE);
fsp.PacketID= fsp.GetHashCode(); long pos = 0;
long count = fs.Length < MAXBUFFERSIZE ? fs.Length : MAXBUFFERSIZE;
while (pos < fs.Length && count>0)
{
byte[] buffer = new byte[count];
fs.Seek(pos, SeekOrigin.Begin);
fs.Read(buffer, 0, (int)count);
pos += count;
count = pos + MAXBUFFERSIZE < fs.Length ? MAXBUFFERSIZE : fs.Length - pos - 1; //数据包重组
fsp.SeqID = fsp.SeqID + 1;
fsp.Message = Convert.ToBase64String(buffer); //发送数据
byte[] buf = UtilityHelper.Serialize(fsp);
client.Send(buf, buf.Length, toUser.P2PAddress);
Thread.Sleep(300);
}数据包重发参考Lumn.Net
http://download.csdn.net/source/820806
http://www.cnblogs.com/evernory/articles/22178.aspx
你可以搜搜
去cnlogs.com
以音频传递为例,视频同理.A端捕获到数据之后进行编码,例如对音频可以使用G711编码方式编码.编码之后通过RTP通道传递数据到B端指定的端口,B端有个监听的机制,用来监听这个端口,当收到数据之后进行解码,解码之后播放.2.传输的媒体文件是分成固定大小的包的,而且要能对包进行定位,比如一个接收端需要哪个时间的文件,就请求。我的问题是怎么进行这种包的控制,如何进行打包。答:包的大小是根据你选择的编码方式来决定的,不同的编码方式应该选择不同的包大小.对数据包的控制通常使用协议栈控制,其实就是RTP协议,可以使用开源的协议栈:ortp或jrtp.时间的控制是通过时间戳控制的.最好熟悉一下RTP/RTCP协议.另外,如果你的软件不大,要求不高,可以自己定义协议,数据的封包也可以自己定义,包括包头和数据部分,具体根据实际情况.
如果你的软件对控制要求比较高,这个时候就要考虑自己写一个协议栈或者使用开源的协议栈了,例如可以使用sip协议信令进行控制. SDP协议描述媒体以及协商媒体.