|
@@ -1,22 +1,97 @@
|
1
|
1
|
tsdecrypt
|
2
|
2
|
=========
|
3
|
3
|
tsdecrypt reads incoming mpeg transport stream over UDP/RTP and then
|
4
|
|
-decrypts it using libdvbcsa and keys obtained from OSCAM or similar cam
|
5
|
|
-server. tsdecrypt communicates with CAM server using cs378x (camd35 over
|
6
|
|
-tcp) protocol or newcamd protocol.
|
|
4
|
+decrypts it using using code words obtained from OSCAM or similar cam
|
|
5
|
+server. tsdecrypt communicates with CAM server using cs378x (camd35
|
|
6
|
+over tcp) protocol or newcamd protocol.
|
7
|
7
|
|
8
|
8
|
License
|
9
|
9
|
=======
|
10
|
10
|
tsdecrypt is released under GNU GPL v2.
|
11
|
11
|
|
12
|
|
-Installation
|
|
12
|
+Dependencies
|
13
|
13
|
============
|
14
|
|
-tsdecrypt depends on two external libraries - openssl and libdvbcsa.
|
15
|
|
-You probably already have openssl installed, libdvbcsa can be downloaded
|
16
|
|
-from http://www.videolan.org/developers/libdvbcsa.html
|
|
14
|
+tsdecrypt depends on openssl. It uses rand, MD5, DES and AES functions.
|
|
15
|
+You probably already have openssl installed. If you are seeing compilation
|
|
16
|
+errors related to missing openssl headers you should install openssl-dev
|
|
17
|
+or similar packet depending on your Linux distribution.
|
17
|
18
|
|
18
|
|
-Documentation
|
19
|
|
-=============
|
|
19
|
+If you are not using shipped FFdecsa then the other tsdecrypt dependency
|
|
20
|
+is libdvbcsa. libdvbcsa can be downloaded from
|
|
21
|
+http://www.videolan.org/developers/libdvbcsa.html
|
|
22
|
+
|
|
23
|
+FFdecsa vs libdvbcsa
|
|
24
|
+====================
|
|
25
|
+tsdecrypt supports two different CSA decryption libraries.
|
|
26
|
+
|
|
27
|
+libdvbcsa is an external library from VideoLAN project released under
|
|
28
|
+LGPL, FFdecsa is shipped with tsdecrypt.
|
|
29
|
+
|
|
30
|
+libdvbcsa
|
|
31
|
+=========
|
|
32
|
+libdvbcsa is better tested and have served tsdcrypt for a long time so
|
|
33
|
+it is still the default decryption library. Also it is faster with file
|
|
34
|
+input.
|
|
35
|
+
|
|
36
|
+To compile tsdecrypt with libdvbcsa run 'make' or if you have tested
|
|
37
|
+FFdecsa compilation and want to switch to libdvbcsa run 'make dvbcsa'.
|
|
38
|
+'make distclean' switches decryption library back to libdvbcsa.
|
|
39
|
+
|
|
40
|
+FFdecsa
|
|
41
|
+=======
|
|
42
|
+FFdecsa support was added after tsdecrypt v7.0. FFdecsa can be up to 40%
|
|
43
|
+faster than libdvbcsa especially on 32-bit hardware. If you want to use
|
|
44
|
+FFDecsa you have to run 'make ffdecsa'.
|
|
45
|
+
|
|
46
|
+The setup script will test which FFDecsa algorithm is the fastest for
|
|
47
|
+your CPU and will configure tsdecrypt compilation to stop using libdvbcsa.
|
|
48
|
+Most likely the script will choose PARALLEL_128_SSE or PARALLEL_128_SSE2.
|
|
49
|
+Once the script have finished it stores its decision in FFdecsa.opts file
|
|
50
|
+and as long as this file exists tsdecrypt will be compiled with FFdecsa.
|
|
51
|
+You can force regeneration by deleting running 'make ffdecsa_force' or
|
|
52
|
+'make distclean ffdecsa'.
|
|
53
|
+
|
|
54
|
+FFDecsa is considerably slower than libdvbcsa when tsdecrypt's input
|
|
55
|
+is a file or stdin (single packet decryption mode). If you are
|
|
56
|
+decrypting already recorded files you are better of using libdvbcsa.
|
|
57
|
+
|
|
58
|
+When tsdecrypt is run it reports which decryption library is used in its
|
|
59
|
+version string. You can use --bench option to test decryption speed.
|
|
60
|
+
|
|
61
|
+Development
|
|
62
|
+===========
|
|
63
|
+The development is done using git. tsdecrypt repository is hosted
|
|
64
|
+at http://github.com/gfto/tsdecrypt
|
|
65
|
+
|
|
66
|
+To clone the repository issue the following commands:
|
|
67
|
+
|
|
68
|
+ git clone git://github.com/gfto/tsdecrypt.git
|
|
69
|
+ cd tsdecrypt
|
|
70
|
+ git submodule init
|
|
71
|
+ git submodule update
|
|
72
|
+ make
|
|
73
|
+
|
|
74
|
+The code is developed and tested under modern Linux. It is also
|
|
75
|
+compiled from time to time under OS X but is not tested there.
|
|
76
|
+
|
|
77
|
+To see all Makefile targets run 'make help'.
|
|
78
|
+
|
|
79
|
+Updating the code
|
|
80
|
+=================
|
|
81
|
+To update cloned tsdecrypt, go to the directory where the repository
|
|
82
|
+is cloned and run the following commands:
|
|
83
|
+
|
|
84
|
+ git fetch origin
|
|
85
|
+ git merge origin/master
|
|
86
|
+ git submodule update
|
|
87
|
+ make clean all
|
|
88
|
+
|
|
89
|
+tsdecrypt's master branch should always be useful so it is safe to
|
|
90
|
+use it isntead of official release. The master branch will always
|
|
91
|
+be better than any released version.
|
|
92
|
+
|
|
93
|
+Command line parameters
|
|
94
|
+=======================
|
20
|
95
|
tsdecrypt is controlled using command line parameters. For more information
|
21
|
96
|
about the parameters see the man page. Here is a list of supported command
|
22
|
97
|
line parameters:
|
|
@@ -110,32 +185,6 @@ Misc options:
|
110
|
185
|
-h --help | Show help screen.
|
111
|
186
|
-V --version | Show program version.
|
112
|
187
|
|
113
|
|
-Development
|
114
|
|
-===========
|
115
|
|
-The development is done using git. tsdecrypt repository is hosted
|
116
|
|
-at http://github.com/gfto/tsdecrypt
|
117
|
|
-
|
118
|
|
-To clone the repository issue the following commands:
|
119
|
|
-
|
120
|
|
- git clone git://github.com/gfto/tsdecrypt.git
|
121
|
|
- cd tsdecrypt
|
122
|
|
- git submodule init
|
123
|
|
- git submodule update
|
124
|
|
- make
|
125
|
|
-
|
126
|
|
-The code is developed and tested under modern Linux. It is also
|
127
|
|
-compiled from time to time under OS X but is not tested there.
|
128
|
|
-
|
129
|
|
-Updating the code
|
130
|
|
-=================
|
131
|
|
-To update cloned tsdecrypt, go to the directory where the repository
|
132
|
|
-is cloned and run the following commands:
|
133
|
|
-
|
134
|
|
- git fetch origin
|
135
|
|
- git merge origin/master
|
136
|
|
- git submodule update
|
137
|
|
- make distclean all
|
138
|
|
-
|
139
|
188
|
Examples
|
140
|
189
|
========
|
141
|
190
|
To get a quick start here are some example command lines. The default
|
|
@@ -155,13 +204,37 @@ Examples:
|
155
|
204
|
|
156
|
205
|
# Same as above but do not filter output stream thus allowing
|
157
|
206
|
# EIT/TOT/NIT, etc tables to passthrough
|
158
|
|
- tsdecrypt --output-filter --emm -camd-server 10.0.1.1 \
|
|
207
|
+ tsdecrypt --no-output-filter --emm --camd-server 10.0.1.1 \
|
|
208
|
+ --input 239.0.50.11:5000 --output 239.78.78.78:5000
|
|
209
|
+
|
|
210
|
+ # Choose program/service_id to decrypt. Useful when the input is MPTS
|
|
211
|
+ tsdecrypt --camd-server 10.0.1.1 --input-service 1234 \
|
159
|
212
|
--input 239.0.50.11:5000 --output 239.78.78.78:5000
|
160
|
213
|
|
161
|
214
|
# Read stream over RTP and process VIACCESS encoded channel
|
162
|
215
|
tsdecrypt --ca-system VIACCESS --emm --camd-server 10.0.1.1:2233 \
|
163
|
216
|
--input-rtp --input 239.0.50.11:5000 --output 239.78.78.78:5000
|
164
|
217
|
|
|
218
|
+ # Decrypt stream encypted with CAID 0x0963 (NDS, sky)
|
|
219
|
+ tsdecrypt --camd-server 10.0.1.1 --ca-system NDS --caid 0x0963 \
|
|
220
|
+ --input 239.0.50.11:5000 --output 239.78.78.78:5000
|
|
221
|
+
|
|
222
|
+ # Send only EMMs to OSCAM for CAID 0x0963 (NDS, sky)
|
|
223
|
+ tsdecrypt --camd-server 10.0.1.1 --emm-only --caid 0x0963 \
|
|
224
|
+ --input 239.0.50.11:5000 --output /dev/null
|
|
225
|
+
|
|
226
|
+ # Decrypt stream encypted with CAID 0x0963 (Bulcrypt)
|
|
227
|
+ tsdecrypt --camd-server 10.0.1.1 --caid 0x5581 \
|
|
228
|
+ --input 239.0.50.11:5000 --output 239.78.78.78:5000
|
|
229
|
+
|
|
230
|
+ # Decrypt BISS encrypted stream
|
|
231
|
+ tsdecrypt --biss-key 0x112233445566 --input 239.0.50.11:5000 \
|
|
232
|
+ --output 239.78.78.78:5000
|
|
233
|
+
|
|
234
|
+ # Decrypt file encypted with constant code word
|
|
235
|
+ tsdecrypt --const-cw 0x00000000000000001111111111111111 \
|
|
236
|
+ --input encrypted-file.ts --output decrypted-file.ts
|
|
237
|
+
|
165
|
238
|
|
166
|
239
|
OSCAM cs378x configuration
|
167
|
240
|
==========================
|
|
@@ -227,7 +300,8 @@ tsdecrypt:
|
227
|
300
|
|
228
|
301
|
Please configure your software to stream ECMs and EMMs. For dvblast
|
229
|
302
|
(version 2.0 and above) the correct options are --ecm-passthrough and
|
230
|
|
---emm-passthrough.
|
|
303
|
+--emm-passthrough. Note that dvblast 2.1 have broken ecm passthrough
|
|
304
|
+so use at least version 2.2.
|
231
|
305
|
|
232
|
306
|
Releases
|
233
|
307
|
========
|