Concurrent Media Transcoding and Streaming via Data Chunking
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current media streaming technologies require significant time delays for users to view media files on HTML5 media players, as they need to wait for entire media files to be transcoded from incompatible formats to H264 format before playback, leading to a poor user experience.
Innovation Solution
A method and system for streaming media files while concurrently transcoding them from an incompatible format to a compatible format, such as H264, by breaking the media file into data chunks, transcoding each chunk, and streaming the transcoded fragments simultaneously, allowing immediate playback without waiting for the entire file to finish transcoding.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the media file is fully transcoded before streaming, then the playback quality is ensured, but the time delay increases significantly
Solution Approach 1:
The media file is divided into multiple data chunks that are transcoded and streamed separately. The server transcodes and streams chunks sequentially (first chunk, then second chunk, etc.) rather than waiting for complete file transcoding, enabling early playback while maintaining quality through proper fragmentation and reassembly at the client side
Solution Approach 2:
The server begins transcoding the first data chunk immediately upon receiving the playback request, before the entire media file is fully processed. This preliminary action on the first chunk enables the server to start streaming before complete transcoding finishes, reducing time delay while ensuring quality through controlled chunk-by-chunk processing
2Adaptability or versatility
If the entire media file is transcoded before streaming, then the playback compatibility is ensured, but the processing time increases
Solution Approach 1:
The media file is segmented into data chunks with specific format requirements (e.g., fMP4 format with moof and mdat boxes). Each chunk is independently transcoded to the target format (H.264, AAC) and streamed separately, ensuring compatibility while reducing total processing time through parallel and sequential chunk processing
Solution Approach 2:
The server performs preliminary transcoding on the first data chunk to the target format immediately upon request, creating a playable segment before complete file processing. This preliminary action on individual chunks enables faster delivery while maintaining full format compatibility through proper chunk structure and concatenation
3Loss of time
If the media file is streamed during concurrent transcoding, then the time delay is reduced, but the system complexity increases
Solution Approach 1:
The system manages complexity by segmenting the media file into data chunks that can be processed and streamed independently. Each chunk undergoes format conversion to fMP4 with proper box structures (moof, mdat, ftyp, moov), allowing the server to stream chunks sequentially while maintaining manageable processing complexity for each individual chunk
Solution Approach 2:
The server acts as an intermediary that receives the original media file, transcodes it chunk-by-chunk to the target format, and streams the transcoded chunks to the client. This intermediary processing approach enables concurrent transcoding and streaming while managing system complexity through controlled chunk processing and proper format conversion
Data Source
AI summary
A method includes receiving from a user a request to play a media file on a media player operating on a client terminal, where the media file is coded with a first coding format incompatible with the media player. The media file is transcoded from the first coding format to a transcoded media file in a second coding format compatible with the media player, and streaming the transcoded media file over a communication network to the media player concurrently during transcoding by transcoding a data chunk from a plurality of data chunks related to the media file respectively to a transcoded data fragment. The transcoded data fragment is sent for stream viewing on the media player while transcoding a next data chunk from said plurality of data chunks. The transcoded data fragments are written to the transcoded media file and stored in a memory.


