Проблемы с потоковой передачей по iPhone через каскадные видеофайлы - PullRequest
3 голосов
/ 04 марта 2010

Мы видим это, когда "связываем" два видеофайла вместе.

Например, у нас есть рекламное видео, которое сегментировано, и файл контента, который также сегментирован. Мы создаем новый файл, в котором содержатся как рекламные, так и контентные сегменты. Однако мы видим проблему, из-за которой либо урезается содержание рекламы, либо у контента возникают проблемы с синхронизацией аудио / видео. И реклама, и контент сегментируются одинаково, 5-секундная сегментация. однако, поскольку объявления имеют переменную длину, файл результатов может остаться в сегменте что-то вроде:

#EXTM3U
#EXT-X-TARGETDURATION:5
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5, 
fileSequence6.ts
#EXTINF:5, 
fileSequence7.ts
#EXTINF:4, 
fileSequence8.ts
#EXTINF:5, 
fileSequence0.ts
#EXTINF:5, 
fileSequence1.ts
#EXTINF:5, 
fileSequence2.ts
#EXTINF:3, 
fileSequence3.ts

Это правильный способ воспроизвести 2 файла один за другим без буферизации? генерировать-вариант-plist следует использовать для воспроизведения списка из 2 файлов?

1 Ответ

0 голосов
/ 30 июля 2011

Если у вас есть перерыв в потоке для переключения на коммерческий, рекламный или альтернативный источник видео, тогда вы хотите ввести тег разрыва до начала следующего сегмента, например:

#EXTM3U
#EXT-X-TARGETDURATION:5
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5, 
movie0.ts
#EXTINF:2, 
movie1.ts
#EXT-X-DISCONTINUITY
#EXTINF:5,
commercial0.ts
#EXTINF:5, 
commercial1.ts
#EXTINF:3, 
commercial2.ts

Это становится немного сложнее, если вы шифруете потоки, потому что они используют прогрессивное шифрование, основанное на состоянии шифрования предыдущих сегментов и порядковом номере, которые собираются вместе, чтобы сформировать «Вектор инициализации». Если вы прерываете поток, вы должны сбросить вектор инициализации, чтобы шифрование / дешифрование могло продолжаться непрерывно. Это сложный процесс, поэтому лучше всего искать вектор инициализации в документах Apple.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...