2012-08-10 24 views
6

Sto provando a ricostruire un file video da un server Smooth Streaming. Smooth Streaming serve file fMP4 che sono normali file MP4 senza né il loro FTYP né i loro atomi MOOV.Ricostruzione del file MP4 dall'atomo "mdat" MP4 frammentato?

Tutte le informazioni memorizzate in tali atomi sono inserite in un file XML manifest, che ho.

c'è un modo per ricostruire il file originale di programmazione MP4, mediante:

  • ricostruire un nuovo file direttamente da H264 contenuti/AAC situato in MDAT (e informazioni in formato immagine); o
  • ricostruzione ftyp e MOOV atomi

Oppure, c'è uno strumento che può fondersi FMP4?

risposta

3

Sì. È completamente possibile

È possibile farlo con FFmpeg. Studia il mov.c [demuxer MP4] da libavformat.

È necessario completare l'MP4 in memoria con tutti i dati "mancanti" in FMP4. In altre parole, quando hai bisogno di un atomo che non esiste in fMP4 [quasi tutto], dovrai inserire tutte le informazioni codificate (tali informazioni, la maggior parte provengono dal manifest).

Non è facile ... ma sicuramente è possibile. L'ho fatto da solo Sfortunatamente il codice non è di mia proprietà.

Buona fortuna! ;-)

UPDATE: la specifica del formato PIFF sarà molto utile (http://go.microsoft.com/?linkid=9682897) così si può capire che cosa è già nella FMP4 e ciò che non lo è!

0

È semplice ricreare un file mp4, se sono presenti file ism e ismc correlati a file mp4 frammentati.

È necessario conoscere il tipo di supporto, il tipo di codec, i dati specifici del codec e la scala temporale di ciascun trak per ricostruire un atomo moov e ftyp.

queste informazioni possono essere recuperate da ism e file ismc.

è possibile recuperare un tipo di supporto di ogni traccia dal file ism. è possibile recuperare il tipo di codec, i dati specifici del codec e la scala temporale di ciascuna traccia dal file ismc.

semplicemente parlando, file ISM/ISMC sono i metadati per server e client in modo che è possibile ricostruire meta dati (ftyp, Moov Atom) per un file mp4.

+0

Ho ism, ismc e ismv (file mp4 frammentato). Hai ragione, possiamo ottenere il tipo di codec, i dati specifici del codec e la scala temporale di ogni traccia dal file ismc. Inoltre, è possibile accedere a queste informazioni aggiungendo/Manifest in url, come http: //localhost/pp/Test.ism/Manifest. Ciò restituirà i dati manifest. Ora puoi dirmi in qualche modo di creare il file MP4 da questo? Voglio dire, c'è una libreria o uno snippet di codice disponibile per farlo. Sto provando lo stesso compito dallo scorso 1 mese e non ho alcun progresso. Per favore dammi un'idea. – waghekapil