live555 RTSP服务器如何实现快进 拖动播放等功能

leleershi 2015-03-25 05:45:36
如题,用live555实现了rtsp服务器和客户端,可以播放视频文件(h264),但是只能正常速度播放,请问:rtsp服务端如何实现快进快退和拖动进度条播放?
...全文
4659 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
mv_to_it 2017-02-14
  • 打赏
  • 举报
回复
不错啊...
redfox1985 2015-10-20
  • 打赏
  • 举报
回复
不知道解决了没有,live555不支持裸流的跳转,需要封装成某种文件才可以,live555主页有说明的 'Trick play' functionality The server supports RTSP 'trick play' operations for some, but not all, media types: Pausing: All media types Seeking: MPEG Transport Streams; DV video; WAV (PCM) audio; MPEG-1 or 2 audio; MPEG-1 or 2 Program Streams (partially working); Matroska or WebM files Fast forward: MPEG Transport Streams; WAV (PCM) audio; MPEG-1 or 2 audio Reverse play: MPEG Transport Streams; WAV (PCM) audio Note that in order to provide 'trick play' operations for a streamed MPEG Transport Stream file, a special 'index file' must created for each such file, using our "MPEG2TransportStreamIndexer" tool. Trick play support for additional media types will be added in the future.
leleershi 2015-04-07
  • 打赏
  • 举报
回复
引用 8 楼 yhc223 的回复:
你试一下darwin流媒体服务器,这个应该是支持的
我要开发的就是流媒体服务器,使用live555开发自己的流媒体服务器,现在的问题是我的服务器不支持快速播放和拖动。我想请教重写live555的那部分代码可以实现这些功能。谢谢
rightorwrong 2015-03-27
  • 打赏
  • 举报
回复
需要服务端改代码,改变发送速度
leleershi 2015-03-27
  • 打赏
  • 举报
回复
引用 4 楼 yhc223 的回复:
服务器支持标准协议,我说的命令都是rtsp标准命令,所以只需要修改客户端就可以了,服务器不需要改。
我在客户端调用发送PLAY命令的接口时:
rtspClient->sendPlayCommand(session, responseHandler,0,-1,2);
从头播放到尾,播放速度是2,但是播放速度并没有变快,我调试了一下服务端代码,发现接收到的包里,scale是2,不过服务端经过一些处理之后scale又变成1了,所以速度没变快。这是为什么?我用的服务端是live555MediaServer,这个服务器是不是没有实现速度控制等功能?我应该在这个服务器上做什么修改? 谢谢 期待回答
Putin_yhc 2015-03-27
  • 打赏
  • 举报
回复
你试一下darwin流媒体服务器,这个应该是支持的
leleershi 2015-03-27
  • 打赏
  • 举报
回复
引用 6 楼 rightorwrong 的回复:
需要服务端改代码,改变发送速度
发送速度怎么改变?服务端需要重写那个类呢?纯新手 看了几天也没看出来
Putin_yhc 2015-03-26
  • 打赏
  • 举报
回复
服务器支持标准协议,我说的命令都是rtsp标准命令,所以只需要修改客户端就可以了,服务器不需要改。
leleershi 2015-03-26
  • 打赏
  • 举报
回复
引用 1 楼 yhc223 的回复:
拖动用PLAY方法实现,相当于再找一个播放点。 快进需要加一个rtsp头scale。Scale头域表示播放或记录速度。值为1表示正常播放速度,0.5表示一半播放速度,2表示2倍播放速度。负值表示反方向播放。请求头中包含的速度如果超出了服务器允许范围,则在反馈头中会给出实际速度。 Scale: -3.5 下面是拖动的例子 PLAY方法告诉服务器按照SETUP方法中的设置开始传送媒体流,在SETUP方法被调用前,不能调用PLAY方法。PLAY请求中带有Range头,用于表示播放的范围。如果不带有Range头则默认从头播到尾。当播放到达Range尾时,会自动停止,就像调用了一个PAUSE命令。 PLAY命令可以连续调用,在服务器端会将多个PLAY命令进行队列管理。在同一时间只能有一个PLAY命令被执行,只有第一个PLAY命令执行完毕,第二个PLAY命令才能被执行。如下例所示,服务器会先播放10-15秒,再播放20-25秒,最后播放30-结尾。PLAY还可以带有time参数,用于在制定时间播放。这样做可以同步多个数据流。 C->S: PLAY rtsp://audio.example.com/audio RTSP/1.0 CSeq: 835 Session: 12345678 Range: npt=10-15 C->S: PLAY rtsp://audio.example.com/audio RTSP/1.0 CSeq: 836 Session: 12345678 Range: npt=20-25 C->S: PLAY rtsp://audio.example.com/audio RTSP/1.0 CSeq: 837 Session: 12345678 Range: npt=30- C->S: PLAY rtsp://audio.example.com/twister.en RTSP/1.0 CSeq: 833 Session: 12345678 Range: smpte=0:10:20-;time=19970123T153600Z S->C: RTSP/1.0 200 OK CSeq: 833 Date: 23 Jan 1997 15:35:06 GMT Range: smpte=0:10:22-;time=19970123T153600Z
我是C++写的服务器和客户端,你的意思是只要修改一下客户端发送给服务端的PLAY命令中某些参数就可以达到快进和拖拽的效果吗?服务端代码不需要修改吗?
random_2011 2015-03-26
  • 打赏
  • 举报
回复
普京说的好!
Putin_yhc 2015-03-25
  • 打赏
  • 举报
回复
拖动用PLAY方法实现,相当于再找一个播放点。 快进需要加一个rtsp头scale。Scale头域表示播放或记录速度。值为1表示正常播放速度,0.5表示一半播放速度,2表示2倍播放速度。负值表示反方向播放。请求头中包含的速度如果超出了服务器允许范围,则在反馈头中会给出实际速度。 Scale: -3.5 下面是拖动的例子 PLAY方法告诉服务器按照SETUP方法中的设置开始传送媒体流,在SETUP方法被调用前,不能调用PLAY方法。PLAY请求中带有Range头,用于表示播放的范围。如果不带有Range头则默认从头播到尾。当播放到达Range尾时,会自动停止,就像调用了一个PAUSE命令。 PLAY命令可以连续调用,在服务器端会将多个PLAY命令进行队列管理。在同一时间只能有一个PLAY命令被执行,只有第一个PLAY命令执行完毕,第二个PLAY命令才能被执行。如下例所示,服务器会先播放10-15秒,再播放20-25秒,最后播放30-结尾。PLAY还可以带有time参数,用于在制定时间播放。这样做可以同步多个数据流。 C->S: PLAY rtsp://audio.example.com/audio RTSP/1.0 CSeq: 835 Session: 12345678 Range: npt=10-15 C->S: PLAY rtsp://audio.example.com/audio RTSP/1.0 CSeq: 836 Session: 12345678 Range: npt=20-25 C->S: PLAY rtsp://audio.example.com/audio RTSP/1.0 CSeq: 837 Session: 12345678 Range: npt=30- C->S: PLAY rtsp://audio.example.com/twister.en RTSP/1.0 CSeq: 833 Session: 12345678 Range: smpte=0:10:20-;time=19970123T153600Z S->C: RTSP/1.0 200 OK CSeq: 833 Date: 23 Jan 1997 15:35:06 GMT Range: smpte=0:10:22-;time=19970123T153600Z

2,543

社区成员

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

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