织梦CMS - 轻松建站从此开始!

罗索

几个RTP命令行小工具结合使用后的妙处

落鹤生 发布于 2013-02-28 10:26 点击:次 
首先分别介绍下几个RTP (Real-time Transport Protocol)命令行小工具的用法.
TAG:

首先分别介绍下几个RTP (Real-time Transport Protocol)命令行小工具的用法.

1. mediastream.exe

  1. mediastream --local <port> --remote <ip:port> --payload <payload type number>   
  2. [ --fmtp <fmtpline>]   
  3. [ --jitter <miliseconds>]   
  4. [ --width <pixels>]   
  5. [ --height <pixels> ]   
  6. [ --bitrate <bits per seconds>]   
  7. [ --ec (enable echo canceller)]   
  8. [ --agc (enable automatic gain control)]   
  9. [ --ng (enable noise gate)]   
  10. [ --ng-threshold <(float) [0-1]> (noise gate threshold)]   
  11. [ --capture-card <name>]   
  12. [ --playback-card <name>]   
  13. [ --infile <input wav file>] specify a wav file to be used for input, instead of soundcard   
  14. [ --outfile <output wav file>] specify a wav file to write audio into, instead of soundcard   

mediastream的作用是从声卡捕捉声音, 编码, 然后通过RTP协议发送到远端, 同时接收远端发送过来的RTP报文, 解码, 通过声卡播放.
比如,
主机A IP 192.168.1.100
主机B IP 192.168.1.200
主机A运行 mediastream.exe --local 2000 --remote 192.168.1.200:3000 --payload 110
主机B运行 mediastream.exe --local 3000 --remote 192.168.1.100:2000 --payload 110
这里payload type 110表示payload_type_speex_nb.

2. rtpdump.exe

  1. rtpdump [-F format] [-t duration] [-x bytes] [-f file]
  2.  [-o outputfile] address/port   

rtpdump listens on the address and port pair for RTP and RTCP packets and dumps a processed version to outputfile if specified or stdout otherwise.
rtpdump可以监听地址/端口的RTP报文, 然后输出RTP报文到一个dump文件中. 这一点类似于抓包工具.

3. rtpplay.exe

  1. rtpplay [-T] [-v] [-f file] [-p profile] [-s sourceport]
  2.  [-b begin] [-e end] destination/port[/ttl]    

rtpplay reads RTP session data, recorded by rtpdump -F dump from either the file or stdin, if file is not specified, sending it to network address destination and port port with a time-to-live value of ttl.
rtpplay可以读取dump文件中的RTP报文, 然后发送到某地址/端口.

上面三个工具, mediastream支持声音的捕获/播放以及RTP协议, 但不支持RTP报文的保存/读取, 而rtpdump/rtpplay支持RTP报文的保存/读取以及RTP协议, 但不支持声音的捕获/播放.

所以, 结合这三个工具就能完成下面的任务:
1. 把你的声音保存到一个dump文件中;
2. 播放一个dump文件中的声音.

这里写了2个批处理, 分别完成上面2个任务.

rtpdump_gen.bat

  1. @ECHO OFF   
  2.    
  3. START "mediastream_test" /MIN mediastream.exe --local 2000
  4.  --remote 127.0.0.1:3000 --payload 110   
  5. START "rtpdump_test" /MIN rtpdump.exe -F dump -o ./my.rtpdump 127.0.0.1/3000    
  6.    
  7. ECHO "Press Any Key to Finish the Voice Dump"   
  8. PAUSE   
  9. TASKKILL /F /FI "WINDOWTITLE eq mediastream_test"   
  10. TASKKILL /F /FI "WINDOWTITLE eq rtpdump_test"   
  11. EXIT   

rtpdump_playback.bat

  1. @ECHO OFF   
  2.    
  3. START "mediastream_test" /MIN mediastream.exe --local 2000
  4.  --remote 127.0.0.1:3000 --payload 110   
  5. REM Delay for 2 seconds   
  6. ping 127.0.0.1 -n 2 > nul   
  7. rtpplay.exe -f ./my.rtpdump -s 3000 127.0.0.1/2000    
  8.    
  9. ECHO "Press Any Key to Finish the Voice Playback"   
  10. PAUSE   
  11. TASKKILL /F /FI "WINDOWTITLE eq mediastream_test"   
  12. EXIT   

 

(mysuperbaby)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201302/16520.html]
本文出处:iteye 作者:mysuperbaby 原文
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容