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
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)