There are several ways to embed filler data into a MPEG transport stream (MPEG-TS) conforming to ITU-T Rec. H.222.0 (also known as ISO/IEC 13818-1). Besides using null packets having the reserved PID 0x1FFF, within a video elementary stream (ES) zero byte stuffing can be used (see mpeg2cleaner). H.264 and H.265 both also provide a specific NAL unit for filler data.

Another option to insert filler data is the use of special TS packets which only have an Adaptation Field (and no payload). Furthermore the indicators/flags bitmask at the beginning of the Adaptation Field is zero, so that the Adaptation Field does not contain meaningful information. The remaining TS packet then comprises of stuffing bytes only. The following picture shows such TS packets in a hex editor:
Video elementary stream in hex editor

As in TS packets carrying only an Adaptation Field the Continuity Counter is not increased, this special TS packets can be removed without the need to manipulate other TS packets. The AFFcleaner performs the removal of such TS packets containing Adaptation Field fillers.

Console output

If you have questions/suggestions/criticism, please use the e-mail address in the homepage imprint.

 Alternative programs

Meanwhile also some other programs remove Adaptation Field filler data:
If there is a similar feature in another program, I would be glad to get a hint, so that it can be listed here.


EXE AFFcleaner v1.0a - Windows version

Link AFFcleaner v1.0a - PPA for Ubuntu 14.04/16.04 (i386/AMD64)

Archive AFFcleaner v1.0a - C source code

 Release history

v1.0a (27.05.2015)

v1.0 (26.05.2015)