[Logo] Air Video Forum
  [Search] Search   [Recent Topics] Recent Topics   [Hottest Topics] Hottest Topics   [Members]  Member Listing   [Groups] Back to home page 
[Moderation Log] Moderation Log   [Register] Register / 
[Login] Login 
Petition to create a desktop Air Video client for Windows/MAC OSX  XML
Forum Index » Air Video General
Author Message

Joined: 03/07/2011 22:02:51
Messages: 32

Hi Tenya,

That's an interesting approach, just restream the TS file segments all as one file...much cleaner than the only other option I could think of, which was to effectively dump it to a file and try to play the file. Sometimes you need someone to remind you of the other easier ways to do things.
(as it is, I was considering how much work it would be to implement live-re-restreaming - intercept the TS files and re-encode the audio to AAC and then let the flash JW player do the rest).

I would recommend giving VLC a shot at playing the re-joined TS file... it might just work. (I am about to go and try!)

WRT to media players, other than the small amount of code hacking I've had to do to try and get a VLC player into my C# app, I really know very little. I have played around _a lot_ with sockets etc in c#, lets see if I can't get your idea working with something like VLC as the output.

Joined: 03/07/2011 22:02:51
Messages: 32

Just a quick update,
I've had some success restreaming the file sequentially and playing it back in VLC.
There's no seeking, I even had it playing in the embedded VLC player I have (but it crashed a lot ... not sure I can be bothered figuring it out, launching a new VLC window might be the easiest way to do this - AND it doesn't require a library that might go out of date any second).

I wish I didn't have to do this, the loss of all the advantages of air video (nice seeking, low overhead program - now becomes *no* seeking, and the program is sitting directly between the air video streaming server and the player, rather than just pointing a player at the air video streaming system like I wish).

But it works better than not at all. (my one test crashed after 1 minute, but it is the most horrible code, it literally just downloads each TS file and spits it out on the stream to the client - usually vlc - without any reprocessing at all.).

Tenya: the only thing I can think of to help you with the streaming, is to see if ruby supports chunked encoding, that way you don't need to worry about content length, nor opening and closing the connection to the client.

Joined: 03/07/2011 22:02:51
Messages: 32

I must be procrastinating over my real work something chronic.

So, dumping the TS files all into a stream and playing it with VLC works. But I don't like that. We can do that with the current tools we got just fine, (play a pre-converted video is a solved problem).

I couldn't stop thinking that our real problem was that inmethod had a patent issue with generating AAC files, and that's fine, they are a company and they have revenue and not-being-sued-out-of-existence to think about. (we all actually *want* an air video in the first place right?).

So, maybe I could make a little piece of software to sit between air-video-server and any prospective air-video-client that HAS one of these evil nasty patent infringing encoders (read: FFMpeg with AAC encoding compiled in) and ... live-re-encode the audio as it passes on its way out (leave everything else untouched).
It wasn't easy, but I got that much done.
but. (I'm really good at finding these so sorry if I get anyones hopes up -ever-). What I'm getting out of ffmpeg hasn't got any of the magical spices that the Apple Segmenter includes. and without these the video doesn't seem to conform to any devices expectations.

So, next job. Examine the Open Source Apple Segmenter, and try and figure out just what it does to the video it outputs. And do THAT to my TS files. Lets hope that is all that's missing. Knowing my luck, there is a long way to go. Or a new way to try and fail at.

As an aside, maybe I'll try and clean up my client code and work on the UI and release something for people to play with. Maybe even implement the basics (play pre-converted videos etc). Play the live-streaming video out to VLC and whatever else I have managed to get it doing. Problem is, that isn't the fun stuff! but it should still work.

This message was edited 1 time. Last update was at 03/25/2011 12:03:08


Joined: 03/19/2011 04:46:47
Messages: 5


I think one of the things that we are all interested in is the ability to drag the slider to a new position in the video stream. So far none of the implementations that I have seen using WMP or VLC have been able to do that. I have an idea that might work. If we embedded a Windows Media Player ActiveX control into a C# windows form we could create our own controls to control WMP. We could add a slider bar at the bottom of the form to re-position the video. Dragging the slider bar would tell the shim to calculate the right segment in the playlist to fetch. Then it start downloading from there and restart the WMP control at that point. Of course we would have to use Tenya's proxy idea since WMP does not work with files which are being written to on the fly.

I've started down that path by embedding a WMP control in a C# windows form, but I need some help with the code that downloads the segments and proxies them. I've attached a sample solution that embeds the WMP control onto a form with a few of the buttons and the slider in place. The button are not skinned but I think it will work nicely regardless. Once you click the fullscreen button you no longer see them.
 Filename WMPAirVideoClient.zip [Disk] Download
 Description Embedding WMP Control
 Filesize 14 Kbytes
 Downloaded:  975 time(s)

[Thumb - embedded_wmp_control.png]
 Filename embedded_wmp_control.png [Disk] Download
 Description Screen Shot
 Filesize 8 Kbytes
 Downloaded:  963 time(s)


Joined: 10/25/2010 15:00:15
Messages: 4

Wow, I'm glad to read that there is actually some progress here. Keep up the good work guys, it is appreciated.

Joined: 03/28/2011 22:38:02
Messages: 1

This is exactly why I came here. I've been a user of the iPad version for a while and wanted a Mac version to use too. Keep up the good work! Polish the interface!

Joined: 05/19/2010 17:27:56
Messages: 17

That people are working on this makes me very happy. Thank you!

Joined: 11/03/2010 12:12:58
Messages: 10

boaz101 wrote:If we embedded a Windows Media Player ActiveX control into a C# windows form we could create our own controls to control WMP. We could add a slider bar at the bottom of the form to re-position the video. Dragging the slider bar would tell the shim to calculate the right segment in the playlist to fetch. Then it start downloading from there and restart the WMP control at that point.

Great idea, I am awakened to the truth!

Now I'd like to sort out the architecture of Air Video Client for Windows. pavram, boaz101, please let me know your opinions. (shall we launch a project?)

I have already implemented the fundamentals above (file navigator and HTTP live re-streamer) by Ruby [see my previous post (updated) to evaluate it]. But it requires external player; the seek bar is on File Navigator (it should be with player's video panel, but unfortunately ActiveX control cannot be used on wxRuby); it is somewhat slow; it eats several ten MBs of main memory during the live conversion, and more. Obviously HTTP live re-streamer and player (ActiveX control + seek slider) should be build by windows native compilers, whereas File Navigator should be written by Ruby if one would like to use airvideo.rb to save time of the development.

Joined: 03/31/2011 19:57:35
Messages: 2

Totally signed. I would love this to happen.

Joined: 09/19/2010 19:04:38
Messages: 2

Craaazy! This would be truly awesome!

Joined: 03/07/2011 22:02:51
Messages: 32

EDIT2 Update 2: fixed password bug. *maybe* fixed japanese character problems (and by japanese character I added slightly more support for non english languages, it *might* work now)

http://www.megaupload.com/?d=FEAJ7F1H (UPDATED - this is version 2 link)

For Windows only. Tested on Win7 64bit, with VLC 1.1.8. Its not "good", its certainly not finished, and it requires .net 4 (I assume, haven't actually tried it on something that isn't a development box, so it might not work at all even if you have .net 4 installed). You must have VLC installed. And if you have a 32bit machine you are going to have to find it again (theres a button labeled "Find VLC").
- once you have 'found' it remember to click save settings. (for the next time you launch my program, if you ever do)
the default password (the *'s) is "password", if your server has no password, you don't need to worry, the value is ignored, if it does, it will complain. This is saved with the "Save settings" button also. (along with the server).
Default server address is localhost:45631, if you don't know what that means, you might not want to bother with this program.
so-far it requires AirVideoServer version 2.4.5 beta5 AirVideoServer 2.4.3 does not work (I don't know why!)

The code is bad. and by bad I mean it doesn't clean up after itself sometimes (VLC gets left behind). the UI needs work (a stop button anyone?) it needs to tell you the state of the buffers, it needs to let you choose the video bitrate you want. (right now it requests 256, 384 and 512 kbps bitrates, you can switch between these - but it doesn't wipe out the buffer, it doesn't sort them so they could be in any order, and the buffer is either (I don't know why its either) 40, or 400 seconds long. (so you can change the bitrate, wait 10 seconds, change the bitrate again, wait 10 seconds and what will happen is eventually (after around 40 seconds) it will switch to the first changed bitrate, then ~10 seconds later switch to the second changed bitrate. You can speed this up by moving the seek-bar, the seek bar ditches the buffer immediately.

Subtitles is black magic right now. (it tells you if there *are* subtitles, and they do actually seem to come in the output (sometimes), but I don't know why! - I don't actually tell it to use subtitles!).
This program probably can't display anything other than english, and languages that look a lot like english.
I have run this, and crashed my air video server atleast once. (with much older code, but the server ceased running, no bluescreen or anything). If you can't restart your AirVideoServer easily (and you want to use it on your iDevice) Don't run this.
The error messages in this program are useless. (just before you think you can really fix anything by listening to them). And I might not catch all possible errors!

I don't save anything on your computer. The only guarantees I can give for this program are the following: It didn't harm my computer.
It shouldn't have a virus in it, and I run Microsoft Security Essentials, but no guarantees (run your own AV, protect yourself!)

If you do try it, throw me some feedback at my email, peter (dot) avram (at) gmail (with a dotcom)

I probably won't respond to any emails you send me, so I can't help you troubleshoot it. (but if you do have problems it would be good to hear what exactly happened - before you delete it)

This message was edited 3 times. Last update was at 04/05/2011 13:33:21


Joined: 10/11/2010 14:52:46
Messages: 7

Hey pavram!
Awesome work! It works pretty good with my avi files.
I does not work so good with mkv files. I cannot choose an audio stream, there is no preview image for mkv... but VLC plays fine. Very odd.

Looking forward to your improvements!

[EDIT:] ... hm, i restarted the program, now one mkv file works... maybe one of your cleaning up problems. Nevermind.

This message was edited 1 time. Last update was at 04/13/2011 16:51:49


Joined: 03/07/2011 22:02:51
Messages: 32

Hi Emmett,

Yeah it does need a bit of work re MKV files.

There seems to be the most issues where its on the "actual" network. It appears sometimes the requests for thumbnails get ignored, I have to do some more wiresharking to see exactly whats going on there.

I have also had some comments about the stream selection in general (I think it happens when the file has streams in a different order to Video = stream 0, and Audio = stream 1, I have some rudimentary code to try to cover this, but it doesn't seem to be working particularly well.

I haven't had a lot of time to work on it recently, work threw a 1 week job at me that had to be done in 2 days.

Joined: 04/17/2011 00:26:59
Messages: 2

Hi guys, I'm a long time AirVideo user and for the record I'm a big fan of the product and would also like to see a desktop client.

However I discovered today via Lifehacker that there is an alternative product called StreamToMe which does the same thing as AirVideo and has a free desktop client on the Mac app store. I don't think there is a Windows client, but there is a Windows server.

Joined: 04/17/2011 17:50:27
Messages: 2

Will this news effect progress on the Windows version?

Forum Index » Air Video General
Go to:   
Powered by JForum 2.1.8 © JForum Team