в качестве фона: я разрабатываю приложение для iPad, где пользователи могут просматривать видео, предоставленные нами. Когда пользователь выбирает видео, он запускает MPMoviePlayerController - который работает нормально (кроме того, я не получаю видео в течение первых 10 секунд, из которых я понятия не имею, почему).
Теперь пользователи должны иметь возможность искать определенные сцены, например, например, «foo talk to bar». Я получаю список вроде «видео A, секунды 23–42, видео B, секунды 56–89, F, секунды 1912–1989». Теперь я хочу сыграть все эти сцены подряд.
Видео изначально было видео MPEG2, которое я перекодировал в H.264 в контейнере MPEG2, как того требует Apple, и разделил их через mediafilesegmenter на разные куски.
Для воспроизведения этих видео моей первой идеей было динамическое создание списка воспроизведения .m3u8 (прогрессивная потоковая передача HTTP запрещена для видео длиной более десяти минут) с помощью CGI-скрипта, который содержит фрагменты отдельных видео, которые я хочу воспроизвести. К сожалению, это работает только для первого блока - когда воспроизводится второй блок, аудио и видео исчезают; Я подозреваю, что это проблема с отметкой времени, потому что сегменты не являются непрерывными.
Моя следующая идея состояла в том, чтобы вырезать и расположить видео целиком в бэкэнде, передав их в виде VLC (что заранее сэкономило бы мне весь перекодировку из MPEG2 в H.264) и направить их в mediastreamsegmenter. Это хорошо работает, недостатком является то, что пользователь не может искать в видео.
Наконец, я попытался запустить несколько контроллеров MPMoviePlayer подряд - по одному для каждого видео. К сожалению, задержка для буферизации и т. Д. Между отдельными сценами слишком велика - иногда она даже превышает длину сцены.
Если у кого-то есть идея, как решить эту проблему (или может сказать, возможно ли то, что я пытаюсь сделать), я буду признателен за любые предложения.