1. 程式人生 > >ffmpeg對ts流的解析

ffmpeg對ts流的解析

下面我們來分析,在ISO/IEC 13818-1裡有說明,PAT(Program Association Table)PID值為0x00TS包的標識(sync_byte)0x47,並且為了確保這個TS包裡的資料有效,所以我們一開始查詢47 40 00這三組16進位制數,為什麼這樣?具體的奧祕在TS包的結構上,前面已經說了sync_byte固定為0x47。現在往下看transport_error_indicatorpayload_unit_start_indicatortransport_priorityPID這四個元素,PID0x00,這是PAT的標識。transport_error_indicator
0transport_priority0。把他們看成是兩組816進位制數就是:40 00。現在看看我們的TS流片斷例子,看來正好是47 40 00開頭的,一個TS流的頭部佔據了4個位元組。剩下的負載部分的內容由PID來決定,例子看來就是一個PAT表。在這裡有個地方需要注意一下,payload_unit_start_indicator1時,在前4個位元組之後會有一個調整位元組,它的數值決定了負載內容的具體開始位置。現在看例子中的資料47 40 00 17 00第五個位元組是00,說明緊跟著00之後就是具體的負載內容。