【问题标题】:How to play RTMP video streaming in ios app?如何在 iOS 应用中播放 RTMP 视频流?
【发布时间】:2016-05-20 15:37:02
【问题描述】:

您好,我正在为此开发广播应用程序,我现在正在使用 Videocore 库,如何在我尝试使用 MpMoviePlayer 但它不支持 rtmp 流的 ios 应用程序中播放流媒体视频。那么是否有任何第三方库可用于支持 RTMP 的播放器,请帮助我

【问题讨论】:

  • 愿意分享您在这方面取得的任何进展吗?
  • 我正在使用 VLC 播放器播放 rtmp 流媒体视频。
  • 啊,我以为你是在应用内播放 RTMP。
  • 是的,现在它对我来说工作正常。

标签: ios video-streaming mpmovieplayercontroller rtmp broadcasting


【解决方案1】:

如果您已经准备好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()
}

但是由于高分辨率的视频流上传,它会很慢和滞后。如果在上传视频流时将分辨率调低,在低带宽网络下也能流畅运行。

【讨论】:

    猜你喜欢
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 2015-01-27
    • 1970-01-01
    • 2012-05-11
    • 2018-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多