I'm working on Video upload process, need to upload large video as multiple chunks. Each chunks should be the size of 5 MB.
Please share the code for converting large video to multiple chunks under size of 5 MB each in swift. Any help is much appreciated
Try this,
let selectedSize = selectedVideoSizeInMB
let seconds = durationInSeconds
print("Size", selectedSize)
print("Seconds", seconds)
let splitDuration: Int = Int(seconds / (selectedSize/5))
print("Split Duration", splitDuration)
do {
let data = try Data(contentsOf: videoUrl)
let dataLen = data.count
print("Data Size", data.count)
let chunkSize = ((1024 * 1000) * 5) // MB
print("Chunk Size", chunkSize)
let fullChunks = Int(dataLen / chunkSize)
let totalChunks = fullChunks + (dataLen % 1024 != 0 ? 1 : 0)
print("Chunk count", totalChunks)
var chunks:[Data] = [Data]()
for chunkCounter in 0..<totalChunks {
var chunk:Data
let chunkBase = chunkCounter * chunkSize
var diff = chunkSize
if(chunkCounter == totalChunks - 1) {
diff = dataLen - chunkBase
}
let range:Range<Data.Index> = chunkBase..<(chunkBase + diff)
chunk = data.subdata(in: range)
chunks.append(chunk)
print("The size is \(chunk.count)")
}
self.chunksDataArray = chunks
print("Total Chunk", chunks.count)
}catch{
return
}