Сегмент HTTP Live Streaming MPEG TS

Я использую FFMPEG и бесплатный сегментатор (Carson Mcdonald's) для создания своих сегментов ts, которые я позже сохраняю на веб-сервере и играю с Quicktime, играя в .m3u8.

Если у меня есть сегменты 1,2,3,4 и еще один поток с сегментами 1,2,3,4 и я хочу чередовать их, что мне делать. Если я делаю так: 1,2, другие потоки 3, 4, все работает нормально. Однако, если я хочу сделать следующее: 1,2, другие потоки 4, 4, это не работает.

Другими словами, добавляемый сегмент должен иметь тот же номер, что и сегмент, который я заменяю. Это почему? Это связано с ПЦР? Я хотел бы иметь возможность чередовать любой сегмент в любом месте. Как я могу это сделать?

Спасибо,

Файл M3U8

#EXTM3U 
#EXT-X-TARGETDURATION:10 
#EXT-X-MEDIA-SEQUENCE:21 
#EXTINF:10, sample_ep_386k-00021.ts 
#EXTINF:10, media_2.ts 
#EXTINF:10, sample_ep_386k-00023.ts

person user1069624    schedule 07.12.2011    source источник
comment
Не могли бы вы выложить файл M3U8?   -  person TheJuice    schedule 07.12.2011
comment
В качестве эксперимента, если вы объедините файлы, например. 'cat 1 2 other4 4 › test.ts', можете ли вы воспроизвести это видео обратно в VLC?   -  person TheJuice    schedule 07.12.2011
comment
Не могли бы вы уточнить, что это не работает? Какое поведение вы видите?   -  person TheJuice    schedule 07.12.2011
comment
@TheJuice Я имею в виду, что он воспроизводит sample_ep_386k-00021, затем, когда он переходит к сегменту другого потока (media_2), он зависает, затем прыгает и переходит к сегменту после этого (сэмпл.. 23) ... так что он даже не Сыграй. Но если media_2 на самом деле был 22-м сегментом в другом потоке... он воспроизводится нормально!   -  person user1069624    schedule 07.12.2011
comment
@TheJuice Когда я объединяю файлы, как вы предложили, они нормально воспроизводятся с VLC ... Я чувствую, что проблема в том, что я воспроизводю их с файлом списка воспроизведения на месте без объединения.   -  person user1069624    schedule 07.12.2011


Ответы (2)


Вы изменили файл списка воспроизведения (индекс) .M3U8, чтобы он указывал на два 4 файла? Я предполагаю, что они находятся в разных местах на сервере.

person TheJuice    schedule 07.12.2011
comment
Да, я изменил его, чтобы включить расположение новых сегментов. На данный момент я держу их в одном месте для простоты. Это файл списка воспроизведения: #EXTM3U #EXT-X-TARGETDURATION:10 #EXT-X-MEDIA-SEQUENCE:21 #EXTINF:10, sample_ep_386k-00021.ts #EXTINF:10, media_2.ts #EXTINF:10, sample_ep_386k-00023.ts, где медиа_2 из другого потока, сегмент номер 2. - person user1069624; 07.12.2011
comment
Просто чтобы было ясно, если media_2 был даже sample_ep_386k-00003 или любым сегментом в том же потоке, но с другим номером сегмента ... это также не работает. - person user1069624; 08.12.2011
comment
Я нашел способ обойти свою первоначальную проблему. Спасибо. - person user1069624; 13.12.2011
comment
@tommychheng Извините, я не совсем помню, потому что это было некоторое время назад ... но я считаю, что вместо редактирования текущего файла списка воспроизведения я указывал на другой файл с сегментами, которые я хочу чередовать, а затем указывал вернуться к этому, когда это будет сделано ... - person user1069624; 07.10.2013

Это одна из распространенных проблем, с которыми сталкиваются многие в SO.

См. мой ответ здесь: сегменты MPEG-TS HTTP Live Streaming

вещи, чтобы проверить:

o Прерывистость PCR (временная метка)
o Совпадающая частота кадров
o Формат файла
o Количество и тип дорожек
o Параметры кодирования
o Последовательность кодирования

person Dipan Mehta    schedule 23.01.2012