Let's take these one by one.
Latency. In a live streaming application, the goal is almost always to minimise this. There is always a balance between cost, complexity and latency but lower latency for live streaming is nearly always better. In a growing file scenario, there is usually more tolerance (sometimes minutes rather than seconds) for the latency of using the received data when compared to a live stream. This fact can be used in the internal structure of the file when designing the multiplex or partitions or index tables to reduce overheads and improve efficiency.
History. In a growing file scenario, the complete file may exist somewhere in the cloud or on external storage and an index table for the entire file may exist. In the MXF world, the index tables can be chunked to allow the file to be used in 10sec or 1min or 10min chunks depending on the application with the full index table being transmitted at the end of the file. In contrast, a live stream multiplex will often omit index tables and they can be recreated when the file is ingested or rewrapped on reception.
Timing & Sync. In a file, the timing and synchronisation are usually relative to the internals of the file, whereas in a live stream, the timing could be relative to the clock on the wall or to the start of transmission. In the work being carried out on the synchronisation of component IP streams, this becomes important when different elements in the stream might be sent via different routes and then re-synchronised.
Why is any of this important? It's because we are living in a world where moving data over IP networks is less of a technological barrier and the economics of the data move are rising higher in the list of things to consider. One approach for HTTP streaming uses chunks of transport stream (a live streaming multiplex) stored as files on a server and then contiguously streamed to achieve a streaming experience. Many live-highlights editing workflow use MXF files growing on disc to be randomly accessed by editing software to build a package while the file is coming in.
If you're designing a workflow where you need to manipulate the content while it's arriving, the decision of the format on the wire won't be a technological one for much longer. It will be a commercial decision based on the requirements of the workflow and the equipment available.
Is it a file? Is it a stream? Who cares! Put a blue cape on it and call it superman. It's getting the right results at the right time for the right cost that counts.
|