Home >Backend Development >PHP Tutorial >How to pull and play video streams from other live broadcast platforms in real time within App and Web?

How to pull and play video streams from other live broadcast platforms in real time within App and Web?

WBOY
WBOYOriginal
2016-10-11 14:03:544416browse

I do not have a technical background and have experienced many content aggregation apps, such as "Instant", "Wandoujia List", etc. However, the form of these contents is non-real-time.

Excuse me, is it technically possible to pull the content from other people’s live broadcast apps automatically and in real time, and play it in your own product framework (without interaction)? Is it possible to achieve it through technology without cooperation through negotiation?

Also, I would like to know if the answer to this question is different for mobile apps or web.

Thank you, I hope my description can make you understand.

Reply content:

This is actually a kind of piracy. The core feature of this approach is:

You don’t pay for traffic. When users watch videos, they directly request the server of the target platform - this is why it is called "pirating" rather than "rebroadcasting". You are using someone else You can use the money to make yourself rich, while for "rebroadcasting" you pay for the traffic fee yourself, but the content comes from outside (of course the rebroadcasting must be legal). So it’s easy to understand how angry third-party platforms would be if they found out you were doing this.

No moral evaluation, it is technically feasible, but there are some limitations.

The reason why it is feasible is:
  • Currently mostlive broadcast platforms use the RTMP (Real-Time Messaging Protocol) protocol to realize the sending (host side) and receiving (viewer side) of live streaming
  • In order to achieve live viewing in a mobile Web environment, these live broadcast platforms will additionally use the HLS (HTTP Live Streaming) protocol
  • The above two protocols are both open. The RTMP protocol originates from Adobe. For technical specifications, see: Real-Time Messaging Protocol (RTMP) specification. The HLS protocol originates from Apple. For technical specifications, see: developer.apple.com/str

Further, let’s talk about the core components of a live broadcast system There are mainly three parts:
  1. Acquisition - the anchor uses software such as OBS to record videos and can send the data to the server
  2. Rebroadcast - the server uses software such as SRS/Red5 to receive the video sent from the collection end The data is forwarded to the playback end (audience)
  3. Playback - essentially refers to the player, usually embedded in a Web page or App, and the audience watches through them

For pirates, they only need to implement the playback function. . How to implement playback? In fact, you can easily find an open source player that supports RTMP and HLS protocols. Then the last step left is to capture the broadcast address of the programs on those live broadcast platforms. Note that this does not refer to the web address of the live program, but the address specified by the underlying protocol of the program. For example, the RTMP protocol stipulates that each program has an address starting with rtmp://, while HLS requires that each program has an http: // The address at the beginning (HLS is actually based on the HTTP protocol, so its program address is an ordinary URL)

Yes, as long as you can grab the video stream address of those live programs and find a player, You can play it directly. This solution can basically pirate the video resources of most domestic platforms.

But there are also a few platforms that have taken precautions. Basically, there are several types of prevention methods:
  1. Do not use RTMP and HLS but are based on self-developed undisclosed protocols, which greatly increases the difficulty of piracy (although these platforms are not originally To prevent piracy, but to achieve P2P, low latency, etc.)
  2. Through technical means to prevent you from obtaining the streaming address of the live video (it has a certain effect, but there are also many omissions)
  3. By analyzing which platform the requester initiated the request from , determine whether the broadcast is pirated (similar to the referer anti-leeching mechanism of the HTTP protocol, which can block low-level pirated broadcasts)
  4. Prevent pirated broadcasts by checking the login token (for many mobile live broadcast APPs that can only be viewed after logging in) It can be said to be a killer feature to prevent pirated broadcasts, but for platforms such as Douyu Panda that can be watched without logging in, this effect is not good)

The technical situation is roughly like this. Just be smart...

Embed an IFRAME page that specifies the live broadcast

Safe, reliable and pollution-free... It’s possible in theory but very difficult in practice
Have you ever seen any third-party QQ clients? Or are there any that last a long time? There are already such apps on the market
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn