rtsp_server 0.0.9 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
-
|