0

In short, I want to record presentation audio, create time markers for that audio in a database, and then provide marker-navigation of that audio content from a web page. What technology (e.g. HTML5 Audio, RTMP) can support this?

My requirements in more detail:

  • quickly navigate to server-side marked points in server-stored audio, from the browser.
  • avoid any proprietary client-side software, such as Silverlight; although due to penetration Flash is acceptable, and future-looking standards like HTML5 media are acceptable, provided it ships with the latest browsers.
  • prefer to leave the 30-50 minute audio files un-split rather than pre-splitting on the selected markers; so that the markers can be seamlessly changed later.
  • like to keep licensing cost minimal; although single-purchase licensed server-side technologies are fine.
  • prefer to do most of this from IIS, where I have most experience. however, a parallel streaming server such as Adobe with Windows APIs is acceptable.

Here are my best guesses on a solution so-far:

  • the presentations will be compressed and stored in mp3 files (but really, any advice on an easily seekable format for speech recording is welcome).
  • the client will play a unicast stream rather than download file chunks (although TBR, below, challenges this assumption)
  • HTML5 is not ready, so flash will be required at the client
  • IIS Media Services is no-go as it requires Silverlight for seekable audio
  • The leading products in this space, such as Adobe Media Server 5, are probably large kits with their focus on video media. I can probably find a more focused tool like Icecast to reliably do what I need.
shannon
  • 8,664
  • 5
  • 44
  • 74
  • Icecast is not what you are looking for (Also without the camel-case, please). You don't need live streaming capabilities. All you need is a web server that will serve static content and will satisfy range requests. How you can get the browser to make range requests within files I don't know, but would expect, that the – TBR Mar 14 '15 at 07:30
  • Thanks TBR. Corrected. Regarding simply satisfying range requests, I don't see how that is sufficient. "Due to the 'byte reservoir', frames are not independent items and cannot usually be extracted on arbitrary frame boundaries." - http://en.wikipedia.org/wiki/MP3 Further, if I make blind assumptions about source file cut points, based on expectation of an error-free file rather than actually parsing the file, when answering requests I'll probably cause client-side defects. Since you don't specify how to create the range request, you aren't basing this on a client ability... – shannon Mar 14 '15 at 11:07
  • Funny you should say that this can't work, because this is *exactly* how live streaming MP3 works. A client that joins the stream will be served data from that point in time. Even if this contains a little "garbage" by cutting into a frame or is missing some data from a previous frame, all client software I've seen handles this without issue. Good luck figuring it out, all I can do is point out these aspects. – TBR Mar 14 '15 at 11:14
  • TBR, I didn't say it can't work, I asked how it can work. I still don't understand, but I sense I've frustrated you somehow, so I'll beg off. – shannon Mar 14 '15 at 11:32

1 Answers1

1

OK, I'll bite. I went and looked for how people actually address this, and it's how I said it is in my comment. Setting HTML5 audio position (it's so close it almost makes this question a dupe)

I've also found this nice blog post from 2009 that describes the further technical possibilities and options. The latter part revolves around advanced video use cases and Ogg, but the first part should apply just fine to <audio>. http://gingertech.net/2009/08/19/jumping-to-time-offsets-in-videos/

Community
  • 1
  • 1
TBR
  • 2,790
  • 1
  • 12
  • 22
  • Thanks! That's very informative. I can see from it that the answer to my question may be "link AAC or MP3 files in HTML5 ` – shannon Mar 14 '15 at 11:55
  • Interestingly, I'm having some serious problems with this approach. The combination of Chrome and IIS transmits the first 2.5MB of the .MP3 just to retrieve the metadata, which is necessary to make the audio positionable by time (per the markers in my OP). Further, the metadata request is made as RANGE: bytes 0-, which then leaves the file and HTTP resource open and unresolved, loading up my connection queues. This connection abuse actually overwhelms the IIS Express dev license with just a few clicks. It's possible there are fixes, but it's not plug-and-play to treat RANGE like a stream. – shannon Mar 16 '15 at 12:24