我正在开发广播应用程序,因为我现在使用Videocore库如何在ios应用程序中播放我使用MpMoviePlayer尝试的流式视频,但它不支持rtmp流。那么有任何第三方库可供RTMP支持的玩家请帮帮我
答案 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()
}
但是由于上传高分辨率视频流,它会很慢而且很慢。如果您在上传视频流时将分辨率设置为较低,则在低带宽网络中也可以正常运行。