RTSP/RTMP Video Streaming Client iOS [closed]

2019-03-08 16:31发布

问题:

I'm in need of a open source solution/library to stream RTSP/RTMP to an iOS Application. I need to build an app that connects to a media server, and opens the provided video stream. I believe there has to be libraries out there, but I have yet to find one that is open source, compiles, actually works, and runs on iOS 5+, iPhone 4+. I do not have a preference, RTMP or RTSP will suffice. Preferably the one with the least amount of work. I have RTSP working on the Android side, but nothing for iOS yet.

This is what I already know from research today -

RTSP

  • Seems possible using Live555/FFMPEG
  • MooncatVenture Group - Old FFMPEG, not compatible with ARMv7s (No updates/blogs/commits in over a year)
  • DFURTSPPlayer - This is a working example.

RTMP

  • Seems possible using Live555/FFMPEG
  • A few libraries are out there for data messaging, but that is all
  • MidnightCoders Project - Does not seem video support is build yet, as Audio is not.

I've never messed with anything video related before, so encoding, frame rate, key frame, chunks, etc... is pretty foreign to me. Right now, it seems building a static binary from Live555/FFMPEG is the only solution to my problem. If so, can anyone give me a simple quickstart guide or links to a blog/example someone has out there? I'm not looking for anything crazy, just a simple

  1. Download This - LINK
  2. Compile it like this - LINK
  3. Place it into X Folder in Xcode
  4. Create X Object
  5. Read Stream API here - LINK

If not, anyone want to point me to a working open source library?

Oh yeah, this happens to be my first iPhone app and first time in Objective-C. Awesome first project, yeah?

回答1:

DFURTSPPlayer is a working example on GitHub. Will have to double check on licensing issues, but with this it is a good place to start for RTSP.



回答2:

It seems at this time, the only way to do what I want is to create a static binary to use, from complete scratch. Libavcodec, FFMPEG, and Live555 are all under LGPL. Which means, in order to not make my code open source, I would have to allow dynamic linking, so that my app users have the ability to make modifications to the open source libraries I used, whenever they want. The AppStore does not allow dynamic linking, so I am essentially dead in the water unless I want to write it all from scratch. Which, I definitely do not want to do...