TSDuck
Quelques commandes utiles pour manipuler des fichiers MPEG-TS avec les outils TSDuck
Installation sous Debian 12.7
à faire en root
1wget https://github.com/tsduck/tsduck/releases/download/v3.38-3822/tsduck_3.38-3822.debian12_amd64.deb
2dpkg -i tsduck_3.38-3822.debian12_amd64.deb
3apt -f install
note: https://tsduck.io/download/tsduck/ pour checker les nouvelles versions
AlmaLinux 9.4
1wget https://github.com/tsduck/tsduck/releases/download/v3.38-3822/tsduck-3.38-3822.el9.x86_64.rpm
2rpm -i tsduck-3.38-3822.el9.x86_64.rpm
Liste des commandes fournies par tsduck
1tsanalyze tsdektec tsfixcc tslsdvb tsresync tstables
2tsbitrate tsdump tsftrunc tsort tsscan tsterinfo
3tscharset tsecmg tsfuzz tsp tssmartcard tstestecmg
4tscmp tseit tsgenecm tspacketize tsstuff tsvatek
5tsconfig tsemmg tshark tspcap tsswitch tsversion
6tscrc32 tset tshides tspcontrol tstabcomp tsxml
7tsdate tsfclean tslatencymonitor tspsi tstabdump
Quelques commandes utiles
Lister les plugins
1tsp --list-plugins
Extraire les pids
1% tsp -I file test.TS -P count -O drop
2* count: PID 0 (0x0000): 5,868 packets
3* count: PID 17 (0x0011): 7,091 packets
4* count: PID 3644 (0x0E3C): 7,752 packets
5* count: PID 3652 (0x0E44): 226,956 packets
Infos sur les tables
1% tsp -I file test.TS -P psi -O drop
2
3* PAT, TID 0x00 (0), PID 0x0000 (0)
4 Version: 20, sections: 1, total size: 16 bytes
5 - Section 0:
6 TS id: 1 (0x0001)
7 Program: 1165 (0x048D) PID: 3644 (0x0E3C)
8
9* SDT Actual, TID 0x42 (66), PID 0x0011 (17)
10 Version: 1, sections: 1, total size: 44 bytes
11 - Section 0:
12 Transport Stream Id: 0x0001 (1)
13 Original Network Id: 0x0000 (0)
14 Service Id: 0x048D (1165), EITs: no, EITp/f: no, CA mode: free
15 Running status: undefined
16 - Descriptor 0: Service (0x48, 72), 22 bytes
17 Service type: 0x02 (Digital radio sound service)
18 Service: "Test_Vaucluse_Iqoya", Provider: ""
19
20* PMT, TID 0x02 (2), PID 0x0E3C (3644)
21 Version: 1, sections: 1, total size: 16 bytes
22 - Section 0:
23 Program: 0x048D (1165), PCR PID: 0x0E44 (3652)
Remapper un pid (3644 -> 1165)
1% tsp -I file test.TS -P count -O drop
2* count: PID 0 (0x0000): 5,868 packets
3* count: PID 17 (0x0011): 7,091 packets
4* count: PID 3644 (0x0E3C): 7,752 packets
5* count: PID 3652 (0x0E44): 226,956 packets
6
7% tsp -I file test.TS -P remap 3644=1165 -O file test2.TS
8
9% tsp -I file test2.TS -P count -O drop
10* count: PID 0 (0x0000): 5,868 packets
11* count: PID 17 (0x0011): 7,091 packets
12* count: PID 1165 (0x048D): 7,751 packets
13* count: PID 3652 (0x0E44): 226,918 packets
14* count: PID 8191 (0x1FFF): 39 packets
ça a ajouté des paquets de padding
Considérations sur le MPEG-TS
Fichier binaire composé d'une concaténation de paquets TS faisant 188 octets chacun. Chaque paquet commence par 0x47 (G en ASCII). Chaque paquet est identifié par son PID. Un flux peut contenir un programme unique SPTS ou plusieurs programmes multiplexés MPTS. Quelques valeurs de pids sont particulières.
- PID 0 (0x00) = PAT, Program Association Table. Liste des PIDS de tous les PMT du streams.
- PID 8191 (0x1FFF) = Null Packet, paquet de bourrage
Définitions
- PID = Packet Identifier, sur 13 bits, nombre entre 0 (0x0000) et 8192 (0x1FFF), présent dans chaque paquet. Doit être répété tous les 100ms
- PAT = Program Association Table. Liste des PIDS de tous les PMT du streams.
- BAT = Bouquet Association Table. commercial operator description and services, several commercial operators may sell the same services
- SDT = Service Description Table: editorial description of the services, service names and ancillary services
- PMT = Program Map Tables. Pour chaque programme, la liste des PIDS associés + metadata. Doit être répété tous les 100ms. Les ES référencés sont entre 0x0020 et 0x1FFE
- PCR = Program Clock Reference, identifie le PID qui contient l'horloge, généralement la vidéo ? optionnel ?
Exemple de composition de flux :
- PID 0 (PAT)
- PID 17 (BAT/SDT)
- PID 110 (PMT) : Programme 1 = 120 + 130 + 131 + 132
- PID 210 (PMT) : Programme 2 = 220 + 230 + 231 + 232
- PID 310 (PMT) : Programme 3 = 320 + 330 + 331 + 332
- PID 120 (PES) : Video
- PID 220 (PES) : Video
- PID 320 (PES) : Video
- PID 130 (PES) : Audio fra
- PID 131 (PES) : Audio qaa (version originale)
- PID 132 (PES) : Audio qad (audio description)
- PID 230 (PES) : Audio fra
- PID 231 (PES) : Audio qaa (version originale)
- PID 232 (PES) : Audio qad (audio description)
- PID 330 (PES) : Audio fra
- PID 331 (PES) : Audio qaa (version originale)
- PID 332 (PES) : Audio qad (audio description)
où sont stockés :
- LCN, SID : dans SDT
- PCR : lien vers 1ère piste vidéo
Ressources sur MPEG-TS
comments powered by Disqus