Platforms to show: All Mac Windows Linux Cross-Platform
/AVFoundation/SDAVAssetExportSessionMBS test
Required plugins for this example: MBS AVFoundation Plugin, MBS Util Plugin, MBS MacCG Plugin, MBS MacCF Plugin, MBS Main Plugin, MBS MacBase Plugin
You find this example project in your Plugins Download as a Xojo project file within the examples folder: /AVFoundation/SDAVAssetExportSessionMBS test
This example is the version from Sun, 18th Jul 2020.
Project "SDAVAssetExportSessionMBS test.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Delete"
Const kFileQuit = "&Quit"
Const kFileQuitShortcut = ""
End Class
Class Window1 Inherits Window
Control bar Inherits ProgressBar
ControlInstance bar Inherits ProgressBar
End Control
Control Timer1 Inherits Timer
ControlInstance Timer1 Inherits Timer
EventHandler Sub Action()
bar.Value = 1000 * encoder.progress
End EventHandler
End Control
EventHandler Sub Open()
Dim file As FolderItem = SpecialFolder.Desktop.Child("video.mov")
Dim asset As AVAssetMBS = AVAssetMBS.assetWithFile(file)
encoder = New MySDAVAssetExportSessionMBS(asset)
encoder.outputFileType = AVFoundationMBS.AVFileTypeMPEG4
encoder.outputFile = SpecialFolder.Desktop.Child("output.mp4")
Dim CompressionProperties As New Dictionary
CompressionProperties.Value(AVFoundationMBS.AVVideoAverageBitRateKey) = 6000000
CompressionProperties.Value(AVFoundationMBS.AVVideoProfileLevelKey) = AVFoundationMBS.AVVideoProfileLevelH264High40
Dim videoSettings As New Dictionary
videoSettings.Value(AVFoundationMBS.AVVideoCodecKey) = AVFoundationMBS.AVVideoCodecH264
videoSettings.Value(AVFoundationMBS.AVVideoWidthKey) = 1920
videoSettings.Value(AVFoundationMBS.AVVideoHeightKey) = 1080
videoSettings.Value(AVFoundationMBS.AVVideoCompressionPropertiesKey) = CompressionProperties
encoder.videoSettings = videoSettings
Dim audioSettings As New Dictionary
audioSettings.Value(AVFoundationMBS.AVFormatIDKey) = OSTypeFromStringMBS(AVFoundationMBS.kAudioFormatMPEG4AAC)
audioSettings.Value(AVFoundationMBS.AVNumberOfChannelsKey) = 2
audioSettings.Value(AVFoundationMBS.AVSampleRateKey) = 44100
audioSettings.Value(AVFoundationMBS.AVEncoderBitRateKey) = 128000
encoder.audioSettings = audioSettings
encoder.exportAsynchronously
End EventHandler
Property encoder As MySDAVAssetExportSessionMBS
End Class
MenuBar MainMenuBar
MenuItem FileMenu = "&File"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Edit"
MenuItem EditUndo = "&Undo"
MenuItem EditSeparator1 = "-"
MenuItem EditCut = "Cu&t"
MenuItem EditCopy = "&Copy"
MenuItem EditPaste = "&Paste"
MenuItem EditClear = "#App.kEditClear"
MenuItem EditSeparator2 = "-"
MenuItem EditSelectAll = "Select &All"
End MenuBar
Class MySDAVAssetExportSessionMBS Inherits SDAVAssetExportSessionMBS
EventHandler Sub exportAsynchronouslyCompleted()
If (Me.status = StatusCompleted) Then
MsgBox "Video export succeeded"
Elseif (Me.status = StatusCancelled) then
MsgBox "Video export cancelled"
Else
MsgBox "Video export failed with error: " + me.error.localizedDescription
end if
End EventHandler
End Class
End Project
The items on this page are in the following plugins: MBS AVFoundation Plugin.