Cerco di inserire i metadati temporizzati in un file video .mov o .mp4. ho letto su di esso qui:Inserire i metadati temporizzati in HLS (HTTP Live Stream) utilizzando id3taggenerator e mediafilesegmenter
- Live stream metadata reading in Apple HTTP Live Streaming
- http://jmacmullin.wordpress.com/2010/11/03/adding-meta-data-to-video-in-ios/
- https://developer.apple.com/resources/http-streaming/
In sostanza, il mio problema è che tutto ciò che provo, ho l'.m3u8 generato e un mazzo di. file ts come previsto senza errori, ma mi sento come se i metadati non fossero inseriti.
Lasciatemi spiegare in dettaglio cosa faccio.
Per prima cosa ho generare alcuni tag ID3 come segue:
id3taggenerator -o tag1.id3 -t "Test"
poi scrivo un file di testo macro denominata 'macrofile.txt' contenente:
5 id3 tag1.id3
mi assicuro che il file termina con un carattere di nuova riga e ciascun campo è separato da un singolo spazio e non da tabulazioni.
allora io uso mediafilesegmenter per creare il M3U8 con i file .ts con il comando che includono anche il MACROFILE come segue:
mediafilesegmenter -index-file test.m3u8 -M macrofile.txt -no-floating-point-duration -iframe-index-file none test.mp4
Questo genererà correttamente il file M3U8 + un gruppo di file .ts (uno ts per 10 sec del video)
a caricare quelli sul mio webserver, (ovviamente aggiunti i tipi MIME di destra, ecc) e dalla mia app iOS, apro il flusso:
NSURL* url = [NSURL URLWithString:@"http://url.com/test.m3u8"];
player = [[MPMoviePlayerController alloc] initWithContentURL:url];
Assicurati anche di aggiungere la notifica MPMoviePlayerTimedMetadataUpdatedNotification come segue:
NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
[center addObserver:self
selector:@selector(metadataUpdate:)
name:MPMoviePlayerTimedMetadataUpdatedNotification
object:nil];
Ora il problema è che, il MPMoviePlayerTimedMetadataUpdatedNotification non viene mai attivato.
Se provo con il flusso di test Apple (https://devimages.apple.com.edgekey.net/resources/http-streaming/examples/bipbop_16x9/bipbop_16x9_variant.m3u8) che include i metadati a tempo ogni 5 secondi -> funziona perfettamente
Quindi questo è il motivo per Suppongo che i miei file .ts generati non contiene tutti i metadati o almeno Sto facendo qualcosa di sbagliato da qualche parte, ma ho controllato tutto quello che potevo e ora sono fuori di idee.
Spero che qualcuno possa aiutarmi con questo.
Grazie!
Hai provato ad aprire un file .ts in un editor esadecimale? Gli ID3 dovrebbero apparire chiaramente in primo piano se sono lì –
Quando si iniettano i metadati usando un file macro con mediafilesegmenter versione beta 1.1 (130110) semplicemente non funziona. Quando guardo con un editor esadecimale, si iniettano solo ID3 vuoto. Se inserisco id3 usando il parametro -F -y (senza usare un file macro), posso vedere chiaramente nell'editor HEX il giusto ID3 e funziona. IL PROBLEMA: per iniettare i metadati temporizzati, puoi farlo solo con un file macro ... Qualcuno con lo stesso problema? Inizio a chiedermi se non è un bug in questa versione del mediafilesegmenter .. Forse qualcuno può indicarmi una versione precedente dell'installer per provare ?? Grazie –