Search code examples
videojwplayerrtmpbrightcovejwplayer6

How to play Brightcove RTMP URLs on JWPlayer?


I am trying to implement the dynamic RTMP streaming supported by JWPplayer and Brightcove.

I'm currently using the find_video_by_id method to get a JSON package with the available RTMP streams, you can get an example by selecting the renditions field in this sample. Basically any of the URLs will look like the one bellow but won't reproduce in the player (I am testing with JWPlayer and VLC).

rtmp://brightcove.fcod.llnwd.net/a500/e1/uds/rtmp/ondemand/&mp4:1937897674001/1937897674001_2790025682001_Sea-Crab.mp4&1415984400000&ed8715a655417a4c5d8db202bc3cb926

The MP4 URL for the same rendition however, can be played without issues.

http://brightcove.vo.llnwd.net/e1/uds/pd/1937897674001/1937897674001_2790025641001_Sea-Crab.mp4

I have read here and there that this might be due to access restrictions but it doesn't make sense that Brightcove would provide the RTMP URLs if they can't be used. Also the videos are owned, uploaded and consumed by us and we are using the API keys provided by BC to fetch them.


Solution

  • Only Brightcove's player can consume the RTMP streams.

    From Brightcove's support team:

    Unfortunately it just isn't possible to use the RTMP stream outside the player. You can use the http mp4 that is available to use. But with the security measures attached to the RTMP stream they can't be used outside of the Brightcove player.

    From Brightcove's Site:

    Brightcove has enhanced RTMP delivery by employing a time-to-live (TTL) token for each video file delivered in a Video Cloud player. Time to live (sometimes abbreviated TTL) is a limit on the period of time or number of iterations or transmissions in computer and computer network technology that a unit of data (for example, a packet) can experience before it should be discarded. Through Flash Media Server, Brightcove has implemented a customized approach that provides additional security into the Flash Media Server (FMS) server infrastructure on the CDN. This was accomplished using a hashing algorithm and a Time To Live (TTL) for each stream.