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 (ehyche real.com)
Technical Lead
RealNetworks, Inc.
> -----Original Message-----
> From: John Stirling [mailto:js reciva.com]
> Sent: Wednesday, March 14, 2007 5:48 AM
> To: ehyche real.com
> Cc: helix-client-dev lists.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 (ehyche real.com)
> >Technical Lead
> >RealNetworks, Inc.
> >
> >
> >
> >>-----Original Message-----
> >>From: John Stirling [mailto:js reciva.com]
> >>Sent: Tuesday, March 13, 2007 11:15 AM
> >>To: ehyche real.com
> >>Cc: helix-client-dev lists.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.
a> 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 (ehyche real.com)
> >>>Technical Lead
> >>>RealNetworks, Inc.
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>>-----Original Message-----
> >>>>From: John Stirling [mailto:js reciva.com]
> >>>>Sent: Monday, March 12, 2007 2:00 PM
> >>>>To: ehyche real.com
> >>>>Cc: helix-client-dev lists.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 (ehyche real.com)
> >>>>>Technical Lead
> >>>>>RealNetworks, Inc.
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>>-----Original Message-----
> >>>>>>From: John Stirling
[mailto:js reciva.com]
> >>>>>>Sent: Monday, March 12, 2007
1:29 PM
> >>>>>>To: ehyche real.com
> >>>>>>Cc: helix-client-dev lists.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 (ehyche real.com)
> >>>>>>>>Technical Lead
> >>>>>>>>RealNetworks, Inc.
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>>-----Original
Message-----
> >>>>>>>>>From:
helix-client-dev-bounces helixcommunity.org
>
>>>>>>>>>[mailto:helix-client-dev
-bounces helixcommunity.org] On
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>Behalf Of
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>>>>>>John Stirling
> >>>>>>>>>Sent: Thursday,
March 08, 2007 12:31 PM
> >>>>>>>>>To:
helix-client-dev lists.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-dev helixcommunity.org
> >>>>>>>>>http://lists.helixcommunity.org/mailman/listinfo/helix-
a>
> >>>>>>>>>
> >>>>>>>>>
> >>client-dev
> >>
> >>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
>
>>>>>>>________________________________
_______________
> >>>>>>>Helix-client-dev mailing
list
> >>>>>>>Helix-client-dev helixcommunity.org
> >>>>>>>http://lists.helixcommunity.org/mailman/listinfo/helix-
a>
> client-dev
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>
> >>>
> >>>
> >>>
> >
> >
> >
>
_______________________________________________
Helix-client-dev mailing list
Helix-client-dev helixcommunity.org
http://lists.helixcommunity.org/mailman/listinf
o/helix-client-dev
|