[mythtv] iPhone streaming implementation
Chase Douglas
chasedouglas.lists at gmail.com
Mon Mar 23 23:31:03 UTC 2009
On Mar 23, 2009, at 6:51 PM, Rob Smith wrote:
> On Mon, Mar 23, 2009 at 3:24 PM, Chase Douglas
> <chasedouglas.lists at gmail.com> wrote:
>> Yes, that is exactly what I am talking about. However, the fact
>> that you
>> even know of "HTTP Live Streaming" as it's called suggests that you
>> have
>> access to the 3.0 dev docs? The only place I've seen a link to the
>> actual
>> docs is inside Apple's confidential development forum. The fact
>> that the
>> standard is not available outside of their site leads me to believe
>> this is
>> covered by the NDA. Because of that, I'm still not going to go into
>> specifics yet.
>>
>> If you can post a link to the docs and it is publicly accessible,
>> it would
>> make things that much easier, but I haven't been able to find it.
>>
>> Now, for those who are familiar with the iPhone's streaming
>> capabilities,
>> there are further issues such as: what do you do when one tv program
>> finishes and the next one begins? Again, I don't want to discuss what
>> problems there are due to Apple's implementation here, so if anyone
>> wants to
>> converse about specifics they can e-mail me off-list or we can meet
>> in the
>> Apple dev forums. However, I can state that ffmpeg can't do it all
>> alone if
>> you want a fully integrated experience.
>
> I do not have 3.0 developer access, nor have I signed a NDA, I googled
> for it, and found a link to them. I wasn't aware they were under NDA.
> With that in mind we shall drop the topic, and I fail to see why you
> are posting here if you are going to take it to the apple developer
> zone.
Can you point to how you found the docs? If they are public, and not
just sloppy web server administration leaking a private directory,
then the NDA doesn't apply to them. It would make future conversations
much easier.
My point with all of this is to try to figure out how to best
integrate streaming into MythTV. Side issues about exact iPhone
implementations are really just side issues. The greater context of
implementing streaming in MythTV is a more open issue, and I want to
determine the best ways to implement it without building one
implementation from scratch and having it shot down by the devs for
architectural issues.
Here's one interface idea I've been playing with for live tv streaming:
This handles transcoding:
QUERY_RECORDER SPAWN_LIVETV etc..., get back a response with the
recorder id
QUERY_TRANSCODER SPAWN_TRANSCODER[]:[]RECORDER[]:[]<recorder id>[]:
[]<transcoder profile>, returns transcoder information like mythtv url
for file
This handles streaming:
QUERY_STREAMER SPAWN_STREAMER[]:[]<streaming profile>[]:[]<mythtv url
for file>, returns stream location
The SPAWN_TRANSCODER command would start up a transcoding. It would
transcode files from the live tv chain into a file in the recordings
directory like "<livetv chain id>.<transcoder profile>.<extension
(mpg, m4v, etc.)>". The SPAWN_STREAMER command would start streaming
the file according to a given profile. This profile would be something
like "iPhone" or "rtsp", or "mms", or "rtsp-android" if the android
movie player had quirks that needed to be accounted for.
The transcoder profiles would be user defined. It would have things
like encoder and muxer selection, bitrates, ffmpeg flags, etc. The
data would be kept in the mysql db of course. The streaming profiles
would be hardcoded, with an ability to specify some options. Each
streaming profile would need to be implemented separately. If you
wanted to, you could implement an "ffmpeg" streaming profile to use
ffmpeg's built in rtp, http, udp, etc., streaming support.
If you wanted to do live transcoding and streaming of a recording:
QUERY_TRANSCODER SPAWN_TRANSCODER[]:[]FILE[]:[]<mythtv url for
recording file>[]:[]<transcoder profile>
QUERY_STREAMER SPAWN_STREAMER[]:[]<streaming profile>[]:[]<mythtv url
for file>
Note that with QUERY_STREAMER, the file to be streamed doesn't have to
be a transcoded file. It could be a recording file straight from the
tuner card.
Thanks
More information about the mythtv-dev
mailing list