begeekmyfriend / yasea

RTMP live streaming client for Android
MIT License
4.87k stars 1.32k forks source link

Question - Change RTMP client for Wowza authentication #265

Open oantajames opened 7 years ago

oantajames commented 7 years ago

I'm thinking if it's possible to change the current RTMP client to RTMPDump (http://rtmpdump.mplayerhq.hu) or (librtmp). From what I have understood from the code minimal things will need to be changed. Why did you use SimpleRTMP a project that was not been upgraded during the last 3 years ? Is something special about it that I missed ? I saw some reference in Chinese here #31 explaining why you chose SimpleRTMP over other RTMP clients, but the translation from Google was not very accurate.

Thank you in advance!

begeekmyfriend commented 7 years ago

Yes, you are right. Most RTMP clients choose librtmp as the network library for it has been also adopted as the external library of some famous projects like FFmpeg. And that is the public opinion foundation of librtmp.

I picked SimpleRTMP because yasea was only an experimental toy in the early. I wanted to make it in pure Java on purpose. So that is why I searched on Github and found SimpleRTMP. The original code is only for music playing. I spent several weeks to make it work on streaming both video and audio. Several months later I simplified the code and even make it port on ExoPlayer as RTMP play library (Unfortunately the porting is not allowed to be opened by my boss).

I think as for Android application, if it is not performance intensive, implementation in Java is always better than that in C/C++. There is no need to do extra JNI code. There is no consideration for different CPU architectures building. There is even smaller size for your program. In fact the RTMP performance is not bad for networking. So that is the main reason why I have kept the Java RTMP module so far.

oantajames commented 7 years ago

@begeekmyfriend Thanks for the answear! Right now I'm trying to implement on this RTMP client server specific authentication(cause from what I have seen it doesn't support). Wha would you say it's easier to do from the following(from your perspective) :

  1. Change the entire RTMP client to librtmp that supports all of the rtmp (rtmps, rtmpt etc.) ?

  2. Modify the existing SimpleRTMP client so it supports server specific authentication ?

Thank you again !

begeekmyfriend commented 7 years ago

I pick the second option though I have not tested on Wowza. I was told that the code of librtmp is sh*t.

oantajames commented 7 years ago

@begeekmyfriend any hint on how to achieve this using the current SimpleRTMP module ? Thank you again!

begeekmyfriend commented 7 years ago

I suggest using FFmpeg for Wowza authentication test and Wireshark to capture and analyze the networking packets.