• Hello MLAers! We've re-enabled auto-approval for accounts. If you are still waiting on account approval, please check this thread for more information.

SuperSocket for RealBasic

I think I might have misunderstood. It does transcode on an external machine via QuickTime ActiveX or FFMPEG (a BBB or RPI could also do the job, sans using QuickTime directly). I just meant that I don't think the DSP on the (AV?) Macs would be able to assist with any transcoding.

 
Some good news. Christian sent me an old copy of his Monkey suite with a copy of SuperSocket, so will look at bringing that in.

I also worked out the weird QuickTime streaming issue. It looks like both recent versions of QuickTime and ffmpeg put an FTYP atom at the beginning of the file. I believe this was part of the iso spec for mpeg 4. The ftyp atom seems to prevent QuickTime 5 and earlier from Fast Starting a mov file. If I manually delete it with a hex editor I can stream the mov in Netscape (haven't yet tried from RealBasic yet). Plan is to skip the FTYP atom when returning an mov to the client (I think it's the first 32 bytes?). Had to find some ancient QuickTime 3 streaming samples to work that one out!

 
Traveling for work today, but hope to do a release tonight. Only issue is I didn't bring a classic machine with me and the emulators like to crash on network access so I can't promise it'll actually work!

 
Server and client published to GitHub at https://github.com/pgodwin/68kTube/

It's not quite ready for end-user consumption but it's enough to play with. The GitHub page has a screenshot of how it looks. 

I haven't compiled the server yet. I've spun up a VM, but won't have time to configure it tonight. If you have Visual Studio 2015 (the community edition is free), you can pull a copy and it should just build and run. If you want to use Video 1, Cinepak or Sorenson, you will need to have QuickTime installed on the server. You'll also need a YouTube API key stored in apikey.txt with the app.

The Mac Client will prompt you for the server address on first run. HttpSocket isn't smart enough to time out yet, so if you don't get search results, you'll need to double check your Firewall (it's on by default in Windows).

Known Issues (Mac Side)

  • Http Requests don't time out. If you don't see any results, etc within 5 seconds, quit the app.
  • The Movie Player doesn't resize with the window. Use the Movie --> Double-size option.
  • QTL file type/creator is not set correctly
  • Movies don't play on 68K Macs (OpenUrlMovie fails) - hopefully I get make it work, I can't see anything that says it's PPC only. I have a C code example of opening one, will see if I can do a declare in RealBasic and call out to it. 
Known Issues (Server Side)

  • Fairly hacky, wasn't expecting this to work
  • New QuickTime profiles can be built with the QtConvert /profile <profilename.xml> command.
  • The ffmpeg profiles are hard coded, these should be fixed to be read from XML
  • If a video is already encoded and the user requests a different profile, the original is sent
  • The output path is always ./video/[videoid].mov 
  • To fix the two above, a special filename/settings lookup will be added.
FFMPEG and QuickTime don't create mov files that can be Fast Started on QuickTime 5 and earlier. I used the Base Media Format Parser (https://basemedia.codeplex.com/) to parse out the file and rewrite it without an FTYP so that QT5 and earlier could progressive play the files.

 
Last edited by a moderator:
Awesome, I'll try to check it out in the next few days.  I have access to a PPC mac (PowerBook 2400c, Mac OS 9.1) to give it a test run.

Edited to add:

Also, I can't believe that Christian still had a copy of SuperSocket laying around.  My hopes were high, but my expectations were low since it had been a decade since he posted to that other forum/mailing list.  Good job on getting in touch with him  :) .  Assuming it was version 2.2, I think that was one of the later releases too, so hopefully it has most, if not all, bugs ironed out.

 
Last edited by a moderator:
Well I know some PPC machines had DVD decoding hardware so MPEG2 playback from DVD disks were awesome. I wonder if the API of those decoder cards are available? that might be an option as well for smooth full screen SD playback. 

 
Awesome, I'll try to check it out in the next few days.  I have access to a PPC mac (PowerBook 2400c, Mac OS 9.1) to give it a test run.

Edited to add:

Also, I can't believe that Christian still had a copy of SuperSocket laying around.  My hopes were high, but my expectations were low since it had been a decade since he posted to that other forum/mailing list.  Good job on getting in touch with him  :) .  Assuming it was version 2.2, I think that was one of the later releases too, so hopefully it has most, if not all, bugs ironed out.
Indeed, I haven't checked what's there yet. I'll extract SuperSocket from it soon and upload it so others can access it. 

Edit:

Looks like SuperSocket has been wrapped up in the mbs networkplugin. I'll have to check with Christian before uploading it. It's compiled for PPC and x86 only by the looks (the original SuperSocket did have 68k support). No source is included there, so unless Christian has a copy of the original source dump it's likely lost forever. 

 
Last edited by a moderator:
That would be fine by me. I'm still planning on giving it a go. Life has been hectic the past 2 weeks. Thankfully this 3 day weekend will allow me to catch up a bit.

 
Back
Top