![]() |
Re: [Announce] Smartcam Maemo 5 Port
Quote:
|
Re: [Announce] Smartcam Maemo 5 Port
Your post is better than mine, I forgot that I had others installed already (gtk, etcetc), so my count was just corlib and posix, ha.
I was amazed when it actually worked at full fps (dont know about over wifi, havnt tried yet). My original version was using TCP, it ran around 17fps, but was really really laggy, smooth/lag/smooth/lag. Second version I moved over to UDP, fixed all the problems. Then I looked at a GUI, then stopped because it was annoying me. Then went back again, tried windows forms because it had been ported in through mono already, then I stopped because it was ugly and annoying me. Then I went back to GTK again to try and get it working, after 2 days of things making no sense, it finally worked. There isnt any error checking, though. The only thing that error checks is when you hit "save", it checks if the ip:port is splittable into ip and port, so if theres no : itll error out. If the ip:port doesnt connect, itll error out, but ive yet to have it error while in use. Once it starts, it has yet to stop on me. If you want to see how the GUI made no sense to align properly, open up the smartcam-m5.exe in windows, for some reason, I had to align it like that for it to come out right on the n900. |
Re: [Announce] Smartcam Maemo 5 Port
It is good on wifi. I am impressed by the relatively low cpu usage at the get go.
I see that it is using gst-launch to feed to localhost - what are you doing to stream onto the network? Some mono library? Regarding udp, does that create problems for trying to go over the WAN/internet as opposed to a LAN? If it does, perhaps there could be a udp/tcp option? I know tcp gives issues with resends --> latency etc whilst udp just streams on carelessly, but some routers kill udp traffic. As for errors, if one closes the client smartcam then the n900 streamer crashes BUT the gst-launch process remains. Not good for battery :). Would be nice if it stayed up streaming so that you could go back but of course, the port is closed so.... but the n900 process should be killed of course. |
Re: [Announce] Smartcam Maemo 5 Port
This is the original non-gui version,
basically, it listens on udp 127.0.0.1:5000, starts up gstreamer which streams jpegs to udp 127.0.0.1:5000, every jpeg it gets, it adds on the needed info for smartcam to use, then it tcpsends the frames to smartcam. danielz000 was thinking we look at modifying tcpsink for gstreamer to add on the needed parts, that would take off the 8% of so usage the GUI has when its streaming: Code:
using System; I couldve probably coded this in python, save installing all the libs and such, but Ive been trying to force myself to use c# more lately and mono being available on n900 made me want to use it. Ill try streaming it over the internet, the quality slider should help, maybe later an optional framerate limiter. EDIT:: I portforwarded then connected through my public ip:port over wifi, a little delay but worked fine (was using front cam, around half quality on the slider). Then I tried over 3g, I dont get good 3g reception here, but I dont think itll work too well anyway, maybe with a frame limiter (and if youve got lots of bandwidth to waste), it was really delayed, hitting Stop didnt close gstreamer, I think it just piles up the frames and nothing really ends up getting through after a little while, had to turn off 3g/kill smartcam-m5 If anyone wants to test some "global" streaming, from one n900 to anothers computer, let me know. If it crashes over /dev/video1 and gstreamer is not running- but theres still the red light, the only fix ive found is to run: Code:
gst-launch v4l2camsrc device=/dev/video1 num-buffers=1 ! fakesink |
Re: [Announce] Smartcam Maemo 5 Port
Quote:
Now that out of the way - I have to say I am pretty damn impressed with the speed of this over wifi - even at max quality. Skype recognized it immediately and I was able to use it for other PC based apps requiring video. Not bad - if a little large. Have to agree with you - you do need to kill that gst-launcher process when the app closes however. Otherwise you have a 25% cpu eater just sitting there. |
Re: [Announce] Smartcam Maemo 5 Port
If you hit Stop before closing it, it *should* work.
I was having problems thinking of the best way to close it. Currently when you hit stop, it sends a # packet which gets intercepted and runs gst.CloseMainWindow(), but it doesnt seem to work every time. gst.Close() doesnt seem to close it at all, might have to Process.Start("kill " + gst.Id). Dont know how "proper" it is to do that, though. Also, a problem with smartcam, it doesnt seem to work on some flash based sites that use the webcam; eg; tinychat.com, it shows smartcam as disconnected or something, if you choose it anyway flash crashes. But yeah, other than that its worked in everything else. |
Re: [Announce] Smartcam Maemo 5 Port
Quote:
Unfortunately it'll take me a while to read through the gstreamer docs for creating plugins as I'm a bit short of time. |
Re: [Announce] Smartcam Maemo 5 Port
@azkay: if you don't mind, what is the advantage in using driver=omap.. with gst-launch? I could not see any reduction in cpu use, in fact if anything it increases it, as "omap3camd" kicks in, offsetting any reduction in gst-launch's cpu use. Does hw accel improve framerate?
Quote:
|
Re: [Announce] Smartcam Maemo 5 Port
Thanks works very very well, thank you so much for the app great work
|
Re: [Announce] Smartcam Maemo 5 Port
Quote:
Dont know how to use hardware acceleration, there was a hardware accelerated jpeg encoder for gstreamer in the past, but I cant find it anymore. I dont think it would improve framerates any higher, I think around 30 is the hardware limitation of the camera, I could be wrong. Hardware acceleration would be for less cpu usage I would think. |
All times are GMT. The time now is 12:07. |
vBulletin® Version 3.8.8