-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
362 lines (265 loc) · 10.4 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
About
-----
DVBStreamer is an console based application to stream an entire DVB service
over UDP.
It differs from other DVB streaming applications by the use of the DVB-SI to
work out the PIDs to stream and correctly stream services which use a separate
PCR PID.
Requirements
------------
DVBStreamer requires the following libraries:
- sqlite3 (>= 3.3)
- readline
- libltdl (>= 2.2.6b)
- libyaml
Installation
------------
After installing the dependancies and extracting the source run configure to
setup the makefile. To do this enter the following at the command prompt (add
any options you would normal add when building using configure).
./configure
When configure has finished and created all the makefiles its just a matter of
running make to build the application.
make
Once make has finished doing its thing the next step is installing dvbstreamer
to you chosen location. You will probably want to do this step as root.
make install
Setup
-----
Before you can actually start to use dvbstreamer you need to initialise it's
database of service to do this you'll need a channels.conf file produces by the
linuxtv.org utility scan. Go here if you need help with scan.
When you have a channels.conf file you then need to run setupdvbstreamer with
the file you've just created.
To setup dvbstreamer to use a terrestrial tuner on adapter 0 use the following
command:
setupdvbstreamer -t channels.conf
To setup dvbstreamer to use a satellite tuner on adapter 0 use the following
command:
setupdvbstreamer -s channels.conf
To setup dvbstreamer to use a cable tuner on adapter 0 use the following
command:
setupdvbstreamer -c channels.conf
If you are setting up an adapter other than 0 add the -a <adapter number> option
to the commands above.
If you have 2 or more cards of the same type in your system you can link the
first cards database to the second cards database by simply creating a hard link
in the dvbstreamer directory in your home directory ~/.dvbstreamer
for example to use the same database for card 1 and 2 you would do the following
ln ~/.dvbstreamer/adapter1.db ~/.dvbstreamer/adapter2.db
Running
--------
* Starting DVBStreamer
* Using a Startup file
* MRLs
Starting DVBStreamer
--------------------
To start dvbstreamer you need to specify an IP address and a UDP port where the
selected service will be streamed to. You can also optionally specify which
adapter to use using the -a option.
For example to start dvbstreamer using adapter 2 and send the selected service
to 192.168.1.1 and UDP port 1234 you would use the following command
dvbstreamer -a 2 -o udp://192.168.1.1:1234
To select a service to stream use the select command (see the Commands section
for more information).
For example:
select "BBC ONE"
Will tune to the multiplex that contains BBC ONE and stream all the packets
belonging to that service to 192.168.1.1:1234 over udp.
The stats command can be used to verify that packets are being processed and set
to the selected output destination.
For information on other commands see the Commands section.
Start up files
--------------
Start up files can be useful for doing things that you always want to be setup
before you get to the dvbstreamer prompt. For example you may always want the
TDT and EIT tables redirected to a specific UDP port on your local computer.
To use a startup file simple add the -f option on the command line specifying
the file to read.
For example to use the file eitredirect to redirect EIT tables to port 1235 on
your local computer you would use the following:
dvbstreamer -o udp://localhost:1234 -f eitredirect
And in eitredirect you would have
# Redirect EIT tables to port 1235 on localhost
addmf eitoutput udp://localhost:1235
addmfpid eitoutput 0x12
Its as simple as that, you can use all the commands that you can use on the
dvbstreamer prompt.
MRLs (Media Resource Locator)
-----------------------------
These are in the form <transport>://<details> and are used to specified how and
where to send the output of a service filter or a manual output.
The following MRLs are currently supported (although this list can be extended
by plugins):
Transport Usage Description
-------------------------------------
udp udp://host:port Packets are sent via UDP (7 TS packets per UDP packet)
to the specified port on the host.
file file://filepath Packets are written to the specified file.
null null:// Packets are thrown away.
Commands
--------
quit............Exit the program
lsservices......List all services or for a specific multiplex.
lsmuxes.........List multiplexes
select..........Select a new service to stream
current.........Print out the service currently being streamed.
serviceinfo.....Display information about a service.
pids............List the PIDs for a specified service
stats...........Display the stats for the PAT,PMT and service PID filters
lssfs...........List all secondary service filters
setsf...........Select a service to stream to a secondary service output
setsfmrl........Set the service filter's MRL
setsfavsonly....Enable/disable streaming of Audio/Video/Subtitles only.
festatus........Displays the status of the tuner.
scan............Scan the specified multiplex for services.
help............Display the list of commands or help on a specific command
lsplugins.......List loaded plugins.
plugininfo......Display the information about a plugin
quit
----
Usage: quit
Exit the program, can be used in the startup file to stop further processing.
lsservices
----------
Usage: lsservices [mux | <multiplex uid>]
Lists all the services currently in the database if no multiplex is specified or
if "mux" is specified only the services available of the current mux or if a
uid is specified only the services available on that multiplex.
lsmuxes
-------
Usage: lsmuxes
List all multiplexes.
select
------
Usage: select <service name>
Sets the specified service as the service to be streamed to the primary output,
this may mean tuning to a different multiplex.
current
-------
Usage: current
Shows the service that is currently being streamed to the default output.
Back serviceinfo
Usage: serviceinfo <service name>
Displays running status, conditional access status and whether EPG information
is present for the specified service. Note only services in the current
multiplex can be queried.
pids
----
Usage: pids <service name>
List the PIDs for the specified service.
stats
-----
Usage: stats
Display the number of packets processed for the PSI/SI filters and the number of
packets filtered for each service filter and manual output.
addsf
-----
Usage: addsf <output name> <mrl>
Adds a new destination for sending a secondary service to.
rmsf
----
Usage: rmsf <output name>
Remove a destination for sending secondary services to.
lssfs
-----
Usage: lssfs
List all secondary service filters their names, destinations and currently
selected service.
setsf
-----
Usage: setsf <output name> <service name>
Stream the specified service to the secondary service output.
setsfmrl
--------
Usage: setsfmrl <output name> <mrl>
Change the destination for packets sent to this service filters output. If the
MRL cannot be parsed no change will be made to the service filter.
setsfavsonly
------------
Usage: setsfavsonly <output name> on|off
Enabling AVS Only cause the PMT to be rewritten to only include the first video
stream, normal audio stream and the subtitles stream only for the specified
service output.
festatus
--------
Usage: festatus
Displays whether the front end is locked, the bit error rate and signal to noise
ratio and the signal strength
scan
----
Usage: scan <mulitplex>
Tunes to the specified multiplex and wait 5 seconds for PAT/PMT/SDT.
help
----
Usage: help [<command>]
List all available commands or displays specific help for the command specifed.
lsplugins
---------
Usage: lsplugins
List all plugins that where loaded at startup.
plugininfo
----------
Usage: plugininfo <pluginname>
Displays the version, author and descriptor for a specific plugin.
Plugins
-------
Plugins allow DVBStreamer to be extended beyond the simple filtering and
streaming of DVB services.
Plugins can:
- Add new delivery methods (check out fileoutput.c for a simple example of a
delivery method plugin)
- Add new commands.
- Add new PID filters (for example to extract EPG data)
- Detect when the service/multiplex is changed.
The commands lsplugins and plugininfo can be used to inspected the loaded
plugins.
Documentation for the interfaces into DVBStreamer can be generated using the
doxygen and the doxygen.config file in the base directory of dvbstreamer.
Help/More Information
-------------------
See the wiki at http://dvbstreamer.sourceforge.net/mediawiki/index.php/Main_Page
Bugs
----
Please report all bugs to the sourceforge forums.
http://sourceforge.net/tracker/?group_id=164687&atid=832723
Credits
-------
Adam Charrett - Author
Tero Pelander - IPv6 support along with several patches and tested DVB-C.
Thomas Sattler - Lots of testing for 0.5.
Nicholas Humfrey - Power PC testing and patch.
Alex Luccisano - DVB-S testing.
Jonathan Isom - ATSC testing.
Michael Treuer - Patch to DVB text code.
Steve VanDeBogart- Several patches and the traffic monitor plugin.
Ramsey Ammar - DVBStreamer first donor :-) many thanks.
Paul Kelly - Patch to make festatus command work on DVB-S
Louis Croisez - Help finding critical MRL bug and other testing.
Chris Allison - Patch to add Series/Content ids to xmltv output.
Marcel Ritter - Bug fix
A C G Mennucc - Several bug fixes/patches.
Tom Albers - Test stream and testing of patch for support of extended
event descriptors.
Samuli Suominen - Patch to remove use of in-tree libltdl and use the system copy
instead.
Issa Gorissen - Donated a TeVII S660 for help with DVB-S2 - Many thanks
Luca Dasseto - Also donated a TeVII S660 for help with DVB-S2 - Many thanks
Manuel Borchers - Testing of service name markup characters removal.
VideoLan libdvbpsi Team for the excellent libdvbpsi.
(http://www.videolan.org/developers/libdvbpsi.html)
Mythtv Team for working out the huffman decode tables etc for the freesat epg.
History
-------
2.0 Next Gen Release
1.1 Ubuntu build fix Release
1.0 The first .0 Release
0.9 EPG Release
0.8 ATSC/DVB-S Release
0.7 Remote interface Release
0.6 Stability Release
0.5 Plugin Release
0.4 Daemon mode
0.3 Service Addition/Removal
0.2 Add new commands (addoutput etc)
0.1 First public release