Saturday, September 29, 2018

DVB Inspector for MPEG TS (1)

Salah satu program yang cukup bagus untuk analisa MPEG Transport Stream adalah software DVB Inspectror. Program ini free, bisa di download disini atau disini.

Tidak diperlukan instalasi. Hanya perlu extract file zip, lalu jalankan "dvb.bat".

Open sebuah file .ts, spt file stream0.ts (file tswift.mp4 yang di jadikan HLS)

Maka dari sini akan bisa di analisys file TS tsb.

BESAR FILE TS = N x 188 Bytes


Terlihat bahwa file stream0.ts terdiri dari paket TS 0 sd 2104, artinya ada 2105 paket TS x 188 bytes = 395740 bytes. Dan apabila kita lihat besar filenya juga 395740 bytes.

Dari gambar diatas juga dapat dilihat:

o Kotak warna hijau adalah TS yang berisi Vidio
o Kotak warna kuning adalah TS yang berisi Audio
o Kotak berisi kotak kecil hitam berisi Adaptation Field (dimana ada info PCR didalamnya)
o Kotak digaris putus-putus pertanda ada Payload dan dimulai di kotak tsb

Secara Paket di gambar diatas:

Paket 0: SDT/BAT --> Biru
Paket 1: PAT --> Merah
Paket 2: PMT Service01 --> Pink
Paket 4: Video --> Hijau
Paket 266: Audio --> Kuning

TS PAKET 188 Bytes


Struktur dari TS:
o Header TS ada 4 bytes
o Header Adaptation Field (jika ada)
o Payload

DETIL STRUKTUR TS


Struktur TS terdiri dari PID. Namun ada PID PID yang khusus yang disebut PSI (Program Spesific Information). Contoh PSI ini antara lain PAT, PMT, NIT, SDT.


PID

Terlihat pada garmbar diatas ada 5 PID:
1. PID 0 --> PAT (default)
2. PID 17 --> SDT (default)
3. PID 256 --> Video
4. PID 257 --> Audio
5. PID 4096 --> PMT

Lalu dimana PID dari PCR?

Sebagaimana kita ketahui PCR diperlukan dalam proses pada decoder untuk time mendecode (DTS) dan time untuk menampilkan (PTS).

PID PCR bisa di cari dari info pada PMT.


Ternyata PCR PID = Video PID yaitu 256. (Note: Terkadang ada reception dari satellite yang membedakan PCR PID ini dengan Video PID).

ANALISIS PAKET

Jika dilihat ada setidaknya 5 paket yang perlu di analisis:

Paket 0: SDT/BAT --> Biru
Paket 1: PAT --> Merah
Paket 2: PMT Service01 --> Pink
Paket 4: Video --> Hijau
Paket 266: Audio --> Kuning

SDT

SDT (Service Description Table) berisikan informasi metadata tentang Layanan yang dikandung dalam program. Seperti apakah ada EIT (Event Information Table) seperti EPG nya. Atau apakah acara tertentu akan segera di mulai, dsb.



PAT


Ingat di artikel sebelumnya bahwa PAT ini seperti daftar isi pada sampul buku. Dimana daftar isinya berisi tentang PMT. Disini hanya ada 1 isi PAT yaitu PID 4096 (yaitu PMT). PMT merupakan Tabel yang berisi informasi tentang sebuah program yaitu informasi PID Video dan Audio nya.


PMT



Terlihat bahwa PMT isinya ada 2 PID yaitu PID Video dan PID Audio.

VIDEO


AUDIO


PCR/PTS/DTS GRAPH


PCR: Program Clock Refference (clock dari system)
DTS: Decoding Time Stamp (waktu dimulainya proses decoding)
PTS: Presentation Time Stamt (waktu dimunculkan nya gambar di display)

Terlihat bahwa pada paket 1115, PCR 3.2s, DTS dedecode setelahnya yaitu 3.9s, dan PTS (gambar frame Video) ditampilkan pada detik 3.9416.

Ini adalah tampilan yang benar. Dimana PCR selalu berada di bawah, setelah itu diikuti DTS, setelah itu diikuti PTS.

Apabila ada kurva dimana PTS ada dibawah PCR, maka sudah dipastikan ada masalah.

TS diatas di ambil dari script ffmpeg dengan tanpa KeyFrame force. Jika KeyFrame tidak di force maka akan ada P dan B frame. B frame akan telat di tampilkan menunggu P frame selesai di proses. Oleh karena itu PTS (lingkaran warna biru) tidak rata.

Apabila kita force Keyframe maka hampir maka tidak ada B frame yang terbentuk, sehingga urutan kedatangan frame bisa langsung ditampilkan (tidak perlu menunggu). Efeknya PTS (lingkaran warna biru) akan rata, seperti gambar berikut ini.


Namun efeknya, karena tidak ada B framenya maka kompresi akan kurang efisien, sehingga file menjadi lebih besar. Jika dengan key frame, maka paket TS ada dari 0 sd 2136 (total 2137), sehingga besar file 2137 x 188 byte = 401756 bytes.

No comments: