I'm afraid the answer to my question is no, but I'm asking it anyway just in case.
What I would like to do is stream audio from a chrome browser to a server written in Java via WebRTC. My understanding is that to accomplish this I need a Java implementation of peerconnection. All I've found so far is the libjingle Java API for android but that hasn't been particularly useful for integrating into my server app (I'd prefer an actual Java implementation, not just a C++ wrapper).
If a library to do what I want really doesn't exist does anyone have any pointers for how I might approach actually implementing the WebRTC spec myself? When I look at such a large spec I don't really know where to start.
You can use IceLink. We (I helped develop it) wrote a Java implementation for it, as well as .NET and Objective C.
This is a complete Java WebRTC signal server written with Java i/o sockets. https://code.google.com/p/jfraggws/ Just make a project, include the .Java file and include rt.jar in the project. Next set the port on the Html 5 client and plug in your servers IP. You now have java webrtc.
Related
I have a server(called A) running on a custom protocol built with Erlang. To reach A from another server(called B) written in java, I wrote a TCP client library(called C) speaking the protocol using the beautiful Netty library. However, I have another use case, Server A, should also be reach by client applications running on android. In library C, I have the protocol parsing abstraction built using Netty's netty-buffer.jar (4.1.15) and netty-common.jar (4.1.15) only. My question is, can I used that same abstraction in the android client code? Working with Netty's ByteBuff is far more lifesaving the Java's ByteBuffer. I know that android runs on the Dalvik VM which is different in some aspect from the normal java JVM .
The min supported android API is 16 (If it matters)
Yes, it's fine to use Netty in Android. Use ProGuard to make sure you only bring in the parts you need.
Android doesn't necessarily run on Dalvik anymore. There's also ART.
I am trying to stream media from a server to a client. I was going to use RTSP, but in RTSP the client tells the server what to do.
I need to be able to control the media the client gets from the server. The Server tells the Client what music he wants to play.
Is there an other protocol I can use or an other way I can work around? Maybe I am wrong and you can still do this using RTSP. I need to use UDP, as I need to use multicasts, and I dont want to have to build my own protocol to keep the client synchronized.
If you need more infos, dont hestiate to use the comments field below!
Edit
This application is done in Java. I would be happy, if you could maybe tell me a mechanism that works well with Java. I am currently using the Netty library, which looks to be pretty useful (although I have not figured out how to use it yet). I don't need an answer that is based on pure network knowledge, I know how I could build a whole streaming ecosystem. I need to get this working on Java 8, without having to do the handling of the basic protocol stuff myself.
Take a look at libjitsi which is an open source Java audio/video library which can be used for streaming with encryption. It does not use Netty but it looks to be mature.
I wrote a Java application for my company which works great. Now I am asked to interface my application with an API of a piece of hardware.
The API is implemented in a Windows dynamic link library (DLL). The samples that come with the API were written in Visual C++ 6.0
and Visual Basic 5.0 (seems very old).
There is no Java API available. I am wondering if there is a way to use the DLLs with my Java application I wrote? Should I rewrite the application
in VB.NET or... (Would these APIs even work with VB.NET)?
This is the piece of hardware whose API I need to use:
http://www.sealevel.com/store/8004e-pci-express-16-reed-relay-output-16-isolated-input-digital-interface-3-13v.html
Any suggestions or ideas are appreciated.
Thank you
The API should work with VB .NET.
If the API is Open-Source you could try to add JNI support, so that you can use it in Java.
Otherwise you could try to write the Application in C++. The difference to Java is not that big.
1) Use JNI, try using some java-c++ bridge which will make your life easy - see this https://code.google.com/p/javacpp/
2) Yes you can call native api's in vb.net
Looking at Thrift and Google Protocol Buffers to implement some quick RPC code. Thrift would be perfect if the generated C++ code compiled on windows (which is what I need). And of course, GPB creates RPC stubs, but no implementation.
Is there a way to get Thrift Windows friendly? Or, even better, are there any RPC implementations available freely for generated C++ protobuf stubs (a Java counterpart would be nice too, but is not necessary).
Thanks
Try Zeroc ICE
Is there a way to get Thrift Windows friendly?
According to this page on the Thrift wiki, it is not possible.
The following instructions are for making the thrift compiler only. The Thrift C++ runtime library does not currently work on Windows. This means that you'll be able to compile ThriftIDL files to C++/Java/Python/etc., but you won't be able to compile and run the generated C++ code under Windows.
You can installing thrift following this "guide".
Look also at my solution at the bottom, to let it works on windows.
is any such library available either commercial or open source?
Just wanted to update this thread and note that we've created such a library at Frozen Mountain; it's called IceLink. The server portion (STUN/TURN, which is used for NAT traveral and IP discovery) is available on Java (in addition to .NET, Mac, etc) and there's a full Java library implementation for the actual P2P communication and audio/video encoding/decoding/rendering. It's also WebRTC-compliant, and communicates nicely with Chrome, etc.
We've released out VP8 Java wrapper as well: https://jvp8.codeplex.com/
(Disclaimer: I work # FM).
After google searching this a bit as well as from my experience, I don't know of any. If you do find one, I would probably also wonder about its fidelity. Maybe it would be a good idea for you to start your own open source project for this.
As of today, there is no such open source library.