Abstract: Digital content is extracted from single and multiple-program transport streams for subsequent non-real-time (background) transmission in a bandwidth-efficient manner. At an encoder, several null and/or nonessential (N/N) packets (e.g., packets of unused programs) in a transport stream are replaced by an annotation packet (AP) to obtain non-real-time packets. The non-real time packets are inserted into null packet locations (NU) of a real time transport stream. At a decoder, the annotation packets are used to regenerate a specified number of null packets to maintain the original separation of packets of the non-real time data (for timing purposes), allowing existing hardware and/or software to decode the selected program.