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
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to