1
я думал, что я мог бы быть в состоянии использовать AVAssetReader/Writer
обрезать MP4, но когда я пытаюсь читать аудио (не пробовал видео пока), я получаю это:IOS - Обрезка mp4 на устройстве
AVAssetReaderOutput does not currently support compressed output
Есть ли способ прочитать MP4 с диска через AVAssetReader
?
let asset: AVAsset = AVAsset(URL: NSURL(fileURLWithPath: filePath))
let audioTrack: AVAssetTrack = asset.tracksWithMediaType(AVMediaTypeAudio)[0]
let audioTrackOutput: AVAssetReaderOutput = AVAssetReaderTrackOutput(track: audioTrack, outputSettings:
[AVFormatIDKey: NSNumber(unsignedInt: kAudioFormatMPEG4AAC)])
if let reader = try? AVAssetReader(asset: asset) {
if reader.canAddOutput(audioTrackOutput) {
reader.addOutput(audioTrackOutput)
}
reader.startReading()
var done = false
while (!done) {
let sampleBuffer: CMSampleBufferRef? = audioTrackOutput.copyNextSampleBuffer()
if (sampleBuffer != nil) {
print("buffer")
//process
} else {
if (reader.status == AVAssetReaderStatus.Failed) {
print("Error: ")
print(reader.error)
} else {
done = true
}
}
}
}
Вы имеете в виду обрезку без декодирования/повторного кодирования? –
@ RhythmicFistman либо работает нормально, на самом деле. Я бы предпочел не перекодировать, но я открыт для повторного кодирования. –