List Info

Thread: RE: Recording Real Audio Content




RE: Recording Real Audio Content
country flaguser name
United States
2007-03-14 07:18:21
Actually what I meant was stepping through
rmfformat when you play back the recorded file
to see what it doesn't like about it...

But to answer your question: rmfformat is
only used on the client for http:// and file://
URLs - otherwise, the RTSP stack is used and
not a fileformat plugin.

Eric

=============================================
Eric Hyche (ehychereal.com)
Technical Lead
RealNetworks, Inc.  

> -----Original Message-----
> From: John Stirling [mailto:jsreciva.com] 
> Sent: Wednesday, March 14, 2007 5:48 AM
> To: ehychereal.com
> Cc: helix-client-devlists.helixcommunity.org
> Subject: Re: [Helix-client-dev] Recording Real Audio
Content
> 
> I've started trawling through rmfformat...
> 
> I've inserted a few prints to see what the initial file
header looks 
> like in both cases (http:// recorded file and rtsp://
live stream).
> 
> eg in CRealMediaFileFormat::RIFFReadDone
> 
> I can see the data when playing via http:// but nothing
seems to come 
> out on the rtsp:// case. Is the header info transmitted

> differently in 
> the rtsp:// case ?
> 
> John
> 
> 
> 
> 
> Eric Hyche wrote:
> 
> >John,
> >
> >One thing that jumps out at me off the top
> >of my head is the mime type. Here's an rmdump
> >output of your recorded live file:
> >
> >      92 MDPR size=      603 objver=0
> >
> >         Stream Number:    0
> >         Max Bit Rate:     44100
> >         Avg Bit Rate:     44100
> >         Max Packet Size:  640
> >         Avg Packet Size:  640
> >         Start Time:       0
> >         Preroll:          0
> >         Duration:         4527
> >         Stream Name:      Audio Stream
> >         Mime Type:       
audio/x-pn-multirate-realaudio-live
> >
> >If you are actually recording multirate, then you
> >would have multiple MDPR's here, but I only see
one.
> >So if you are really only recording one stream, I
would
> >just have the mime type be audio/x-pn-realaudio
(and
> >drop the "multirate" and the
"live" part).
> >
> >Try fixing that, and if it still won't play, I
would
> >step through rmfformat and see what is going
wrong.
> >(I'm almost certain there's something that
rmfformat
> >doesn't like...)
> >
> >Eric
> >
> >=============================================
> >Eric Hyche (ehychereal.com)
> >Technical Lead
> >RealNetworks, Inc.  
> >
> >  
> >
> >>-----Original Message-----
> >>From: John Stirling [mailto:jsreciva.com] 
> >>Sent: Tuesday, March 13, 2007 11:15 AM
> >>To: ehychereal.com
> >>Cc: helix-client-devlists.helixcommunity.org
> >>Subject: Re: [Helix-client-dev] Recording Real
Audio Content
> >>
> >>I've unpacked via RuleToFlagMap as suggested,
but still can't 
> >>get it to 
> >>play. When I try to play it via splay it starts
up and looks 
> >>like it's 
> >>playing but no audio. It then stops after the
expected 
> track duration 
> >>and closes without reporting any errors.
> >>
> >>Everything in the header looks ok to me, so not
sure why this 
> >>isn't playing.
> >>
> >>If you had time to have a quick look to see if
you see anything 
> >>obviously wrong that would be useful
> >>
> >>This was recorded via a local http server and
plays back ok 
> on splay :
> >>http://copper
.reciva.com/recorded_1a.ra
> >>
> >>This was recorded via live stream 
> >>http://www.bbc.co.uk/radio1/realaudio/media/r1live.ram. It 
> plays back 
> >>silence via splay :
> >>http://copper
.reciva.com/recorded_1b.ra
> >>
> >>
> >>Both recorded files have the following headers
> >>
> >>1. Real Media File Header (.RMF)
> >>2. Properties Header (PROP)
> >>3. Media Properties Header (MDPR) (x1)
> >>4. Content Description Header (CONT)
> >>5. Data Chunk Header (DATA)
> >>
> >>John
> >>
> >>
> >>
> >>
> >>Eric Hyche wrote:
> >>
> >>    
> >>
> >>>That sounds right.
> >>>
> >>>Eric
> >>>
>
>>>=============================================
> >>>Eric Hyche (ehychereal.com)
> >>>Technical Lead
> >>>RealNetworks, Inc.  
> >>>
> >>> 
> >>>
> >>>      
> >>>
> >>>>-----Original Message-----
> >>>>From: John Stirling [mailto:jsreciva.com] 
> >>>>Sent: Monday, March 12, 2007 2:00 PM
> >>>>To: ehychereal.com
> >>>>Cc: helix-client-devlists.helixcommunity.org
> >>>>Subject: Re: [Helix-client-dev]
Recording Real Audio Content
> >>>>
> >>>>So if that bit is set, then I write
flags = 2 to the 
> output file ? 
> >>>>Otherwise flags = 0 ?
> >>>>
> >>>>John
> >>>>
> >>>>
> >>>>
> >>>>Eric Hyche wrote:
> >>>>
> >>>>   
> >>>>
> >>>>        
> >>>>
> >>>>>John,
> >>>>>
> >>>>>Since I'm seeing rules like 8 and
9, then this
> >>>>>looks like a SureStream file. So
you can't always
> >>>>>look for rule 0.
> >>>>>
> >>>>>However, what you can do is look
for the 
> >>>>>stream header property called
"RMFF 1.0 Flags" and
> >>>>>unpack that into a RuleToFlagMap
found in
> >>>>>common/include/rule2flg.h. Then
once you've
> >>>>>unpacked that, then you can simply
take the
> >>>>>ASM rule number from the IHXPacket
plug it
> >>>>>into the RuleToFlagMap. If the
resulting flag
> >>>>>you get out has the keyframe bit
set (look
> >>>>>for HX_KEYFRAME_FLAG in
common/include/hxpacketflags.h),
> >>>>>then you know this is a keyframe.
> >>>>>
> >>>>>Eric 
> >>>>>
>
>>>>>========================================
=====
> >>>>>Eric Hyche (ehychereal.com)
> >>>>>Technical Lead
> >>>>>RealNetworks, Inc.  
> >>>>>
> >>>>>
> >>>>>
> >>>>>     
> >>>>>
> >>>>>          
> >>>>>
> >>>>>>-----Original Message-----
> >>>>>>From: John Stirling
[mailto:jsreciva.com] 
> >>>>>>Sent: Monday, March 12, 2007
1:29 PM
> >>>>>>To: ehychereal.com
> >>>>>>Cc: helix-client-devlists.helixcommunity.org
> >>>>>>Subject: Re: [Helix-client-dev]
Recording Real Audio Content
> >>>>>>
> >>>>>>I've managed to record a
section of a real audio track 
> >>>>>>       
> >>>>>>
> >>>>>>            
> >>>>>>
> >>>>streamed via a 
> >>>>   
> >>>>
> >>>>        
> >>>>
> >>>>>>local http server.
> >>>>>>
> >>>>>>Table below shows:
> >>>>>>ASMFlags - reported via
pPacket->GetASMFlags()
> >>>>>>ASMRule - reported via
pPacket->GetASMRuleNumber()
> >>>>>>DPHflags - flags written out to
DataPacketHeader
> >>>>>>
> >>>>>>It only works if you wait for
ASMRule == 0 
> (KEYFRAME_RULE) before 
> >>>>>>writing the first packet
> >>>>>>
> >>>>>>| ASMFlags | ASMRule | DPHflags
|
>
>>>>>>---------------------------------
> >>>>>>| 3 | 0 | 2 |
> >>>>>>| 3 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>| 3 | 0 | 2 |
> >>>>>>| 3 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>| 2 | 1 | 0 |
> >>>>>>
> >>>>>>
> >>>>>>I can't get it working on a
live stream (eg 
> >>>>>>http://www.bbc.co.uk/radio1/realaudio/media/r1live.ram
)
> >>>>>>
> >>>>>>| ASMFlags | ASMRule | DPHflags
|
>
>>>>>>---------------------------------
> >>>>>>| 1 | 8 | 2 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 8 | 2 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>| 1 | 9 | 0 |
> >>>>>>
> >>>>>>
> >>>>>>When I attempt to play the
track on a PC it says 
> 'Player needs to 
> >>>>>>download new software to play
this clip', and then it does an 
> >>>>>>update on 
> >>>>>>real player and fails to play
the track.If I try to play the 
> >>>>>>track via 
> >>>>>>splay it reports error missing
plguins : 0x80040011. Is there 
> >>>>>>something 
> >>>>>>that prevents recording of live
streams ?
> >>>>>>
> >>>>>>John
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>John Stirling wrote:
> >>>>>>
> >>>>>>  
> >>>>>>
> >>>>>>       
> >>>>>>
> >>>>>>            
> >>>>>>
> >>>>>>>Eric Hyche wrote:
> >>>>>>>
> >>>>>>>    
> >>>>>>>
> >>>>>>>         
> >>>>>>>
> >>>>>>>              
> >>>>>>>
> >>>>>>>>John,
> >>>>>>>>
> >>>>>>>>The ASM flags are not
transmitted over the UDP packets.
> >>>>>>>>So you have to
reconstruct them, and it can be kind of
> >>>>>>>>tricky.
> >>>>>>>>
> >>>>>>>>Just to make sure I
understand what you are doing - you have 
> >>>>>>>>implemented recording
by implementing
> >>>>>>>>IHXRecordService? So
the packets you are recording are
> >>>>>>>>getting passed to you
from the client engine? Or did
> >>>>>>>>you implement this in
some other way?
> >>>>>>>>      
> >>>>>>>>
> >>>>>>>>           
> >>>>>>>>
> >>>>>>>>                
> >>>>>>>>
> >>>>>>>Yes, we've implemented
IHXRecordService.
> >>>>>>>
> >>>>>>>    
> >>>>>>>
> >>>>>>>         
> >>>>>>>
> >>>>>>>              
> >>>>>>>
> >>>>>>>>Are you writing
> >>>>>>>>the file out via
IHXFileWriter?
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>      
> >>>>>>>>
> >>>>>>>>           
> >>>>>>>>
> >>>>>>>>                
> >>>>>>>>
> >>>>>>>No, we're not using
IHXFileWriter.
> >>>>>>>
> >>>>>>>    
> >>>>>>>
> >>>>>>>         
> >>>>>>>
> >>>>>>>              
> >>>>>>>
> >>>>>>>>If you implemented it
via IHXRecordService, then you 
> >>>>>>>>                
> >>>>>>>>
> >>may have to 
> >>    
> >>
> >>>>>>>>fiddle with the ASM
flags to
> >>>>>>>>get them right. You may
want to look at the file
>
>>>>>>>>datatype-restricted/rm/filef
ormat/intrstrm.cpp
> >>>>>>>>in the method
FillOnePacket() to see how the
> >>>>>>>>RealMedia file format
sets the ASM flags.
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>      
> >>>>>>>>
> >>>>>>>>           
> >>>>>>>>
> >>>>>>>>                
> >>>>>>>>
> >>>>>>>OK I'll have a look.
> >>>>>>>
> >>>>>>>    
> >>>>>>>
> >>>>>>>         
> >>>>>>>
> >>>>>>>              
> >>>>>>>
> >>>>>>>>Eric
> >>>>>>>>
>
>>>>>>>>============================
=================
> >>>>>>>>Eric Hyche (ehychereal.com)
> >>>>>>>>Technical Lead
> >>>>>>>>RealNetworks, Inc.
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>      
> >>>>>>>>
> >>>>>>>>           
> >>>>>>>>
> >>>>>>>>                
> >>>>>>>>
> >>>>>>>>>-----Original
Message-----
> >>>>>>>>>From:
helix-client-dev-bounceshelixcommunity.org 
>
>>>>>>>>>[mailto:helix-client-dev
-bounceshelixcommunity.org] On 
> >>>>>>>>>             
> >>>>>>>>>
> >>>>>>>>>                  
> >>>>>>>>>
> >>>>Behalf Of 
> >>>>   
> >>>>
> >>>>        
> >>>>
> >>>>>>>>>John Stirling
> >>>>>>>>>Sent: Thursday,
March 08, 2007 12:31 PM
> >>>>>>>>>To:
helix-client-devlists.helixcommunity.org
> >>>>>>>>>Subject:
[Helix-client-dev] Recording Real Audio Content
> >>>>>>>>>
> >>>>>>>>>We're attempting to
record real audio content - we've got 
> >>>>>>>>>        
> >>>>>>>>>
> >>>>>>>>>             
> >>>>>>>>>
> >>>>>>>>>                  
> >>>>>>>>>
> >>>>>>a recorded 
> >>>>>>  
> >>>>>>
> >>>>>>       
> >>>>>>
> >>>>>>            
> >>>>>>
> >>>>>>>>>file that looks
pretty much like the original file, 
> >>>>>>>>>                  
> >>>>>>>>>
> >>but it won't 
> >>    
> >>
> >>>>>>>>>play. The problem
seems to be with the flags field 
> in the data 
> >>>>>>>>>packet headers. How
do we know what to set the flags 
> field to ?
> >>>>>>>>>
> >>>>>>>>>If we manually edit
the recorded file and set the first 
> >>>>>>>>>        
> >>>>>>>>>
> >>>>>>>>>             
> >>>>>>>>>
> >>>>>>>>>                  
> >>>>>>>>>
> >>>>>>data packet 
> >>>>>>  
> >>>>>>
> >>>>>>       
> >>>>>>
> >>>>>>            
> >>>>>>
> >>>>>>>>>header Flags field
= 2, we at least get some audible 
> >>>>>>>>>             
> >>>>>>>>>
> >>>>>>>>>                  
> >>>>>>>>>
> >>>>content, but 
> >>>>   
> >>>>
> >>>>        
> >>>>
> >>>>>>>>>there are
glitches.
> >>>>>>>>>
> >>>>>>>>>There is flags
information available in
>
>>>>>>>>>pPacket->GetASMFlags(
)
>
>>>>>>>>>pPacket->GetASMRuleNu
mber()
> >>>>>>>>>
> >>>>>>>>>but this doesn't
seem to match up with the original file:
> >>>>>>>>>
> >>>>>>>>>1. flags in
original file = 0,2
> >>>>>>>>>2. asm flags
reported = 2,3
> >>>>>>>>>
> >>>>>>>>>Any ideas ?
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>John
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
>
>>>>>>>>>________________________
_______________________
> >>>>>>>>>Helix-client-dev
mailing list
>
>>>>>>>>>Helix-client-devhelixcommunity.org
> >>>>>>>>>http://lists.helixcommunity.org/mailman/listinfo/helix-
> >>>>>>>>>                  
> >>>>>>>>>
> >>client-dev
> >>    
> >>
> >>>>>>>>>        
> >>>>>>>>>
> >>>>>>>>>             
> >>>>>>>>>
> >>>>>>>>>                  
> >>>>>>>>>
> >>>>>>>>      
> >>>>>>>>
> >>>>>>>>           
> >>>>>>>>
> >>>>>>>>                
> >>>>>>>>
>
>>>>>>>________________________________
_______________
> >>>>>>>Helix-client-dev mailing
list
> >>>>>>>Helix-client-devhelixcommunity.org
> >>>>>>>http://lists.helixcommunity.org/mailman/listinfo/helix-
> client-dev
> >>>>>>>    
> >>>>>>>
> >>>>>>>         
> >>>>>>>
> >>>>>>>              
> >>>>>>>
> >>>>>>  
> >>>>>>
> >>>>>>       
> >>>>>>
> >>>>>>            
> >>>>>>
> >>>>>     
> >>>>>
> >>>>>          
> >>>>>
> >>> 
> >>>
> >>>      
> >>>
> >
> >  
> >
> 


_______________________________________________
Helix-client-dev mailing list
Helix-client-devhelixcommunity.org
http://lists.helixcommunity.org/mailman/listinf
o/helix-client-dev

[1]

about | contact  Other archives ( Real Estate discussion Medical topics )