views:

26

answers:

1

Hi,

as a background: I am developing an application for the iPad where users can browse videos that are provided by us. When a user picks a video it will then launch an MPMoviePlayerController - which works fine (besides I get no video for the first 10 seconds, of which I have no idea why).

Now, users should be able to search for specific scenes - like, say, "foo talks to bar". I'm getting a list like "video A, seconds 23-42, video B, seconds, 56 to 89, F, seconds 1912-1989". Now I want to play all of these scenes in a row.

The videos are originally MPEG2 videos which I transcoded to H.264 in an MPEG2 container, like Apple demands it, and split them via the mediafilesegmenter to different chunks.

To play those videos my first idea was to dynamically generate an .m3u8 playlist (HTTP progressive streaming is forbidden for videos over ten minutes of length) via a CGI script that contains the chunks of the individual videos I want to play. Unfortunately, this only works for the first chunk - when the second chunk gets played audio and video disappear; I suspect that's a timestamp issue because the segments are not continous.

My next idea was to cut and arrange the videos entirely in the backend, passing them to like VLC (which would save me the whole transcoding from MPEG2 to H.264 beforehand) and pipe them to mediastreamsegmenter. That works well, the disadvantage is that the user cannot seek in the video.

Finally, I tried to start several MPMoviePlayerControllers in a row - one for each video. Unfortunately the delay for buffering, etc. between the individual scenes is way too long - it sometimes even exceeds the scene's length.

If anyone has an idea how to solve that (or could tell me whether what I'm trying to do is even possible) I'd appreciate any suggestions.

A: 

Why not rely on a strong streaming server like Wowza Media Server that has been designed to provide services like the one you describe ?

Wowza Media Server

Pierre 303
Because it does either streaming (which doesn't permit the user to seek forwards and backwards) or it serves a whole single video file - which I don't have, as I need some scenes from file a, some other from file b, and so on.
Sebastian Schmidt