Hi,
I have been using Live555 tools to deliver RTSP from h264 and AAC streams
or from mp4 file with very satisfied results. My ultimate client is Apple
mobile devices. As we know, Apple accepts only HTTP Transport Streaming (TS).
Live555 tool can do that. I have downloaded Live555 test files
bipbop-gear1-all.ts and bipbop-gear1-all.tsx, and use DynamicRTSPServer to
deliver the AV streams through TunnellingOverHTTP. The AvPlayer of iPhone
client can receive them and playback them nicely. I also used
MPEG2TransportStreamIndexer function to generate tsx file from
bipbop-gear1-all.ts. It generated the exact same data as the downloaded
bipbop-gear1-all.tsx file. The indexer function is working correctly.
In the next step, I downloaded Live555 test files, test.264 and test.aac.
I followed the example of testH264VideoToTransportStream to create a
H264VideoStreamFramer from test.264 as the video source. I also created
ADTSAudioFileSource from test.acc as the audio source. Then I created a
MPEG2TransportStreamFromESSource filter by adding the video source and the
audio source to generate the TS file “out.ts”. The VLC can play this TS file
but the audio is silent with error message of “Multiple blocks per frame in
ADTS not supported”. With that in mind, I went ahead to generate the out.tsx
file from out.ts. Both file sizes are in expected range. But when they are
used to stream over HTTP, the iPhone cannot play it out (it popped a No-Play
icon on the screen). However, it apparently had downloaded all the segments
and it showed the video duration correctly as 58 seconds.
The Apple AvPlayer error message is brief with Code=-11800 "The operation
could not be completed". Apple provides a program, MediaStreamValidator, to
debug the transport stream content. When I run that, the error message is also
brief with “Error injecting segment data”. Thus, I cannot determine the source
of the problem. In any case, iPhone did not accept the ts file. When I
prepared the ts file with the video source only, the AvPlayer could not
complete the loading process. It is possibly due to the requirement that both
video and audio streams must be present or stream audio only. I cannot stream
audio alone, because the indexer function generates nothing from audio ts file.
It is very desirable if LIve555 can make this work. Currently, LIve555
also does not have a function to convert AAC from non-ADTS (as in the mp4
file) to ADTS. It will be very useful for the developers, if Live555 can
provide a “testMP4AudioVideoToTransportStream” program, or the like, to
demonstrate that h246 video and AAC can be multiplexed and streamed over HTTP
and accepted by Apple devices.
Maybe I missed something or did not do it right. Please help me with
instructions or suggestions to make it works.
Holden
_______________________________________________
live-devel mailing list
[email protected]
http://lists.live555.com/mailman/listinfo/live-devel