Subtitles for AVPlayer/MPMoviePlayerController

后端 未结 4 833
不知归路
不知归路 2020-12-12 23:21

I am using m3u8 video format for streaming the video and now I need to display subtitles for the same.

I searched in Apple Documentation and found that I can achiev

4条回答
  •  别那么骄傲
    2020-12-12 23:37

    This is the Swift version of @JohannesFahrenkrug answer. Hope this is useful for someone:

        let localVideoAsset = Bundle.main.url(forResource: "L1C1P1C3", withExtension: "mp4")
    
        //Create AVMutableComposition
        let videoPlusSubtitles = AVMutableComposition()
    
        //Adds video track
        let videoTrack = videoPlusSubtitles.addMutableTrack(withMediaType: .video, preferredTrackID: kCMPersistentTrackID_Invalid)
    
        try? videoTrack?.insertTimeRange(CMTimeRangeMake(kCMTimeZero, localVideoAsset.duration),
                                    of: localVideoAsset.tracks(withMediaType: .video)[0],
                                    at: kCMTimeZero)
    
        //Adds subtitle track
        let subtitleAsset = AVURLAsset(url: Bundle.main.url(forResource: "L1C1P1C3", withExtension: ".mp4.vtt")!)
    
        let subtitleTrack = videoPlusSubtitles.addMutableTrack(withMediaType: .text, preferredTrackID: kCMPersistentTrackID_Invalid)
    
        try? subtitleTrack?.insertTimeRange(CMTimeRangeMake(kCMTimeZero, localVideoAsset.duration),
                                            of: subtitleAsset.tracks(withMediaType: .text)[0],
                                            at: kCMTimeZero)
    

提交回复
热议问题