Вставьте синхронизированные метаданные в HLS (HTTP Live Stream) с помощью id3taggenerator и mediafilesegmenter

Я пытаюсь вставить синхронизированные метаданные в видеофайл .mov или .mp4. Я прочитал об этом здесь:

По сути, моя проблема в том, что что бы я ни пытался, я получаю сгенерированный .m3u8 и кучу файлов .ts, как и ожидалось, без каких-либо ошибок, но мне кажется, что метаданные не вставляются.

Позвольте мне подробно объяснить, чем я занимаюсь.

Сначала я создаю несколько тегов id3 следующим образом:

id3taggenerator -o tag1.id3 -t "Test"

Затем я пишу текстовый файл макроса под названием 'macrofile.txt', содержащий:

5 id3 tag1.id3

Я убеждаюсь, что файл заканчивается символом новой строки, и каждое поле разделяется одним пробелом, а не табуляцией.

Затем я использую mediafilesegmenter для создания m3u8 с файлами .ts с помощью команды, которая также включает макрофайл, как показано ниже:

mediafilesegmenter -index-file test.m3u8 -M macrofile.txt -no-floating-point-duration -iframe-index-file none test.mp4

Это успешно сгенерирует файл m3u8 + кучу файлов .ts (один ts за 10 секунд видео)

Я загружаю их на свой веб-сервер (очевидно, я добавил правильные типы MIME и т. Д.) И из своего приложения для iOS открываю поток:

NSURL* url = [NSURL URLWithString:@"http://url.com/test.m3u8"];
player = [[MPMoviePlayerController alloc] initWithContentURL:url];

Я также не забудьте добавить уведомление MPMoviePlayerTimedMetadataUpdatedNotification следующим образом:

NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
[center addObserver:self
           selector:@selector(metadataUpdate:)
               name:MPMoviePlayerTimedMetadataUpdatedNotification
             object:nil];

Теперь проблема в том, что MPMoviePlayerTimedMetadataUpdatedNotification никогда не запускается.

Если я попробую с тестовым потоком Apple (https://devimages.apple.com.edgekey.net/resources/http-streaming/examples/bipbop_16x9/bipbop_16x9_variant.m3u8), который включает синхронизированные метаданные каждые 5 секунд -> Работает отлично

Вот почему я предполагаю, что мои сгенерированные файлы .ts не содержат никаких метаданных или, по крайней мере, я где-то делаю что-то не так, но я проверил все, что мог, и теперь у меня нет идей.


person Yaniv De Ridder    schedule 01.02.2013    source источник
comment
Вы пробовали открыть файл .ts в шестнадцатеричном редакторе? ID3 должны четко отображаться спереди, если они там есть   -  person Rich Tolley    schedule 01.02.2013
comment
При внедрении метаданных с использованием макро-файла с mediafilesegmenter Beta Version 1.1 (130110) это просто не работает. Когда я смотрю с помощью HEX-редактора, он вводит только пустой ID3. Если я ввожу id3 с помощью параметра -F -y (без использования файла макроса), я могу четко видеть в HEX-редакторе правильный ID3, и он работает. ПРОБЛЕМА: чтобы внедрить метаданные по времени, вы можете сделать это только с помощью файла макроса ... Кто-то с такой же проблемой? Я начинаю задаваться вопросом, не является ли это ошибкой в ​​этой версии mediafilesegmenter .. Может быть, кто-нибудь может указать мне на более старую версию установщика, чтобы попробовать ?? Спасибо   -  person Yaniv De Ridder    schedule 04.02.2013


Ответы (2)


Потратив на это немного больше времени, я решил обратиться в службу технической поддержки разработчиков Apple.

Это действительно ошибка в последней версии средства mediafilesegmenter 1.1 (130110).

Вот прямая ссылка для доступа к отчету об ошибке https://bugreport.apple.com/cgi-bin/WebObjects/RadarWeb.woa/67/wo/quUWkJlEHk4L6S6U9geEZ0/21.83.28.0.13

ИДЕНТИФИКАТОР ОШИБКИ: 13178898.

Я обновлю свой ответ здесь, как только ошибка будет решена или Apple предоставит мне обходной путь.

person Yaniv De Ridder    schedule 08.02.2013
comment
Также пробовал с mediafilesegmenter версии 1.1 (120821), и он тоже не работает. Попробую найти более раннюю версию. - person Yaniv De Ridder; 10.02.2013
comment
Эта ошибка, по-видимому, исправлена ​​с помощью инструментов HTTP Live Streaming Tools, выпущенных 25 апреля 2013 г. - person GnarlyDog; 29.04.2013

Этот блог на wordpress очень помог мне в решении ваших проблем. https://jmacmullin.wordpress.com/2010/11/03/adding-meta-data-to-video-in-ios/

person Jace Sparks    schedule 30.03.2015