如何自己编写一个简单的流媒体服务器,比如rtsp

TaiJi1985 2005-10-30 04:47:25
想做这样一个东西:
如果现在有一个ftp服务器,上面有很多的媒体文件,
你想看,怎么办?
下载下来,然后播放,这样是不是麻烦,
如果可以直接观看,是不是会好些呢?

思路来了:写一个程序,他是一个ftp客户端,同时充当流媒体服务器
我们用一般的播放器访问这个流媒体服务器,就可以直接看ftp服务器上的媒体了。

简单的说,就是一个ftp流向流媒体流的转化工具。
如何实现流媒体服务器?
我手头也缺乏这方面的资料,那位大哥提供些。

(已有流媒体服务器,都是文件向流媒体的转换,不适用)
...全文
1244 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq103933 2006-02-12
  • 打赏
  • 举报
回复
学习学习,解释一下,什么叫做实况流?
billwillman 2006-02-10
  • 打赏
  • 举报
回复
又仔细的看了一便你的问题,感觉没有必要做软件,只要用windows server 2003的mms服务器建立一个发布点,就行了,加入想让客户选择的媒体文件就可以了,客户端只要用Windows Media player就行了,只要不需要实况流就不需要做软件
billwillman 2006-02-10
  • 打赏
  • 举报
回复
我用Windows Server 2003的mms服务器,自己写了一个软件可以先推到服务器的广播发布点,然后别人可以通过Windows Media player通过mms协议看到实况流。
如果想要辕马,可以加我:qq 370620516,大家多交流。
TaiJi1985 2006-02-07
  • 打赏
  • 举报
回复
自己up以下
TaiJi1985 2006-01-16
  • 打赏
  • 举报
回复
谢谢各位。那个网站www.sunsides.com
讲的是如何用别人作的服务器,而不是自己构建客户端。

bhxu 2005-12-13
  • 打赏
  • 举报
回复
我也有这方面的需求,同问一下
vcnewer 2005-11-21
  • 打赏
  • 举报
回复
BeYourself 2005-11-02
  • 打赏
  • 举报
回复
不是:www.sunsides.com
xdspower 2005-11-02
  • 打赏
  • 举报
回复
楼上的地址给错了,应该是www.souxin.com
yyhzpk 2005-11-01
  • 打赏
  • 举报
回复
楼主买一本<<流媒体技术与应用完全手册>>看看吧,
在网上也可以搜一下构建流媒体服务器方面的资料
www.soxin.com
TaiJi1985 2005-10-31
  • 打赏
  • 举报
回复
高手呢??帮帮忙!

会的解答,不会的也捧个人场。
openrtxp是一个小型的rtsp/rtmp协议的rtxpserver, ANSI C语言开发,方便移植到嵌入式系统如IPCam. 功能list: (1)支持H264 + AAC编码格式封包成RTSP/RTMP,可以使用VLC/VLC网页控件播放,RTMP可以用VLC/flash player/kmplayer播放. 支持RTP over TCP/UDP. (2)RTSP/RTMP的URL可配置,缺省URL如下: VOD点播(文件回放):rtsp://192.168.2.62/playback/test.mp4 直播:rtsp://192.168.2.62/stream/0 RTMP的url和RTSP一致,只需要把"rtsp"修改为"rtmp" 图像延迟在250ms左右. (4)同时支持基于UDP/TCP的TS流直播. (5)移植很方便,只需要编写约7个直播流获取Audio/Video的函数即可. (6)支持DVR功能,通过简单的调用,即可实现把直播流保存到硬盘中(支持.mp4/.ts格式) (7)所有代码为纯C代码,可移植性强。 移植很方便,只需要编写约7个直播流获取Audio/Video的函数即可. int liveInit(); int liveUninit(); void* liveCreate(char* filename,void* prv,double* duration,unsigned int* video_codec,unsigned int* video_width,unsigned int* video_height,unsigned int* video_fps,unsigned int* video_bps,unsigned int* audio_codec,unsigned int* audio_samplerate,unsigned int* audio_channels,unsigned int* audio_bps); int liveGetHeaderPacket(void* hdl,int data_type,char* buf); int liveGetVideoPacket(void* hdl,char* buf,double* pts,int* sync); int liveGetAudioPacket(void* hdl,char* buf,double* pts); int liveDestroy(void* hdl); FAQ: 1.为什么要用ffmpeg和ssl? 答:ssl是rtmp协议要用到。ts流,mp4文件都是由ffmpeg中的方法来实现的。如果去掉这两个lib,就支持不了rtmp,.ts,.mp4等功能。 libssl和libcrypto则是rtmp要使用的,修改configs.h 和Makefile就可以很容易地去掉。 playback/DVR/TS功能要用到ffmpeg lib的支持,修改configs.h和Makefile也很容易去掉ffmpeg,但这三项功能就实现不了。 去掉openssl和ffmpeg后,编译出来的image size在83KB左右。 2.如何支持底层的多通道?比如一个是1080P ch,一个是CIF ch. 答:通过live->idx = idx=atoi(filename);来区分不同的hw path。 3.如何支持多session或多个client连接? 答:来一个session,就调用liveCreate()来生成一个live实体。 liveCreate()的时候每次都是malloc()一个新的instance,那个instance包含一个h264enc指针和一个rd。 h264enc指针内部有一个wr,也就是说所有的流都共享一个h264enc指针,但每个流的rd是独立的。 第二次liveCreate()的时候,h264enc指针已经有了,就不需要再次建立h264enc指针了,直接引用就可以了(因此h264enc内部要做引用计数) 每多调用一次liveCreate(),h264enc->ref++。 每调用一次liveDestroy(),就h264enc->ref--,==0的时候就真正destroy h264enc。

2,542

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧