如何在ios应用程序中播放RTMP视频流?

时间:2016-02-10 10:26:25

标签: ios video-streaming mpmovieplayercontroller rtmp broadcasting

我正在开发广播应用程序,因为我现在使用Videocore库如何在ios应用程序中播放我使用MpMoviePlayer尝试的流式视频,但它不支持rtmp流。那么有任何第三方库可供RTMP支持的玩家请帮帮我

1 个答案:

答案 0 :(得分:0)

如果您已经准备好RTMP实时流并作为HLS播放,则只需在流名称后添加.m3u8,然后将RTMP链接到http。例如,您具有RTMP这样的链接:

rtmp://XY.Y.ZX.Z/hls/chid

您只需要这样输入网址:

http://XY.Y.ZX.Z/hls/chid.m3u8

,它将在iOS中顺利播放。我尝试了下面的代码,它工作正常。

func setPlayer()
{
    // RTMP URL rtmp://XY.Y.ZX.Z/hls/chid be transcripted like this http://XY.Y.ZX.Z/hls/chid.m3u8 it will play normally.

    let videoURL = URL(string: "http://XY.Y.ZX.Z/hls/chid.m3u8")

    let playerItem = AVPlayerItem(url: videoURL!)
    let adID = AVMetadataItem.identifier(forKey: "X-TITLE", keySpace: .hlsDateRange)
    let metadataCollector = AVPlayerItemMetadataCollector(identifiers: [adID!.rawValue], classifyingLabels: nil)
    //metadataCollector.setDelegate(self, queue: DispatchQueue.main)
    playerItem.add(metadataCollector)


    let player = AVPlayer(playerItem: playerItem)
    let playerLayer = AVPlayerLayer(player: player)
    playerLayer.frame = self.view.bounds
    self.view.layer.addSublayer(playerLayer)
    self.player = player
    player.play()
}

但是由于上传高分辨率视频流,它会很慢而且很慢。如果您在上传视频流时将分辨率设置为较低,则在低带宽网络中也可以正常运行。