rtsp_server 0.0.9 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rtsp/version.rb +1 -1
- data/rtsp.gemspec +1 -2
- metadata +10 -13
- data/.gemtest +0 -0
- data/bin/rtsp_client +0 -133
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c843ce1ce132148c50404761e7ba0d910bf888a
|
4
|
+
data.tar.gz: 7bca112c56925cfc50e616133626c662af08736d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dbf5866263aea266bc3b50eed4977399601de369c2fde90689da2d99dbec41cbfa160ebaf68018417dfe3fe52f9e34b67cfba832843356b90e1c9dbc5157f030
|
7
|
+
data.tar.gz: 47c607f62b2e495946ae166df31dcd4ca2f7399d57de11851358cab0d68b2d0f1d9f71def7f199a12bec6940b18f423d0af28fb0fc472f115447b88908c53023
|
data/lib/rtsp/version.rb
CHANGED
data/rtsp.gemspec
CHANGED
@@ -20,9 +20,8 @@ For more information see: http://www.ietf.org/rfc/rfc2326.txt}
|
|
20
20
|
s.email = %w{steve.loveless@gmail.com}
|
21
21
|
s.licenses = %w{MIT}
|
22
22
|
|
23
|
-
s.executables = %w{rtsp_client}
|
24
23
|
s.files = Dir.glob("{lib,bin,spec,tasks}/**/*") + Dir.glob("*.rdoc") +
|
25
|
-
%w(
|
24
|
+
%w(rtsp.gemspec Gemfile Rakefile)
|
26
25
|
s.extra_rdoc_files = %w{ChangeLog.rdoc LICENSE.rdoc README.rdoc}
|
27
26
|
s.require_paths = %w{lib}
|
28
27
|
s.rubygems_version = %q{1.7.2}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rtsp_server
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steve Loveless, Mike Kirby
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-04-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: parslet
|
@@ -186,21 +186,18 @@ description: |-
|
|
186
186
|
For more information see: http://www.ietf.org/rfc/rfc2326.txt
|
187
187
|
email:
|
188
188
|
- steve.loveless@gmail.com
|
189
|
-
executables:
|
190
|
-
- rtsp_client
|
189
|
+
executables: []
|
191
190
|
extensions: []
|
192
191
|
extra_rdoc_files:
|
193
192
|
- ChangeLog.rdoc
|
194
193
|
- LICENSE.rdoc
|
195
194
|
- README.rdoc
|
196
195
|
files:
|
197
|
-
- ".gemtest"
|
198
196
|
- ChangeLog.rdoc
|
199
197
|
- Gemfile
|
200
198
|
- LICENSE.rdoc
|
201
199
|
- README.rdoc
|
202
200
|
- Rakefile
|
203
|
-
- bin/rtsp_client
|
204
201
|
- features/client_changes_state.feature
|
205
202
|
- features/client_requests.feature
|
206
203
|
- features/control_streams_as_client.feature
|
@@ -256,25 +253,25 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
256
253
|
version: '0'
|
257
254
|
requirements: []
|
258
255
|
rubyforge_project:
|
259
|
-
rubygems_version: 2.2.
|
256
|
+
rubygems_version: 2.2.2
|
260
257
|
signing_key:
|
261
258
|
specification_version: 4
|
262
259
|
summary: Library to allow RTSP streaming from RTSP-enabled devices.
|
263
260
|
test_files:
|
264
|
-
- spec/rtsp_spec.rb
|
265
|
-
- spec/spec_helper.rb
|
266
|
-
- spec/support/fake_rtsp_server.rb
|
267
261
|
- spec/rtsp/message_spec.rb
|
268
262
|
- spec/rtsp/helpers_spec.rb
|
269
263
|
- spec/rtsp/response_spec.rb
|
270
|
-
- spec/rtsp/client_spec.rb
|
271
264
|
- spec/rtsp/transport_parser_spec.rb
|
272
|
-
-
|
265
|
+
- spec/rtsp/client_spec.rb
|
266
|
+
- spec/rtsp_spec.rb
|
267
|
+
- spec/support/fake_rtsp_server.rb
|
268
|
+
- spec/spec_helper.rb
|
273
269
|
- features/client_changes_state.feature
|
270
|
+
- features/control_streams_as_client.feature
|
274
271
|
- features/step_definitions/client_changes_state_steps.rb
|
275
272
|
- features/step_definitions/control_streams_as_client_steps.rb
|
276
273
|
- features/step_definitions/client_requests_steps.rb
|
274
|
+
- features/client_requests.feature
|
277
275
|
- features/support/env.rb
|
278
276
|
- features/support/hooks.rb
|
279
|
-
- features/control_streams_as_client.feature
|
280
277
|
has_rdoc:
|
data/.gemtest
DELETED
File without changes
|
data/bin/rtsp_client
DELETED
@@ -1,133 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'tempfile'
|
4
|
-
require 'optparse'
|
5
|
-
require 'rtsp/client'
|
6
|
-
|
7
|
-
optparse = OptionParser.new do |opts|
|
8
|
-
opts.banner = "Usage: #{__FILE__} [options] url"
|
9
|
-
|
10
|
-
#----------------------------------------------------------------------------
|
11
|
-
# Turn on logging
|
12
|
-
RTSP::Client.configure { |c| c.log = false }
|
13
|
-
opts.on('-d', '--debug', "Turn on RTSP::Client logging.") do
|
14
|
-
RTSP::Client.configure { |c| c.log = true }
|
15
|
-
end
|
16
|
-
|
17
|
-
#----------------------------------------------------------------------------
|
18
|
-
# Get description
|
19
|
-
opts.on('--describe [URL]', "Get description from the given URL.") do |url|
|
20
|
-
if url.nil?
|
21
|
-
puts "Must pass in a URL."
|
22
|
-
exit
|
23
|
-
end
|
24
|
-
|
25
|
-
rtsp_client = RTSP::Client.new(url)
|
26
|
-
puts rtsp_client.describe.body.inspect
|
27
|
-
exit
|
28
|
-
end
|
29
|
-
|
30
|
-
#----------------------------------------------------------------------------
|
31
|
-
# Show available tracks
|
32
|
-
opts.on('--show-tracks [URL]', "Show available tracks from the given URL.") do |url|
|
33
|
-
if url.nil?
|
34
|
-
puts "Must pass in a URL."
|
35
|
-
exit
|
36
|
-
end
|
37
|
-
|
38
|
-
rtsp_client = RTSP::Client.new(url)
|
39
|
-
rtsp_client.describe
|
40
|
-
puts "Aggregate control track: #{rtsp_client.aggregate_control_track}"
|
41
|
-
puts "Media control tracks: #{rtsp_client.media_control_tracks}"
|
42
|
-
exit
|
43
|
-
end
|
44
|
-
|
45
|
-
#----------------------------------------------------------------------------
|
46
|
-
# Stream
|
47
|
-
opts.on('--stream [URL]', "Pull the first media stream from the given URL.") do |url|
|
48
|
-
if url.nil?
|
49
|
-
puts "Must pass in a URL."
|
50
|
-
exit
|
51
|
-
end
|
52
|
-
|
53
|
-
rtsp_client = RTSP::Client.new(url) do |connection, capturer|
|
54
|
-
capturer.rtp_file = File.open("#{Dir.pwd}/rtsp_client_stream.rtp", "wb")
|
55
|
-
end
|
56
|
-
|
57
|
-
begin
|
58
|
-
puts "Getting server options..."
|
59
|
-
response = rtsp_client.options
|
60
|
-
puts "\tServer: #{response.server}"
|
61
|
-
puts "\tSupported methods: #{response.public}"
|
62
|
-
puts ""
|
63
|
-
|
64
|
-
puts "Getting description..."
|
65
|
-
response = rtsp_client.describe
|
66
|
-
puts "\tcache_control: #{response.cache_control}" if response.respond_to? "cache_control"
|
67
|
-
puts "\tdate: #{response.date}"
|
68
|
-
puts "\texpires: #{response.expires}" if response.respond_to? "expires"
|
69
|
-
puts "\tcontent_type: #{response.content_type}"
|
70
|
-
puts "\tcontent_base: #{response.content_base}"
|
71
|
-
puts "\tAggregate control track: #{rtsp_client.aggregate_control_track}"
|
72
|
-
puts "\tMedia control tracks: #{rtsp_client.media_control_tracks}"
|
73
|
-
puts ""
|
74
|
-
|
75
|
-
puts "Setting up #{rtsp_client.media_control_tracks.first}"
|
76
|
-
response = rtsp_client.setup rtsp_client.media_control_tracks.first
|
77
|
-
puts "\ttransport: #{response.transport}"
|
78
|
-
puts ""
|
79
|
-
|
80
|
-
if response.message == "OK"
|
81
|
-
puts "Playing #{rtsp_client.aggregate_control_track}"
|
82
|
-
r = rtsp_client.play rtsp_client.aggregate_control_track
|
83
|
-
puts "\trange: #{r.range}"
|
84
|
-
puts "\trtp_info: #{r.rtp_info}"
|
85
|
-
puts ""
|
86
|
-
|
87
|
-
|
88
|
-
1...5.times do
|
89
|
-
print "."
|
90
|
-
sleep 1
|
91
|
-
end
|
92
|
-
puts ""
|
93
|
-
|
94
|
-
if rtsp_client.capturer.rtp_file.size.zero?
|
95
|
-
puts "Captured 0 bytes. Your firewall might be blocking the RTP traffic on port #{rtsp_client.capturer.rtp_port}."
|
96
|
-
else
|
97
|
-
puts "RTP data captured to file: #{rtsp_client.capturer.rtp_file}"
|
98
|
-
end
|
99
|
-
|
100
|
-
puts "Tearing down..."
|
101
|
-
r2 = rtsp_client.teardown(rtsp_client.aggregate_control_track)
|
102
|
-
puts "\tconnection: #{r2.connection}" if r2.respond_to? "connection"
|
103
|
-
else
|
104
|
-
puts "Play call returned: #{response.message}. Exiting."
|
105
|
-
exit
|
106
|
-
end
|
107
|
-
rescue RTSP::Error => ex
|
108
|
-
puts ex.backtrace
|
109
|
-
puts ex.message
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
|
-
#----------------------------------------------------------------------------
|
114
|
-
# Help
|
115
|
-
opts.on('--version', "The version of the Ruby RTSP gem used for this.") do
|
116
|
-
puts RTSP::VERSION
|
117
|
-
exit
|
118
|
-
end
|
119
|
-
|
120
|
-
#----------------------------------------------------------------------------
|
121
|
-
# Help
|
122
|
-
opts.on('-h', '--help', "You're looking at it.") do
|
123
|
-
puts opts
|
124
|
-
exit
|
125
|
-
end
|
126
|
-
end
|
127
|
-
|
128
|
-
if ARGV.size.zero?
|
129
|
-
puts optparse.help if ARGV.size.zero?
|
130
|
-
exit
|
131
|
-
end
|
132
|
-
optparse.parse!
|
133
|
-
|